Skip to main content
POST /api/v1/account/withdraw

Request Body

FieldTypeNeedDescriptionExample
”account”stringrequiredUser’s wallet address42trU9A5…
“signature”stringrequiredCryptographic signature5j1Vy9Uq…
“timestamp”integerrequiredCurrent timestamp in milliseconds1716200000000
”amount”stringrequiredAmount to withdraw in USDC100.50
”idempotency_key”stringoptionalFull UUID string. Prevents duplicate withdrawals550e8400-e29b-41d4-a716-446655440000
”agent_wallet”stringoptionalAgent wallet address69trU9A5…
“expiry_window”integeroptionalSignature expiry in milliseconds30000
{
  "account": "42trU9A5...",
  "signature": "5j1Vy9Uq...",
  "timestamp": 1716200000000,
  "amount": "100.50",
  "agent_wallet": "69trU9A5...",
  "expiry_window": 30000,
}

Response

  • Status 200: Success
{
  "success": true,
  "data": {
    "batch_nonce": 42,
    "requested_amount": "100.500000",
    "fee_amount": "1.000000"
  }
}
FieldTypeDescription
'batch_nonce'integerNonce of the withdrawal batch
'requested_amount'decimal stringAmount requested for withdrawal
'fee_amount'decimal stringFee deducted from the withdrawal
  • Status 400: Invalid request parameters
  • Status 409: Duplicate idempotency key
  • Status 500: Internal server error

Code Example (Python)

import requests

payload = {
    "account": "42trU9A5...",
    "signature": "5j1Vy9Uq...",
    "timestamp": 1716200000000,
    "amount": "100.50"
}

response = requests.post(
    "/api/v1/account/withdraw",
    json=payload,
    headers={"Content-Type": "application/json"}
)

data = response.json()