Deposits
Fund the managed wallet and list deposit history.
Fund the managed wallet by sending USDC on Arbitrum to the deposit.address returned by GET /wallet. Deposits show in held_usd on arrival and stay held until a deployment allocates them to a venue. A fresh deposit is never displayed as $0: both held_usd and allocated count toward total_usd.
GET/wallet/deposits
List recent deposits, newest first.
Query parameters
| Param | Type | Notes |
|---|---|---|
limit | integer | Optional. 1 to 100; defaults to 20. |
cursor | string | Optional opaque cursor returned by the preceding page. Pass it back unchanged; do not parse or modify it. |
Response — 200
json
{
"deposits": [
{
"id": "depst_01j9ac...",
"status": "confirmed",
"asset": "USDC",
"chain": "arbitrum",
"amount_usd": 250.0,
"tx_hash": "0xabc...",
"created_at": "2026-07-30T09:20:00Z",
"confirmed_at": "2026-07-30T09:20:41Z"
}
],
"next_cursor": null
}
An empty history is a valid success: {"deposits": [], "next_cursor": null}. When another page exists, pass its non-null next_cursor as the next request's cursor.
Field presence
statusprogresses fromobservedtoconfirmed, or becomesfailed.tx_hashis always present and isnulluntil a transaction hash is recorded.confirmed_atappears only after the deposit is confirmed.errorappears only whenstatusisfailedand contains a stable publiccodeandmessage.
Errors
| Status | Code | When |
|---|---|---|
400 | bad_request | limit is outside 1 to 100, or cursor is invalid. |
401 | unauthorized | Authentication is missing or invalid. |
429 | rate_limited | The account or API key exceeded its request allowance. |
503 | wallet_repository_unavailable | Deposit history could not be read. This is distinct from a valid empty 200. |
The wallet address itself is stable; use GET /wallet when you need deposit instructions, and GET /wallet/deposits when you need history.
Rules and edges
- Minimum:
deposit.min_usdis Superior's $50 customer-facing minimum.deposit.protocol_min_usdis Hyperliquid's $5 bridge safety floor; use $50 or more for a supported deposit and deployment flow (venue matrix). - Wrong asset / wrong chain: anything other than Arbitrum USDC is out of scope for automatic crediting — funds sent on other chains are not lost (the address is yours in custody terms), but recovering them is a support conversation, not an API flow. Send exactly what the
depositobject says. - Held means held: deposits stay in
held_usduntil a deploy allocates them — nothing moves to any venue without a deployment start you initiated. - For an agent: after telling the operator the deposit address, the readiness signal is
held_usdreaching your target — then create and start the deployment; the runtime'svenue_accountprobe takes over from there.