Install
The Pattern
Every transfer follows these steps:- Get fees — Query the relayer fee so your transfer gets finalized automatically
- Validate — Check that addresses, amounts, and tokens are valid
- Approve — For ERC20 tokens, approve the bridge to spend them
- Build & Send — Get an unsigned transaction and broadcast it
What Just Happened
Let’s break down the key parts:Relayer Fees
ThegetFee() call returns the fee required for relayers to finalize your transfer on the destination chain. You can pay in the transfer token (fee) or in native ETH (nativeFee). Without fees, you’d need to finalize manually.
See Relayer Fees for more details.
OmniAddress Format
Addresses include a chain prefix so the SDK knows which chain they belong to:Validation
validateTransfer() does the heavy lifting:
- Checks that addresses are valid for their chains
- Verifies the token is registered on the bridge
- Ensures the amount survives decimal normalization
- Returns a
ValidatedTransferobject the builders need
Unsigned Transactions
buildTransfer() returns a plain object — not a signed transaction:
sendTransaction() or ethers’ signer.sendTransaction().
Using Testnet
For development, switch to testnet:Track Your Transfer
Check the status using the API client:Next Steps
Now that you understand the pattern, pick the guide for your source chain:EVM Chains
Ethereum, Base, Arbitrum, Polygon, BNB
NEAR
NEAR Protocol
Solana
Solana
Bitcoin
Bitcoin and Zcash