Overview
Generate a signed authorization to withdraw USDC from the vault. The authorization is valid for 30 seconds and can only be used once.Request Body
Chain to execute the withdrawal on. Currently only
base is supported.User’s Ethereum wallet address (checksummed or lowercase).
Response
Unique authorization identifier used to prevent replay attacks.
EIP-712 signature for the withdrawal authorization that must be submitted to the vault contract.
Unix timestamp when the authorization expires (30 seconds from creation).
Maximum amount the user can withdraw in µUSDC. This equals the user’s current deposited balance.
Error Responses
400 - No Balance
Returned when the user has no deposited balance to withdraw.
500 - Server Error
Returned when authorization generation fails.
Example Request
Example Response
Usage Flow
- Check Balance: Ensure user has deposited USDC balance
- Get Authorization: Call this endpoint to get withdrawal signature
- Execute Withdrawal: Call
withdrawUSDCon the vault contract with the authorization:uuid: Unique authorization IDusdcAmount: Amount to withdraw (≤ maxWithdrawAmount)expiry: Expiration timestampsignature: EIP-712 signature
Important Notes
- Authorization expires in 30 seconds
- Each authorization can only be used once (replay protection)
- User must have sufficient deposited balance
- Withdraw amount in contract call must not exceed
maxWithdrawAmount - After withdrawal, the user’s deposited balance is updated via EVM webhook
Body
application/json
Chain to execute the action on; one of: base, bsc
Available options:
base, bsc Example:
"base"
User wallet address
Example:
"0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"
Amount to withdraw in µUSDC (micro-USDC, 6 decimals)
Required range:
x > 0Example:
1000000