/transfer endpoint — the same interface used by non-custodial wallets. This provides a simple, chain-agnostic way to move funds without needing to encode raw transaction data.
All transactions from custodial wallets are executed server-side.
Initiate a transfer
For custodial wallets, only assets that are supported by the custodian can be transferred. Supported assets: USDC, USDB, EURC Supported chains: Base, SolanaLike non-custodial wallets, custodial wallets with an
owner or additional_signers require an
authorization signature for transaction
requests.Usage
Make aPOST request to /v1/wallets/{wallet_id}/transfer with the source asset, amount, chain, and destination address:
- Node.js SDK
- REST API
Parameters
string
required
The ID of the custodial wallet to send the transfer from.
object
required
The source asset, amount, and chain for the transfer.
object
required
The destination for the transfer.
Returns
The response is a wallet action object withtype: "transfer":
string
The wallet action ID. Use this to poll for status updates via
GET /v1/wallets/{wallet_id} /actions/{action_id}.string
The action status:
pending, succeeded, rejected, or failed.'transfer'
The action type.
string
The asset being transferred.
string
The amount being transferred in standard units.
string
The source chain.
string
The recipient address.
Next steps
Transfer lifecycle
Learn about the transfer lifecycle for custodial wallets
Sending USDC recipe
Learn how to format and encode ERC-20 token transfers
Authorization controls
Configure policies and multi-party approvals for custodial wallets
Transfer webhooks
Monitor transfer status and lifecycle events

