Skip to main content
POST
/
nft
NFT Transfer
curl --request POST \
  --url https://router-api.initia.xyz/nft \
  --header 'Content-Type: application/json' \
  --data '
{
  "from_address": "init1abc...",
  "from_chain_id": "echelon-1",
  "to_address": "init1def...",
  "to_chain_id": "yominet-1",
  "token_ids": [
    "1",
    "2"
  ],
  "collection_address": "0xabc...",
  "class_id": "wasm.init1.../nft-transfer/channel-0/..."
}
'
{
  "msgs": [
    {
      "typeUrl": "/ibc.applications.nft_transfer.v1.MsgTransfer",
      "value": {}
    }
  ]
}

Body

application/json
from_address
string
required

Sender address.

from_chain_id
string
required

Source chain ID.

to_address
string
required

Recipient address.

to_chain_id
string
required

Destination chain ID.

token_ids
string[]
required

Token IDs to transfer (maximum 30).

Maximum array length: 30
collection_address
string
required

NFT collection contract address. Pass an empty string for Move chains.

class_id
string

IBC class ID. Required for cross-chain transfers.

class_trace
object

IBC class trace for multi-hop transfers.

object_addresses
string[]

Move object addresses (maximum 30). Required for same-chain Move transfers.

Maximum array length: 30
l1_recover_address
string

L1 recovery address for L2 to L1 to L2 transfers. Defaults to from_address.

outgoing_proxy
string

Outgoing proxy contract address (Wasm chains).

timeout
integer
default:1800

IBC timeout in seconds.

ignore_blacklist
boolean
default:false

Include blacklisted networks.

Response

200 - application/json

Successful response

msgs
object[]

Array of transaction messages appropriate for the source chain's VM type.