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

ParamTypeNotes
limitintegerOptional. 1 to 100; defaults to 20.
cursorstringOptional 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

  • status progresses from observed to confirmed, or becomes failed.
  • tx_hash is always present and is null until a transaction hash is recorded.
  • confirmed_at appears only after the deposit is confirmed.
  • error appears only when status is failed and contains a stable public code and message.

Errors

StatusCodeWhen
400bad_requestlimit is outside 1 to 100, or cursor is invalid.
401unauthorizedAuthentication is missing or invalid.
429rate_limitedThe account or API key exceeded its request allowance.
503wallet_repository_unavailableDeposit 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_usd is Superior's $50 customer-facing minimum. deposit.protocol_min_usd is 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 deposit object says.
  • Held means held: deposits stay in held_usd until 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_usd reaching your target — then create and start the deployment; the runtime's venue_account probe takes over from there.