> ## 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.

# userNonFundingLedgerUpdates | Hyperliquid Info API

> Hyperliquid userNonFundingLedgerUpdates: fetch a user's non-funding USDC ledger history (deposits, withdrawals, transfers, vault flows) within a time window.

<CardGroup cols={2}>
  <Card title="Credit Cost"> 1 per call</Card>
  <Card title="Processing"> Realtime</Card>
</CardGroup>

The Hyperliquid info endpoint with `type: "userNonFundingLedgerUpdates"` is used to fetch a user's non-funding USDC ledger history (deposits, withdrawals, transfers, vault flows) within a time window.

<Tip>
  Estimate your monthly cost for this API using the [Pricing Calculator](/pricing-calculator?endpoint=%2Fapi-reference%2Fhyperliquid-info%2Fuser-non-funding-ledger-updates).
</Tip>

<Info>
  * Wire-equal to `POST api.hyperliquid.xyz/info` with `{"type": "userNonFundingLedgerUpdates", "user": "..."}`.
  * Funding payments are not included here - use <a href="https://goldrush.dev/docs/api-reference/hyperliquid/user-funding" target="_blank" rel="noopener noreferrer">`userFunding`</a>.
  * For real-time push of the same events, subscribe to <a href="https://goldrush.dev/docs/api-reference/streaming-api/subscriptions/wallet-activity-stream" target="_blank" rel="noopener noreferrer">`walletTxs`</a>; the `delta.type` discriminator on the polled response maps 1:1 to the streamed `LedgerDelta` interface in the Streaming API.
</Info>

Returns a single user’s USDC and account ledger history within a \[startTime, endTime) window, excluding funding payments. Funding events are intentionally separated into their own type, userFunding, so applications can render fee accruals separately from balance-moving events.

User-keyed. Each entry carries a `delta` whose `type` discriminates the event variant - deposits, withdrawals, internal transfers, sub-account transfers, vault flows, liquidations, rewards claims, and similar.

## Endpoint

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

## Request

<ParamField body="type" type="string" required>
  Always `"userNonFundingLedgerUpdates"`.
</ParamField>

<ParamField body="user" type="string" required>
  The wallet address (lowercase 0x-prefixed hex).
</ParamField>

<ParamField body="startTime" type="int">
  Unix timestamp in milliseconds. Inclusive lower bound for the window.
</ParamField>

<ParamField body="endTime" type="int">
  Unix timestamp in milliseconds. Inclusive upper bound. Defaults to current server time when omitted.
</ParamField>

### Example

<CodeGroup>
  ```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": "userNonFundingLedgerUpdates",
      "user": "0x31ca8395cf837de08b24da3f660e77761dfb974b",
      "startTime": 1735689600000
    }'
  ```

  ```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: "userNonFundingLedgerUpdates",
      user: "0x31ca8395cf837de08b24da3f660e77761dfb974b",
      startTime: 1735689600000,
    }),
  });

  const events = 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": "userNonFundingLedgerUpdates",
          "user": "0x31ca8395cf837de08b24da3f660e77761dfb974b",
          "startTime": 1735689600000,
      },
  )

  events = response.json()
  ```
</CodeGroup>

## Response

An array of ledger event objects. Each entry has `time`, `hash`, and a `delta` discriminated by `delta.type`.

```json theme={null}
[
  {
    "time": 1735689600000,
    "hash": "0x6b9c0a4a3d54b0d4d6b1a0c4d8c9e7f2b6e5d3c2a1f0e9d8c7b6a5f4e3d2c1b0a",
    "delta": {
      "type": "vaultWithdraw",
      "vault": "0x1962905b0a2d0ce8907a92ed5f7a17fef3e1b53e",
      "user": "0x31ca8395cf837de08b24da3f660e77761dfb974b",
      "requestedUsd": "1000.50",
      "commission": "10.00",
      "closingCost": "5.25",
      "basis": "950.00",
      "netWithdrawnUsd": "985.25"
    }
  }
]
```

### Field descriptions

<Note>
  All numeric `delta` fields are returned as **decimal strings**. Do not parse them as floats - keep them as strings or use a fixed-precision decimal type.
</Note>

<ResponseField name="time" type="int">Unix timestamp in milliseconds when the event was applied.</ResponseField>
<ResponseField name="hash" type="string">L1 transaction hash that produced the event.</ResponseField>

<ResponseField name="delta" type="object">
  Event-specific payload. The shape depends on `delta.type`. The example above shows a `vaultWithdraw`; common discriminators include `deposit`, `withdraw`, `accountClassTransfer`, `internalTransfer`, `subAccountTransfer`, `spotTransfer`, `vaultDeposit`, `vaultWithdraw`, `vaultDistribution`, `vaultLeaderCommission`, `liquidation`, `rewardsClaim`, and others. See the [Hyperliquid `nonFundingLedgerUpdates` reference](https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint) for the full discriminator table.

  <Expandable title="properties">
    <ResponseField name="type" type="string">Discriminator. Always present on every variant.</ResponseField>
  </Expandable>
</ResponseField>

## Related endpoints

<CardGroup cols={2}>
  <Card title="userFunding" href="/api-reference/hyperliquid-info/user-funding">fetch a user's per-coin funding payment history within a time window for funding-only P\&L attribution.</Card>
  <Card title="fundingHistory" href="/api-reference/hyperliquid-info/funding-history">fetch a coin’s historical funding rates and premiums over a time window for funding analytics and basis…</Card>
  <Card title="userFills" href="/api-reference/hyperliquid-info/user-fills">fetch a user's most recent trade fills without specifying a time window.</Card>
  <Card title="userFillsByTime" href="/api-reference/hyperliquid-info/user-fills-by-time">fetch a user’s trade fills within a time window for P\&L recaps and tax ledger reconstruction.</Card>
</CardGroup>

*Last reviewed: 2026-06-17*
