Skip to main content
Get started with the Value Transfer API in minutes. This guide walks you through the complete transfer flow.

Prerequisites

  • An API key from LayerZero
  • A funded wallet on the source chain

Base URL


1

Check chains and tokens

Before requesting a quote, verify your source and destination chains are supported and discover available tokens.

List supported chains

Response

See the Chains API reference for complete endpoint documentation.

List supported tokens

Query tokens with optional filters. Without parameters, the API returns all tokens across all supported chains.

Query parameters

Valid destinations: To get all destination tokens you can transfer to, provide both the source chain and token address. See Tokens for the full endpoint reference.

Response

2

Get a quote

Request a quote for your cross-chain transfer. The API returns available routes with fees, estimated duration, and the steps needed to execute.
Quote response: The quote includes userSteps with transaction or signature data to execute. See Quotes for the full request/response schema.
3

Build user steps (Solana only)

For EVM transfers, the quote response already includes userSteps with transaction data - skip to Step 4.For Solana transfers, you must call /build-user-steps to get the encoded transaction data. Solana transactions have short blockhash validity (~60 seconds), so this step generates fresh transaction data.
EVM vs Solana:See Build User Steps for complete documentation.
4

Execute the transfer

Process each user step in order. For transactions, sign and submit to the blockchain. For signatures, sign and submit to the API.
Never approve the LZMulticall (Wrapper) as a token spenderLZMulticall executes bridge transactions. It is not the right spender, and approving it will lose you tokens. The correct spender is the TransferDelegate, and the API’s approve step already has this set in the calldata. Execute every userStep as returned.See Contracts Overview for details on the contract architecture.
No cURL for execution: Executing requires a wallet to sign and broadcast the transaction. This step cannot be done with cURL alone - you need a signing library (viem, web3.py, @solana/web3.js) and an RPC connection.
Where to get userSteps:
  • EVM: Use quote.userSteps directly from the quote response
  • Solana: Use userSteps from the /build-user-steps response

Execute transaction steps

Loop through every userStep and execute each one in order. ERC20 transfers return two transaction steps (approve + bridge) — you must execute both.

Submit a signature step

For intent-based routes, sign the EIP-712 data and submit to the API.
Signature steps: See Submit Signature for EIP-712 typed data handling and BigInt conversion requirements.
5

Track the transfer

After executing all user steps, poll the status endpoint to monitor completion.
Polling: Poll every 4 seconds until status is SUCCEEDED or FAILED. See Status for response details and error handling.

Status values


Next steps