/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
The ID of the custodial wallet to send the transfer from.
The source asset, amount, and chain for the transfer.
The destination for the transfer.
Returns
The response is a wallet action object withtype: "transfer":
The wallet action ID. Use this to poll for status updates via
GET /v1/wallets/{wallet_id} /actions/{action_id}.The action status:
pending, succeeded, rejected, or failed.The action type.
The asset being transferred.
The amount being transferred in standard units.
The source chain.
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

