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
- cURL
- TypeScript
- Python
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.- cURL
- TypeScript
- Python
Query parameters
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.- cURL
- TypeScript
- Python
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.- cURL
- TypeScript
- Python
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.Where to get
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.
userSteps:- EVM: Use
quote.userStepsdirectly from the quote response - Solana: Use
userStepsfrom the/build-user-stepsresponse
Execute transaction steps
Loop through everyuserStep and execute each one in order. ERC20 transfers return two transaction steps (approve + bridge) — you must execute both.- TypeScript (viem)
- Python (web3.py)
Submit a signature step
For intent-based routes, sign the EIP-712 data and submit to the API.- TypeScript (viem)
- Python
5
Track the transfer
After executing all user steps, poll the status endpoint to monitor completion.
- cURL
- TypeScript
- Python
Status values
Next steps
- EVM Example: Complete TypeScript example with viem
- Solana Example: Complete TypeScript example for Solana transfers
- API Reference: Explore all endpoints with interactive testing