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