---
title: "Get Transfer Quote"
method: POST
path: "/v1/wallets/{wallet_id}/transfer/quote"
tags: ["Wallet Actions"]
---

# Get Transfer Quote

`POST /v1/wallets/{wallet_id}/transfer/quote`

Get a price quote for a cross-asset or cross-chain (DADC) transfer. Only available for named-asset transfers where the source and destination asset or chain differ.

## Path parameters

- `wallet_id` string, required — ID of the wallet.

## Headers

- `privy-app-id` string, required — ID of your Privy app.
- `privy-authorization-signature` string — Request authorization signature. If multiple signatures are required, they should be comma separated.
- `privy-request-expiry` string — Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed.

## Request body

- TransferQuoteRequestBody — Request body for requesting a quote for a cross-asset or cross-chain (DADC) transfer.
  - `amount` string — Amount as a decimal string in the token's standard unit (e.g. "1.5" for 1.5 USDC). For exact_input, the amount to send. For exact_output, the exact amount to receive. Takes precedence over source.amount when both are provided.
  - `amount_type` 'exact_input' | 'exact_output' — Whether the amount refers to the input token or output token.
  - `destination` TokenTransferDestination, required — The destination address for a token transfer. Optionally specify a different asset or chain for cross-asset or cross-chain transfers.
    - `address` union, required — Recipient address (hex for EVM, base58 for Solana, base58check for Tron)
      - string
      - string
      - string — Tron address: base58check-encoded, starting with T, 34 characters.
    - `asset` string — The destination asset. Required for cross-asset transfers (e.g., source 'usdt' to destination 'usdc').
    - `chain` string — The destination blockchain network. Required for cross-chain transfers (e.g., source 'base' to destination 'arbitrum').
  - `fee_configuration` object — Optional fee configuration for the transfer. If omitted, cross-chain transfers will not charge additional fees.
    - `type` 'total_fee_bps', required — Discriminator: total fee specified in BPS.
    - `value` integer, required — Total fee in basis points (1 bps = 0.01%).
  - `slippage_bps` integer — Maximum allowed slippage in basis points (1 bps = 0.01%). Only applicable for cross-chain or cross-asset transfers; omit to use the provider default.
  - `source` union, required — The source asset, amount, and chain for a token transfer. Specify either `asset` (named) or `asset_address` (custom), not both.
    - object — Source for a transfer identified by a named asset (e.g. "usdc", "eth"). Use this variant for first-class assets maintained by Privy.
      - `amount` string — Amount as a decimal string in the token's standard unit (e.g. "1.5" for 1.5 USDC, "0.01" for 0.01 ETH). For exact_input, specifies the amount to send. Not in the smallest on-chain unit (wei, lamports, etc.). Maximum 100 characters. Deprecated: use the top-level `amount` field instead.
      - `asset` string, required — The asset to transfer. Supported: 'usdc', 'usdb', 'usdt' (stablecoins), 'eth' (native Ethereum), 'sol' (native Solana).
      - `chain` string, required — The blockchain network on which to perform the transfer. Supported chains include: 'ethereum', 'base', 'arbitrum', 'polygon', 'solana', and their respective testnets.
    - object — Source for a transfer identified by a token contract address (EVM) or mint address (Solana). Use this variant for tokens that are not first-class assets.
      - `amount` string — Amount as a decimal string in the token's standard unit (e.g. "1.5" for 1.5 USDC, "0.01" for 0.01 ETH). For exact_input, specifies the amount to send. Not in the smallest on-chain unit (wei, lamports, etc.). Maximum 100 characters. Deprecated: use the top-level `amount` field instead.
      - `asset_address` union, required — The token contract address (EVM) or mint address (Solana) of the asset to transfer.
        - string
        - string
        - string — Tron address: base58check-encoded, starting with T, 34 characters.
      - `chain` string, required — The blockchain network on which to perform the transfer. Supported chains include: 'ethereum', 'base', 'arbitrum', 'polygon', 'solana', and their respective testnets.

## Response `200`

Transfer quote retrieved successfully.

