Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.privy.io/llms.txt

Use this file to discover all available pages before exploring further.

The transfer quote endpoint returns a fee breakdown and estimated output amount for a cross-chain or cross-asset transfer before executing it. Use quotes to show users what they will receive and what fees apply before they confirm a transfer.
The quote endpoint is only supported for cross-chain or cross-asset transfers (i.e. those that specify destination.chain or destination.asset). Same-chain, same-asset transfers do not require a quote.

Understanding fees

Every cross-chain transfer includes up to three fee components:
  • Relayer fee — paid to the bridge provider for routing the transfer. This varies with network conditions and liquidity.
  • Developer fee — fees to the app developer.
Fees are denominated in USD and deducted from the transfer amount. The estimated_output_amount already reflects all fees — it is what the recipient will receive.

Usage

To get a quote via REST API, make a POST request to :
https://api.privy.io/v1/wallets/{wallet_id}/transfer/quote

Body

source
object
required
The source asset, amount, and chain for the transfer.
destination
object
required
The destination for the transfer.
amount_type
'exact_input'
Determines whether source.amount is the input quantity. Defaults to exact_input.
fee_configuration
object
Optional fee configuration to apply to the transfer.

Response

source
object
The source asset, amount, and chain from the request.
destination
object
The destination address, asset, and chain from the request.
estimated_output_amount
string
The estimated amount the recipient will receive, as a decimal string in destination token units (e.g. "9.97" for 9.97 USDC).
estimated_fees
FeeLineItem[]
An array of fee line items that make up the total transfer cost. Each item has a type and an amount in USD.
expires_at
number
Unix timestamp (in seconds) after which the quote is no longer valid. Execute the transfer before this time to receive the quoted output amount and fees.

Example

const quote = await privy.wallets().transferQuote('insert-wallet-id', {
  source: {
    asset: 'usdc',
    amount: '10.0',
    chain: 'base',
  },
  destination: {
    address: '0xRecipientAddress',
    chain: 'arbitrum',
  },
  fee_configuration: {
    type: 'total_fee_bps',
    value: 80,
  },
});
Fee estimates are based on current bridge pricing and may change between quote and execution if market conditions shift.

Quote expiry

Quotes expire quickly — typically within a few minutes. If you execute a transfer after expires_at, the request will be rejected. Fetch a fresh quote before each transfer execution.

Limitations

The quote endpoint requires either destination.chain or destination.asset to differ from the source. Same-chain, same-asset transfers have no fees to quote.
Transfers using asset_address (custom token contracts) are not supported for cross-chain quotes. Only named assets (usdc, usdt, eth, etc.) can be quoted.

API reference

See the API reference for the full parameter reference.