LayerZero Transfer API

The Transfer API from LayerZero — 4 operation(s) for transfer.

OpenAPI Specification

layerzero-transfer-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: LayerZero OFT Discovery Transfer API
  version: 1.0.0
  description: API for LayerZero Omnichain Fungible Tokens (OFTs)
servers:
- url: https://metadata.layerzero-api.com/v1/metadata/experiment/ofts
tags:
- name: Transfer
paths:
  /quotes:
    post:
      summary: Get transfer quotes
      description: Request quotes for a cross-chain transfer. Returns one or more quotes with fees, estimated duration, and transaction steps to execute.
      tags:
      - Transfer
      security:
      - apiKey: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - srcChainKey
              - dstChainKey
              - srcTokenAddress
              - dstTokenAddress
              - srcWalletAddress
              - dstWalletAddress
              - amount
              properties:
                srcChainKey:
                  type: string
                  description: Source chain key (for example, 'base', 'arbitrum')
                  example: base
                dstChainKey:
                  type: string
                  description: Destination chain key
                  example: optimism
                srcTokenAddress:
                  type: string
                  description: Source token address (use 0xEeee...EEeE for native ETH)
                  example: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE'
                dstTokenAddress:
                  type: string
                  description: Destination token address
                  example: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE'
                srcWalletAddress:
                  type: string
                  description: Sender wallet address
                  example: '0x1234567890123456789012345678901234567890'
                dstWalletAddress:
                  type: string
                  description: Recipient wallet address
                  example: '0x1234567890123456789012345678901234567890'
                amount:
                  type: string
                  description: Transfer amount in smallest units (wei for ETH)
                  example: '100000000000000000'
      responses:
        '200':
          description: Successfully retrieved quotes
          content:
            application/json:
              schema:
                type: object
                properties:
                  quotes:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        feeUsd:
                          type: string
                        feePercent:
                          type: string
                        srcAmount:
                          type: string
                        dstAmount:
                          type: string
                        routeSteps:
                          type: array
                          items:
                            type: object
                            properties:
                              type:
                                type: string
                              srcChainKey:
                                type: string
                        userSteps:
                          type: array
                          items:
                            type: object
                            properties:
                              type:
                                type: string
                              chainKey:
                                type: string
                              chainType:
                                type: string
                  tokens:
                    type: array
                    items:
                      type: object
                example:
                  quotes:
                  - id: quote_abc123
                    feeUsd: '0.50'
                    feePercent: '0.5'
                    srcAmount: '100000000000000000'
                    dstAmount: '99500000000000000'
                    routeSteps:
                    - type: STARGATE_V2_TAXI
                      srcChainKey: base
                    userSteps:
                    - type: TRANSACTION
                      chainKey: base
                      chainType: EVM
                  tokens: []
  /status/{quoteId}:
    get:
      summary: Check transfer status
      description: Check the current status of a transfer. Returns the status and an optional LayerZero Scan explorer URL.
      tags:
      - Transfer
      security:
      - apiKey: []
      parameters:
      - name: quoteId
        in: path
        required: true
        description: The quote ID from the /quotes response
        schema:
          type: string
          example: quote_abc123
      - name: txHash
        in: query
        description: Optional transaction hash for faster status lookup
        schema:
          type: string
          example: 0x...
      responses:
        '200':
          description: Successfully retrieved status
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                    - PENDING
                    - PROCESSING
                    - SUCCEEDED
                    - FAILED
                    - UNKNOWN
                  explorerUrl:
                    type: string
                  executionHistory:
                    type: array
                    items:
                      type: object
                      properties:
                        event:
                          type: string
                        transaction:
                          type: object
                          properties:
                            chainKey:
                              type: string
                            hash:
                              type: string
                example:
                  status: SUCCEEDED
                  explorerUrl: https://layerzeroscan.com/tx/...
                  executionHistory:
                  - event: SENT
                    transaction:
                      chainKey: base
                      hash: 0x...
                  - event: DELIVERED
                    transaction:
                      chainKey: optimism
                      hash: 0x...
  /submit-signature:
    post:
      summary: Submit EIP-712 signatures
      description: Submit signed EIP-712 messages for intent-based transfers (for example, Aori routes). Required when a quote includes SIGNATURE user steps.
      tags:
      - Transfer
      security:
      - apiKey: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - quoteId
              - signatures
              properties:
                quoteId:
                  type: string
                  description: The quote ID from the /quotes response
                  example: quote_abc123
                signatures:
                  type: array
                  description: Array of signature hex strings
                  items:
                    type: string
                  example:
                  - 0x...
      responses:
        '200':
          description: Signature submitted successfully
          content:
            application/json:
              schema:
                type: object
                example: {}
  /build-user-steps:
    post:
      summary: Build transaction steps
      description: Rebuild or refresh the user steps for a quote. Use this if the original quote's user steps have expired or if you need fresh transaction data (required for Solana).
      tags:
      - Transfer
      security:
      - apiKey: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - quoteId
              properties:
                quoteId:
                  type: string
                  description: The quote ID to build steps for
                  example: quote_abc123
      responses:
        '200':
          description: Successfully built user steps
          content:
            application/json:
              schema:
                type: object
                properties:
                  userSteps:
                    type: array
                    items:
                      type: object
                      properties:
                        type:
                          type: string
                        description:
                          type: string
                        chainKey:
                          type: string
                        chainType:
                          type: string
                        signerAddress:
                          type: string
                example:
                  userSteps:
                  - type: TRANSACTION
                    description: bridge
                    chainKey: solana
                    chainType: SOLANA
                    signerAddress: Dz93pUVjXuaMnSsPSn7V99V4cUzhKoQdx9ECwZJZiafG