Skip to main content


As of 1.3.52, the @imtbl/imx-sdk supports transferring large amounts of NFT assets in batches. To begin a new batch transfer flow, link should be called like so:

const response = await link.batchNftTransfer(payload);

Where the payload is of type LinkParams.BatchNftTransfer:

const payload: LinkParams.BatchNftTransfer = [
type: ERC721TokenType.ERC721, // Must be of type ERC721
tokenId: string, // the token ID
tokenAddress: string, // the collection address / contract address this token belongs to
toAddress: string, // the wallet address this token is being transferred to

The response type is the same as Link.transfer.


  • Requests will be batched in groups of 100 (This is the current batch size, it is subject to change, however this will not affect your implementation)

  • Only tokens of type ERC721TokenType.ERC721 can be used in link.batchNftTransfer

  • If any validation errors are present in the current batch, the entire batch will not be performed

  • If any API errors are received as part of processing the current batch, the entire batch will fail

  • If any errors are present (due to validation, API or otherwise) for a particular batch, you will still be able progress to the next batch

  • Each confirmation is accompanied by a signing process on the user wallet

Screenshots from user journey

Confirm Transfer Batch

First Batch Complete

All Batches Complete

Example Validation Error


See error responses here.

IMX Whitepaper IMX Tokenomics Block Explorer Careers Contact Us