cURL
Account
Authorize Withdraw
POST
cURL
Documentation Index
Fetch the complete documentation index at: https://docs.bison.markets/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Generate a signed authorization to claim scheduled withdrawals from the vault. This is step 2 of the two-phase withdrawal process. The authorization is valid for 30 seconds and can only be used once. It allows the user to claim up to their total unclaimed withdrawal amount.To avoid ambiguity, we denote the smallest possible multiple of USDC (0.000001 USDC) as one
uusdc,
which stands for µUSDC (micro-USDC), and denote the smallest possible multiple of a contract (0.01 contract)
as one ccontract (centicontract).User-facing USDC balances are specified as fixed-point strings (e.g. "1.2625" for USDC). Contract quantities
in the API and SDK are specified as integer ccontracts strings (e.g. "1050" for 10.50 contracts at precision 2).Withdrawal Flow
Bison uses a two-phase withdrawal process:- Schedule (
/schedule-withdraw): User signs a message to request a withdrawal for a specific amount - Claim (
/get-withdraw-authorization+ on-chain tx): User gets authorization and executes the withdrawal on-chain
Request Body
Chain to claim withdrawals on. One of
base or bsc.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).
Total amount available to claim in µUSDC (integer string). This is the sum of all unclaimed scheduled withdrawals.
Error Responses
400 - No Withdrawals
Returned when the user has no unclaimed withdrawals available.
400 - Pending Signature
Returned when the user already has an unexpired claim authorization.
500 - Server Error
Returned when authorization generation fails.
Example Request
Example Response
Usage Flow
- Schedule Withdrawals: Use
/schedule-withdrawto request withdrawal(s) - Check Status: Use
/pending-withdraws/{userAddress}to see when withdrawals becomeunclaimed - Get Authorization: Call this endpoint to get claim signature
- Execute Claim: Call
withdrawUSDCon the vault contract with:uuid: Unique authorization IDusdcAmount: Amount to withdraw (≤ maxWithdrawAmount)userAddress: User’s wallet addressexpiry: Expiration timestampsignature: EIP-712 signature
Important Notes
- Authorization expires in 30 seconds
- Each authorization can only be used once (replay protection via claim locks)
- User must have scheduled withdrawals in
unclaimedstatus - Multiple scheduled withdrawals are batched into a single claim
- Partial claims are supported - withdraw any amount up to
maxWithdrawAmount - After claiming, the user receives USDC directly to their wallet
Body
application/json