Skip to main content
POST

Authorizations

Authorization
string
header
required

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

X-Wallet-Auth
string
required

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

userId
string
required

The ID of the end user.

Pattern: ^[a-zA-Z0-9-]{1,100}$
address
string
required

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).

Required string length: 1 - 128
Pattern: ^0x[0-9a-fA-F]{40}$
Example:

"0x742d35Cc6634C0532925a3b844Bc454e4438f44e"

Query Parameters

projectID
string

The ID of the CDP Project. Required for end users authenticated using custom auth (i.e. a non-CDP JWT provider).

Pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
Example:

"8e03978e-40d5-43e8-bc93-6894a57f9324"

Body

application/json

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.

vaultId
string
required

The globally unique ID of the vault, which is a UUID prefixed with the string vault_.

Pattern: ^vault_[a-f0-9-]{36}$
Example:

"vault_019f5f10-096a-7a23-86df-f479650d813f"

amount
string

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.

Pattern: ^\+?(?:(?:0*[1-9]\d*)(?:\.\d*)?|0*\.\d*[1-9]\d*)$
Example:

"25.50"

withdrawAll
boolean

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.

Example:

true

receiver
string

The 0x-prefixed address that receives the withdrawn underlying asset. Defaults to the withdrawing account given in the path.

Required string length: 1 - 128
Pattern: ^0x[0-9a-fA-F]{40}$
Example:

"0x1234567890123456789012345678901234567890"

maxSlippageBps
integer

The maximum share-price movement tolerated between calldata construction and onchain execution, in basis points. Defaults to 100 bps (1%) when omitted.

Required range: 0 <= x <= 9999
Example:

100

walletSecretId
string

The ID of the Temporary Wallet Secret that was used to sign the X-Wallet-Auth Header.

Pattern: ^[a-zA-Z0-9-]{1,100}$
Example:

"e051beeb-7163-4527-a5b6-35e301529ff2"

Response

Successfully broadcast the withdrawal.

The result of a vault withdrawal from an EOA after broadcast.

transactionHash
string
required

The hash of the broadcast withdrawal transaction, as a 0x-prefixed hex string.

Pattern: ^0x[0-9a-fA-F]{64}$
Example:

"0xf8f98fb6726fc936f24b2007df5cb20e2b8444ff3dfaa2a929335f432a9be2e7"