Withdraw from a vault
Withdraws the vault’s underlying asset (e.g. USDC) from an end user’s EVM account’s position in a vault. The end user signs an EIP-2612 permit over their vault shares authorizing the withdrawal, and the share approval and withdrawal are executed in a single transaction.
The transaction hash is returned in the response.
For withdrawals from EVM Smart Accounts, use withdrawFromVaultWithEndUserEvmSmartAccount instead.
Provide either amount or withdrawAll: true. The amount field accepts human-readable amounts as decimal strings (e.g., “1.5”, “25.50”) in the standard unit denomination of the vault’s underlying asset. Set withdrawAll to true to withdraw the entire position: every vault share held by the account is redeemed, so no residual shares remain from interest that accrues before execution.
Authorizations
A JWT signed using the developer's own JWT private key (in the case of JWT authentication), or an end user JWT signed by CDP, encoded in base64. This is used for End User Account APIs.
Headers
A JWT signed using your Wallet Secret, encoded in base64. Refer to the Generate Wallet Token section of our Authentication docs for more details on how to generate your Wallet Token.
Path Parameters
The ID of the end user.
^[a-zA-Z0-9-]{1,100}$The 0x-prefixed address of the EVM account to withdraw from. A blockchain address. Format varies by network (e.g., 0x-prefixed for EVM, base58 for Solana).
1 - 128^0x[0-9a-fA-F]{40}$"0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
Query Parameters
The ID of the CDP Project. Required for end users authenticated using custom auth (i.e. a non-CDP JWT provider).
^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"8e03978e-40d5-43e8-bc93-6894a57f9324"
Body
A request to withdraw the vault's underlying asset (e.g. USDC) from a vault position held by an end user's EVM account. The end user signs an EIP-2612 permit over their vault shares authorizing the withdrawal, and the share approval and withdrawal are executed in a single transaction.
The globally unique ID of the vault, which is a UUID prefixed with the string vault_.
^vault_[a-f0-9-]{36}$"vault_019f5f10-096a-7a23-86df-f479650d813f"
The amount of the vault's underlying asset to withdraw, as a decimal string in standard unit denomination of the asset (i.e. "25.50" for 25.50 USDC). Cannot be used when withdrawAll is true.
^\+?(?:(?:0*[1-9]\d*)(?:\.\d*)?|0*\.\d*[1-9]\d*)$"25.50"
Whether to withdraw the account's entire position in the vault. When true, every vault share held by the account is redeemed for the underlying asset (e.g. USDC). Cannot be true when amount is set.
true
The 0x-prefixed address that receives the withdrawn underlying asset. Defaults to the withdrawing account given in the path.
1 - 128^0x[0-9a-fA-F]{40}$"0x1234567890123456789012345678901234567890"
The maximum share-price movement tolerated between calldata construction and onchain execution, in basis points. Defaults to 100 bps (1%) when omitted.
0 <= x <= 9999100
The ID of the Temporary Wallet Secret that was used to sign the X-Wallet-Auth Header.
^[a-zA-Z0-9-]{1,100}$"e051beeb-7163-4527-a5b6-35e301529ff2"
Response
Successfully broadcast the withdrawal.
The result of a vault withdrawal from an EOA after broadcast.
The hash of the broadcast withdrawal transaction, as a 0x-prefixed hex string.
^0x[0-9a-fA-F]{64}$"0xf8f98fb6726fc936f24b2007df5cb20e2b8444ff3dfaa2a929335f432a9be2e7"