Skip to main content
The MM WebSocket auth flow returns a bearer session token for MM-authenticated HTTP routes such as taker PnL. Balance and funding routes are regular user-account REST routes for your own account only. They read from or write to the wallet/account bound to the authenticated bearer session. Use either the MM WebSocket-auth session for that wallet or a session obtained from POST /v1/auth/wallet or POST /v1/auth/session.

Routes

RoutePurpose
GET /v1/user/available_balancereturns ; currently available internal balance
GET /v1/user/reserved_balancereturns ; currently reserved internal balance
GET /v1/user/available_app_token_balancereturns ; immediately available app-token balance
GET /v1/user/reserved_app_token_balancereturns ; app-token balance held by open activity
GET /v1/user/app_token_grantslists app-token grants with category, expiry, availability, and consumption fields; accepts limit (default 50, max 100) and cursor, and returns has_more plus next_cursor when another page is available
GET /v1/users/deposit-walletreturns the Longshot-controlled wallet users send USDC to for automatic deposits
POST /v1/users/depositcredits internal available balance after settlement deposit succeeds; primarily used in demo/manual-deposit mode
POST /v1/users/withdrawmoves internal balance to an explicit destination address and returns amount_micros, operation_id, destination_address, and tx_hash
POST /v1/user/deposit_app_tokenmoves ERC1155 app tokens from settlement into the app-token balance ledger
POST /v1/user/grant_app_tokencreates a user-funded app-token grant; the authenticated caller’s available balance funds the grant

Deposit and Withdrawal Body

POST /v1/users/deposit accepts an amount and idempotency key. POST /v1/users/withdraw also requires destination_address. Amounts are in USDC micros.
amount_micros
uint64
required
Amount to move, in USDC micros (1_000_000 = 1 USDC).
idempotency_key
uuid
required
Client-generated UUID. Repeated requests with the same key are deduplicated.
destination_address
string
Required for withdrawals only. EVM address that receives the withdrawn USDC.
{
  "amount_micros": 1000000,
  "destination_address": "0x742d35cC6634C0532925A3B844Bc9e7595F8B2A1",
  "idempotency_key": "550e8400-e29b-41d4-a716-446655440000"
}
Withdrawals return the destination address; deposits omit it.
{
  "amount_micros": "1000000",
  "operation_id": "550e8400-e29b-41d4-a716-446655440000",
  "destination_address": "0x742d35cC6634C0532925A3B844Bc9e7595F8B2A1",
  "tx_hash": "0xabc123"
}

App-Token Deposit Body

POST /v1/user/deposit_app_token uses the same idempotency pattern plus the ERC1155 app-token ID.
{
  "token_id": "0x0000000000000000000000000000000000000000000000000000000000000001",
  "amount_micros": 1000000,
  "idempotency_key": "550e8400-e29b-41d4-a716-446655440000"
}
It returns the same amount_micros, operation_id, and tx_hash shape as USDC deposits.