Skip to content

Transfer

You can transfer NFTs with Rarible Multichain Protocol in different blockchains.

Before start, install and configure Rarible SDK and required wallets.

Transfer NFTs

Use transferItem function:

import { createRaribleSdk } from "@rarible/sdk"
import { toItemId, toUnionAddress } from "@rarible/types"
import type { BlockchainWallet } from "@rarible/sdk-wallet/src"

async function transferItem(wallet: BlockchainWallet) {
    const sdk = createRaribleSdk(wallet, "dev")
    const transferAction = await sdk.nft.transfer({
        itemId: toItemId("<YOUR_ITEM_ID>"),
    })
    const tx = await transferAction.submit({
        to: toUnionAddress("<ITEM_RECIPIENT>"),
        amount: 1,
    })
    await tx.wait()
}
  • itemId — Id of your NFT, has format ${blockchain}:${token}:${tokenId}. For example, ETHEREUM:0x6ede7f3c26975aad32a475e1021d8f6f39c89d82:12345
  • to — address in Union format ${blockchainGroup}:${token}. For example, TEZOS:tz1dKxdpV1hgErMTTKBorb8R5tSz8hFzPhKh
  • amount — amount of NFT tokens

Checking transferred NFT

To check the transferred item:

  • Use the getItemById API method

    getItemById

    Returns Item by ID.

    https://api.rarible.org/v0.1/items/{itemId}

    Example request (staging)

    curl --request GET 'https://api-staging.rarible.org/v0.1/items/ETHEREUM:0x6ede7f3c26975aad32a475e1021d8f6f39c89d82:19661880631107248865491477079747186145992059189823053172927066273904580362243'
    

    Request parameters:

    • itemId — ItemID of your NFT, has format ${blockchain}:${token}:${tokenId}

      For example, ETHEREUM:0x6ede7f3c26975aad32a475e1021d8f6f39c89d82:12345

    Example response (status 200)

    {
       "id": "ETHEREUM:0x6ede7f3c26975aad32a475e1021d8f6f39c89d82:19661880631107248865491477079747186145992059189823053172927066273904580362243",
       "blockchain": "ETHEREUM",
       "collection": "ETHEREUM:0x6ede7f3c26975aad32a475e1021d8f6f39c89d82",
       "contract": "ETHEREUM:0x6ede7f3c26975aad32a475e1021d8f6f39c89d82",
       "tokenId": "19661880631107248865491477079747186145992059189823053172927066273904580362243",
       "creators": [
          {
             "account": "ETHEREUM:0x2b783ae5b5b8a7a822449c7d8b6f35f9abc827f5",
             "value": 10000
          }
       ],
       "owners": [],
       "royalties": [],
       "lazySupply": "0",
       "pending": [],
       "mintedAt": "2022-03-09T22:48:33Z",
       "lastUpdatedAt": "2022-03-09T22:50:03.530Z",
       "supply": "1",
       "meta": {
          "name": "gbgbgbgbgbgb",
          "description": "",
          "attributes": [],
          "content": [
             {
                "@type": "IMAGE",
                "url": "https://rarible.mypinata.cloud/ipfs/QmQCp8bhbaPwGEuHeeR8pme2q3zuSjam2JEuFgAvp4DZsU/image.jpeg",
                "representation": "ORIGINAL",
                "mimeType": "image/jpeg",
                "size": 13311,
                "width": 640,
                "height": 640
             }
          ],
          "restrictions": []
       },
       "deleted": false,
       "auctions": [],
       "totalStock": "0",
       "sellers": 0
    }
    
  • Or check Etherscan for Ethereum and Polygon, Flowscan for Flow, or tezblock for Tezos.

See more information about usage Protocol SDK on https://github.com/rarible/sdk