> ## Documentation Index
> Fetch the complete documentation index at: https://goldrush.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# spotClearinghouseState | Hyperliquid Info API

> Hyperliquid spotClearinghouseState: fetch a single user's spot account balances by wallet address.

> [card] Credit Cost
>
> 1 per call

> [card] Processing
>
> Realtime

The Hyperliquid info endpoint with `type: "spotClearinghouseState"` is used to fetch a single user's spot account balances by wallet address.

> [!TIP]
>
> Estimate your monthly cost for this API using the [Pricing Calculator](https://goldrush.dev/docs/pricing-calculator.md?endpoint=%2Fapi-reference%2Fhyperliquid-info%2Fspot-clearinghouse-state).

> [!NOTE]
>
> * Wire-equal to `POST api.hyperliquid.xyz/info` with `{"type": "spotClearinghouseState", "user": "..."}`.
> * USDC balance is returned as `token: 0`.

Returns a single user’s spot account state - token-by-token balances and the total USD value.

User-keyed. Cached and kept fresh by a per-user WebSocket subscription, so updates are sub-second after any user event.

## Endpoint

```
POST https://hypercore.goldrushdata.com/info
Authorization: Bearer <GOLDRUSH_API_KEY>
Content-Type: application/json
```

## Request

**type** `string` *required* (default: spotClearinghouseState)

Always `"spotClearinghouseState"`.

**user** `string` *required*

The wallet address (lowercase 0x-prefixed hex).

**dex** `string`

Reserved for future HIP-3 spot DEX support. Pass empty string.

### Example

```bash cURL theme={null}
curl -X POST https://hypercore.goldrushdata.com/info \
  -H "Authorization: Bearer $GOLDRUSH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "spotClearinghouseState",
    "user": "0xecb63caa47c7c4e77f60f1ce858cf28dc2b82b00",
    "dex": ""
  }'
```

```typescript TypeScript theme={null}
const response = await fetch("https://hypercore.goldrushdata.com/info", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GOLDRUSH_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    type: "spotClearinghouseState",
    user: "0xecb63caa47c7c4e77f60f1ce858cf28dc2b82b00",
    dex: "",
  }),
});

const state = await response.json();
```

```python Python theme={null}
import os, requests

response = requests.post(
    "https://hypercore.goldrushdata.com/info",
    headers={"Authorization": f"Bearer {os.environ['GOLDRUSH_API_KEY']}"},
    json={
        "type": "spotClearinghouseState",
        "user": "0xecb63caa47c7c4e77f60f1ce858cf28dc2b82b00",
        "dex": "",
    },
)

state = response.json()
```

## Response

```json theme={null}
{
  "balances": [
    {
      "coin": "USDC",
      "token": 0,
      "hold": "0.0",
      "total": "5000.00",
      "entryNtl": "5000.00"
    },
    {
      "coin": "HYPE",
      "token": 150,
      "hold": "0.0",
      "total": "320.45",
      "entryNtl": "1530.00"
    },
    {
      "coin": "PURR",
      "token": 1,
      "hold": "0.0",
      "total": "12500.0",
      "entryNtl": "375.00"
    }
  ],
  "tokenToAvailableAfterMaintenance": [[0, "5000.00"]]
}
```

### Field descriptions

> [!NOTE]
>
> All numeric balance fields (`total`, `hold`, `entryNtl`) are returned as **decimal strings**, preserving upstream precision. Do not parse them as floats - keep them as strings or use a fixed-precision decimal type.

**balances** `array\<object\>`

One entry per token the wallet has interacted with on Hyperliquid spot. May be empty (`[]`) for wallets with no spot history.

**properties**

**coin** `string`

Token ticker symbol (e.g. `"USDC"`, `"PURR"`, `"HYPE"`).

**token** `int`

Numeric token index assigned by Hyperliquid. The pair `(coin, token)` together identifies the asset.

**hold** `string`

Portion of `total` currently locked in open spot orders. Withdrawable balance is `total - hold`.

**total** `string`

Total balance (held + free).

**entryNtl** `string`

Entry notional value at acquisition, in USD.

**tokenToAvailableAfterMaintenance** `array\<[int, string]\>`

**Optional.** Present only when at least one token has a non-zero margin-deduction-aware balance. Each tuple is `[tokenId, availableAmountString]` where `tokenId` references `balances[].token`. Wallets without this field can ignore it; absence is normal for empty or inactive wallets.

## Related endpoints

> [card] [batchSpotClearinghouseState](https://goldrush.dev/docs/api-reference/hyperliquid-info/batch-spot-clearinghouse-state.md)
>
> fetch spot account balances for up to 50 wallets in a single request.

> [card] [clearinghouseState](https://goldrush.dev/docs/api-reference/hyperliquid-info/clearinghouse-state.md)
>
> fetch a single user's perpetuals account state by wallet address.

> [card] [spotDeployState](https://goldrush.dev/docs/api-reference/hyperliquid-info/spot-deploy-state.md)
>
> fetch the spot-token deployment state and gas auction for a deployer.

> [card] [spotMeta](https://goldrush.dev/docs/api-reference/hyperliquid-info/spot-meta.md)
>
> fetch the spot universe metadata and full token configuration without live market context.

> [card] [spotMetaAndAssetCtxs](https://goldrush.dev/docs/api-reference/hyperliquid-info/spot-meta-and-asset-ctxs.md)
>
> fetch the spot universe metadata, token configuration, and live market data in a single call.

> [card] [batchClearinghouseState](https://goldrush.dev/docs/api-reference/hyperliquid-info/batch-clearinghouse-state.md)
>
> fetch perpetuals account state for up to 50 wallets in a single request.

See all Hyperliquid endpoints: [Overview hub](https://goldrush.dev/docs/goldrush-hyperliquid/overview.md) · [Info API reference](https://goldrush.dev/docs/goldrush-hyperliquid/info-api/overview.md)

*Last reviewed: 2026-07-23*


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.