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.

To execute a transfer, make a POST request to /v1/wallets/{wallet_id}/transfer.

Body

In the body of the request, pass the following parameters.
source
object
required
The source asset, amount, and chain for the transfer. Specify either asset (for named assets) or asset_address (for custom tokens), not both.
destination
object
required
The destination for the transfer.
amount_type
'exact_input' | 'exact_output'
Whether the source.amount refers to the input token or the output token. Defaults to exact_input.
slippage_bps
integer
The maximum allowed slippage in basis points (1 bps = 0.01%). Must be between 0 and 10000. Only relevant for cross-chain or cross-asset transfers.

Response

The endpoint returns a 200 response with a pending wallet action resource.
The transfer action is processed asynchronously. The response contains a pending wallet action resource with status: "pending" that Privy processes in the background.
id
string
The unique identifier for the wallet action.
status
'pending' | 'succeeded' | 'rejected' | 'failed'
The current status of the action.
wallet_id
string
The ID of the wallet initiating the transfer.
created_at
string
The ISO 8601 timestamp for when the action was created.
type
'transfer'
The type of action. For transfers, this is always transfer.
source_asset
string
The named asset being transferred (e.g. "usdc", "eth"). Present when the transfer was initiated with a named asset; omitted for custom-token transfers.
source_asset_address
string
The token contract address (EVM) or mint address (Solana) of the transferred asset. Present when the transfer was initiated with asset_address.
source_asset_decimals
integer
The number of decimals for the transferred token. Present when the transfer was initiated with asset_address and the decimals were resolved on-chain.
source_amount
string
The amount sent on the source chain as a decimal string (e.g. "1.5"). Omitted for exact_output cross-chain transfers until the source amount is determined.
source_chain
string
The chain the transfer is sent from (e.g. "base", "ethereum").
destination_address
string
The recipient wallet address.
destination_asset
string
The destination asset for cross-asset transfers. Omitted for same-asset transfers.
destination_chain
string
The destination chain for cross-chain transfers. Omitted for same-chain transfers.
destination_amount
string
The amount received on the destination chain. Populated immediately for exact_output transfers, or after fill confirmation for exact_input cross-chain transfers.
failure_reason
object
Present on rejected or failed actions when available. Contains a message string with a human-readable description of the failure, and an optional details field with additional context.
To track the status of a transfer, see wallet action lifecycle.

Example

API reference

See the API reference for more details.