Skip to main content
The transfer API automatically supports bridging assets across chains and converting between stablecoins of the same peg.
Cross-chain transfers are powered by Relay. Privy does not control bridge routing, fill times, or available liquidity. Transfer rates may differ from quoted estimates due to market conditions. These materials are for general information purposes only and are not investment advice.

Usage

To execute a transfer involving a bridge, specify a destination.chain different from source.chain. To execute a transfer involving a stablecoin conversion, specify a destination.asset different from source.asset. You can also combine both a bridge and a stablecoin conversion in the same transfer call.

Amount types

The amount_type parameter controls whether the specified amount refers to what leaves the source wallet or what arrives at the destination. It defaults to exact_input.
exact_input (default)exact_output
What amount meansThe amount deducted from the source walletThe guaranteed amount the recipient receives
What variesDestination amount (depends on fees and bridge pricing)Source amount (estimated by the bridge provider)
When to useSending a known balance or fixed spendGuaranteeing a recipient receives an exact payout
Quote field to checkestimated_output_amountestimated_input_amount
To guarantee an exact destination amount, set amount_type: 'exact_output' and specify the desired payout in amount. Use the quote endpoint to preview the estimated source cost before executing. For exact_output transfers, the source_amount field on the action response is null at creation and populated once the transfer is confirmed on-chain.
Exact output bridging is not yet supported when Solana is the source chain.

Limitations

Cross-asset bridges are only supported between assets of the same economic category:
  • USD-backed stablecoins can be bridged to other USD-backed stablecoins (e.g. USDC → USDT, USDC → USDG).
  • Native tokens can only be bridged to the same native token on another chain (e.g. ETH on Base → ETH on Ethereum).
  • Cross-category swaps are not supported — native tokens cannot be exchanged for stablecoins via the bridge path. Use the swap API for token swaps on a single chain.
Cross-chain transfers are only supported for well-known assets (usdc, usdt, usdg, eth, etc.). Custom tokens specified via asset_address cannot be bridged.
The amount_type: 'exact_output' parameter is not yet supported when the source chain is Solana. Solana-sourced transfers only support exact_input (the default).
Testnet bridging is available between base_sepolia and ethereum_sepolia. Other testnet cross-chain routes may have limited availability depending on the bridge provider’s testnet infrastructure.Testnet bridges are best-effort and may have slower fill times than mainnet.
Mainnet-to-testnet and testnet-to-mainnet bridges are not supported. The source and destination chains must both be mainnet or both be testnet.

Tracking a bridge transfer

Bridge transfers follow the standard wallet action lifecycle. The action status progresses:
  1. pending — source chain transaction submitted; bridge fill in progress.
  2. succeeded — bridge fill confirmed on destination chain.
  3. failed — the bridge fill was not completed (e.g. insufficient liquidity, expired quote).
Bridge fills typically complete within seconds on mainnet. During periods of high network activity, fills may take longer. To receive a notification when the bridge completes, listen for the wallet_action.transfer.succeeded webhook event.

API reference

See the API reference for the full parameter reference.