> ## Documentation Index
> Fetch the complete documentation index at: https://docs.initia.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# NFT Transfer

> Computes routes and generates transaction messages for cross-chain NFT transfers within the Initia ecosystem. Supports:
- Same-chain transfers (EVM, Move, and Wasm chains)
- Single-hop IBC (L2 to L1 or L1 to L2 via ICS-721)
- Multi-hop (L2 to L1 to L2, two IBC hops)



## OpenAPI

````yaml /api-reference/router-api/openapi.yaml post /nft
openapi: 3.1.0
info:
  title: Router API
  description: Cross-chain transfer routing API for the Initia ecosystem.
  version: 1.0.0
servers:
  - url: https://router-api.initia.xyz
    description: Mainnet
  - url: https://router-api.initiation-2.initia.xyz
    description: Testnet
security: []
paths:
  /nft:
    post:
      tags:
        - NFT
      summary: NFT Transfer
      description: >-
        Computes routes and generates transaction messages for cross-chain NFT
        transfers within the Initia ecosystem. Supports:

        - Same-chain transfers (EVM, Move, and Wasm chains)

        - Single-hop IBC (L2 to L1 or L1 to L2 via ICS-721)

        - Multi-hop (L2 to L1 to L2, two IBC hops)
      operationId: nftTransfer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - from_address
                - from_chain_id
                - to_address
                - to_chain_id
                - token_ids
                - collection_address
              properties:
                from_address:
                  type: string
                  description: Sender address.
                from_chain_id:
                  type: string
                  description: Source chain ID.
                to_address:
                  type: string
                  description: Recipient address.
                to_chain_id:
                  type: string
                  description: Destination chain ID.
                token_ids:
                  type: array
                  description: Token IDs to transfer (maximum 30).
                  maxItems: 30
                  items:
                    type: string
                collection_address:
                  type: string
                  description: >-
                    NFT collection contract address. Pass an empty string for
                    Move chains.
                class_id:
                  type: string
                  description: IBC class ID. Required for cross-chain transfers.
                class_trace:
                  type: object
                  description: IBC class trace for multi-hop transfers.
                  properties:
                    path:
                      type: string
                      description: IBC trace path.
                    base_class_id:
                      type: string
                      description: Base class ID.
                object_addresses:
                  type: array
                  description: >-
                    Move object addresses (maximum 30). Required for same-chain
                    Move transfers.
                  maxItems: 30
                  items:
                    type: string
                l1_recover_address:
                  type: string
                  description: >-
                    L1 recovery address for L2 to L1 to L2 transfers. Defaults
                    to from_address.
                outgoing_proxy:
                  type: string
                  description: Outgoing proxy contract address (Wasm chains).
                timeout:
                  type: integer
                  default: 1800
                  description: IBC timeout in seconds.
            example:
              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/...
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  msgs:
                    type: array
                    description: >-
                      Array of transaction messages appropriate for the source
                      chain's VM type.
                    items:
                      type: object
                      properties:
                        typeUrl:
                          type: string
                        value:
                          type: object
              example:
                msgs:
                  - typeUrl: /ibc.applications.nft_transfer.v1.MsgTransfer
                    value: {}

````