Skip to main content
POST
/
v1
/
wallets
/
{wallet_id}
/
transfer
Transfer
curl --request POST \
  --url https://api.privy.io/v1/wallets/{wallet_id}/transfer \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --header 'privy-app-id: <privy-app-id>' \
  --data '
{
  "source": {
    "asset": "usdc",
    "amount": "10.5",
    "chain": "base"
  },
  "destination": {
    "address": "0xB00F0759DbeeF5E543Cc3E3B07A6442F5f3928a2"
  }
}
'
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "pending",
  "wallet_id": "fmfdj6yqly31huorjqzq38zc",
  "type": "transfer",
  "source_asset": "usdc",
  "source_amount": "10.5",
  "source_chain": "base",
  "destination_address": "0xB00F0759DbeeF5E543Cc3E3B07A6442F5f3928a2"
}

Authorizations

Authorization
string
header
required

Basic Auth header with your app ID as the username and your app secret as the password.

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.

Path Parameters

wallet_id
string
required

ID of the wallet.

Body

application/json

Request body for initiating a sponsored token transfer from an embedded wallet.

source
TokenTransferSource · object
required

The source asset, amount, and chain for a token transfer.

Example:
{
"asset": "usdc",
"amount": "10.5",
"chain": "base"
}
destination
TokenTransferDestination · object
required

The destination address for a token transfer.

Example:
{
"address": "0xB00F0759DbeeF5E543Cc3E3B07A6442F5f3928a2"
}

Response

202 - application/json

Transfer initiated successfully.

Response for a transfer action.

id
string
required

The ID of the wallet action.

status
enum<string>
required

The current status of the wallet action.

Available options:
pending,
succeeded,
rejected,
failed
wallet_id
string
required

The ID of the wallet involved in the action.

type
enum<string>
required
Available options:
transfer
source_asset
string
required

Asset identifier (e.g. "usdc", "eth").

source_amount
string
required

Decimal amount as the user provided (e.g. "1.5").

source_chain
string
required

Chain name (e.g. "base", "ethereum").

destination_address
string
required

Recipient address.

steps
(EVMTransactionWalletActionStep · object | EVMUserOperationWalletActionStep · object)[]

The steps of the wallet action. Only returned if ?include=steps is provided.

A wallet action step consisting of an EVM transaction.