Official SDKs include helper methods for this endpoint.
- Route:
POST /portfolio/withdraw - Auth:
apiToken, Privy, or session auth - Scope:
withdrawalwhen usingapiToken
Request body
Use one of these payload shapes:
Example: sub-account default destination
Example: sub-account to allowlisted destination
Example: own server wallet to allowlisted destination
Destination allowlist
Explicitdestination values are accepted only when the address is one of:
- the authenticated caller’s account address
- the authenticated caller’s smart wallet address
- an active withdrawal address allowlisted on the authenticated caller profile
onBehalfOf withdrawals, the allowlist belongs to the authenticated partner profile, not the child onBehalfOf profile.
Use POST /portfolio/withdrawal-addresses and DELETE /portfolio/withdrawal-addresses/:address to manage the allowlist.
Notes
- When
destinationis omitted, the API uses the authenticated caller’s default destination: smart wallet when present, otherwise account address. - Destination validation blocks withdrawals to third-party addresses that are not allowlisted.
- Legacy API keys are not supported on server-wallet operations.