- TransferQuoteResponse — Response containing a quote for a cross-asset or cross-chain (DADC) transfer.
  - `amount_type` 'exact_input' | 'exact_output' — Whether the amount refers to the input token or output token.
  - `destination` TokenTransferDestination, required — The destination address for a token transfer. Optionally specify a different asset or chain for cross-asset or cross-chain transfers.
    - `address` union, required — Recipient address (hex for EVM, base58 for Solana, base58check for Tron)
      - string
      - string
      - string — Tron address: base58check-encoded, starting with T, 34 characters.
    - `asset` string — The destination asset. Required for cross-asset transfers (e.g., source 'usdt' to destination 'usdc').
    - `chain` string — The destination blockchain network. Required for cross-chain transfers (e.g., source 'base' to destination 'arbitrum').
  - `estimated_fees` FeeLineItem[], required — Estimated fees in USD for the transfer. Only present for cross-chain transfers.
    - union — An individual fee assessed on a transfer.
      - object — Estimated fee paid to the relayer.
        - `amount` string, required — Amount in USD (in decimals).
        - `recipient` union
          - string
          - string
          - string — Tron address: base58check-encoded, starting with T, 34 characters.
        - `type` 'relayer', required
      - object — Estimated fee paid to Privy.
        - `amount` string, required — Amount in USD (in decimals).
        - `recipient` union
          - string
          - string
          - string — Tron address: base58check-encoded, starting with T, 34 characters.
        - `type` 'privy', required
      - object — Estimated fee paid to the developer.
        - `amount` string, required — Amount in USD (in decimals).
        - `recipient` union
          - string
          - string
          - string — Tron address: base58check-encoded, starting with T, 34 characters.
        - `type` 'developer', required
  - `estimated_gas` object — Estimated source gas cost with full token metadata. Only present for cross-chain transfers.
    - `amount` string, required — Gas cost in the gas token as a human-readable decimal string (e.g. "0.0001").
    - `base_amount` string, required — Gas cost in the gas token's base units (e.g. wei).
    - `gas_asset` string, required — Gas token symbol (e.g. "ETH", "USDC").
  - `estimated_input_amount` string, required — Estimated input amount in decimals. For exact_input, this equals source.amount. For exact_output, this is the estimated amount the sender needs to provide.
  - `estimated_output_amount` string, required — Estimated output amount in decimals. For exact_input, this is an estimate subject to slippage. For exact_output, this is the guaranteed exact amount to be received.
  - `expires_at` number, required — Quote expiry as Unix timestamp (seconds).
  - `source` union, required — The source asset, amount, and chain for a token transfer. Specify either `asset` (named) or `asset_address` (custom), not both.
    - object — Source for a transfer identified by a named asset (e.g. "usdc", "eth"). Use this variant for first-class assets maintained by Privy.
      - `amount` string — Amount as a decimal string in the token's standard unit (e.g. "1.5" for 1.5 USDC, "0.01" for 0.01 ETH). For exact_input, specifies the amount to send. Not in the smallest on-chain unit (wei, lamports, etc.). Maximum 100 characters. Deprecated: use the top-level `amount` field instead.
      - `asset` string, required — The asset to transfer. Supported: 'usdc', 'usdb', 'usdt' (stablecoins), 'eth' (native Ethereum), 'sol' (native Solana).
      - `chain` string, required — The blockchain network on which to perform the transfer. Supported chains include: 'ethereum', 'base', 'arbitrum', 'polygon', 'solana', and their respective testnets.
    - object — Source for a transfer identified by a token contract address (EVM) or mint address (Solana). Use this variant for tokens that are not first-class assets.
      - `amount` string — Amount as a decimal string in the token's standard unit (e.g. "1.5" for 1.5 USDC, "0.01" for 0.01 ETH). For exact_input, specifies the amount to send. Not in the smallest on-chain unit (wei, lamports, etc.). Maximum 100 characters. Deprecated: use the top-level `amount` field instead.
      - `asset_address` union, required — The token contract address (EVM) or mint address (Solana) of the asset to transfer.
        - string
        - string
        - string — Tron address: base58check-encoded, starting with T, 34 characters.
      - `chain` string, required — The blockchain network on which to perform the transfer. Supported chains include: 'ethereum', 'base', 'arbitrum', 'polygon', 'solana', and their respective testnets.

---

[API](https://skmtc.net/privy-io/apis/privy-api.md) · [All operations](https://skmtc.net/privy-io/apis/privy-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/privy-io/privy-api/versions/bb2eb34156cc/schema)
