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

# User non-funding ledger updates

> Native Hyperliquid ledger of a wallet: every balance-changing event except funding payments (see `userFunding`) and fills. Rebuilt from the node event archive, in Hyperliquid's shape.

- One entry per event and per address involved: a transfer appears in both the sender's and the receiver's ledger.
- `hash` is the transaction hash, or the zero hash for system events. Several entries can share one hash, for example withdrawals finalised in the same bridge batch; they differ by their `delta`.
- `delta` is the event exactly as Hyperliquid emits it. Newest first; without `startTime`, the last 30 days.
- Coverage: complete from **2025-09-27 09:29 UTC**, the start of the node event archive. New events are available within seconds.
- HyperEVM-side transfers are served by the `/evm/ledger/*` routes.

| `delta.type` | Main fields |
|---|---|
| `deposit` | `usdc` |
| `withdraw` | `usdc`, `fee`, `nonce` |
| `send` | `user`, `destination`, `sourceDex`, `destinationDex`, `token`, `amount`, `usdcValue`, `fee`, `nativeTokenFee`, `feeToken`, `nonce` |
| `spotTransfer` | `user`, `destination`, `token`, `amount`, `usdcValue`, `fee`, `nativeTokenFee`, `feeToken`, `nonce` |
| `internalTransfer` | `user`, `destination`, `usdc`, `fee` |
| `subAccountTransfer` | `user`, `destination`, `usdc` |
| `accountClassTransfer` | `usdc`, `toPerp` |
| `vaultCreate` | `vault`, `usdc`, `fee` |
| `vaultDeposit` | `vault`, `usdc` |
| `vaultWithdraw` | `vault`, `user`, `requestedUsd`, `commission`, `closingCost`, `basis`, `netWithdrawnUsd` |
| `vaultDistribution` | `vault`, `usdc` |
| `vaultLeaderCommission` | `user`, `usdc` |
| `liquidation` | `liquidatedNtlPos`, `accountValue`, `leverageType`, `liquidatedPositions[]` (`coin`, `szi`) |
| `borrowLend` | `token`, `operation` (`supply`, `withdraw`, `borrow`, `repay`), `amount`, `interestAmount` |
| `cStakingTransfer` | `token`, `amount`, `isDeposit` |
| `rewardsClaim` | `token`, `amount` |
| `accountActivationGas` | `token`, `amount` |
| `gossipPriorityGasAuction` | `token`, `amount` |
| `deployGasAuction` | `token`, `amount` |
| `spotGenesis` | `token`, `amount` |



## OpenAPI

````yaml /live-data/openapi-rest.json post /info#userNonFundingLedgerUpdates
openapi: 3.0.3
info:
  title: 'Hypedexer API: Live Data (REST)'
  version: 0.1.0
  description: >-
    REST API for real-time Hyperliquid market data served from our own
    Hyperliquid nodes.


    All data is accessed through a single unified endpoint `POST /info` that
    dispatches based on the `type` field in the JSON body.


    ## Request types


    | Type | Description | Handled |

    |------|-------------|----------|

    | `metaAndAssetCtxs` | Asset context (funding, OI, prices) | Locally (Redis
    cache) |

    | `allMids` | Mid prices for all coins | Locally (Redis cache) |

    | `userFills` / `userFillsByTime` | Fills for a specific user | Locally
    (volume files) |

    | `allFills` | All fills globally | Locally (volume files) |

    | `trades` | Trade data | Locally (volume files) |

    | `l2Book` / `l2Books` | L2 order book snapshot | Locally |

    | `availableDates` | Available data dates | Locally |

    | `clearinghouseState` | Clearinghouse state (single/multi-user) | Locally
    with upstream proxy per user |

    | `userFunding` / `accountFunding` | Funding payments of a user | Indexed
    history, returned unwrapped |

    | `userNonFundingLedgerUpdates` | Native ledger of a user: deposits,
    withdrawals, transfers, vaults, staking, borrow/lend | Indexed history,
    returned unwrapped |

    | `historicalOrders` | Latest orders of a user with their status | Indexed
    history, returned unwrapped |

    | `borrowLendReserveHistory` | Borrow/lend reserve history, one sample per
    minute | Indexed history, returned unwrapped |

    | `meta`, `spotMeta`, `openOrders`, ... | Proxied to local Hyperliquid node
    | Proxied to upstream |


    ## Authentication


    Optional. When `API_KEY` is configured on the server, all requests must
    include:

    ```

    Authorization: Bearer <API_KEY>

    ```


    ## Response format


    Most types return:

    ```json

    { "result": <data>, "cursor": null }

    ```


    `allMids` returns the result directly (not wrapped):

    ```json

    { "BTC": "66764.5", "ETH": "3421.2" }

    ```


    Proxied types return the upstream response as-is.
  contact:
    name: Hypedexer
servers:
  - url: https://api.hypedexer.com
    description: Production, routed to the nearest region (EU or JP)
security:
  - BearerAuth: []
tags:
  - name: Health
    description: Service health and info.
  - name: Asset Context
    description: >-
      Real-time asset context data: funding, open interest, oracle/mark/mid
      prices, volumes.
  - name: Mid Prices
    description: Mid prices for all coins, optionally filtered by DEX.
  - name: Fills
    description: >-
      Executed fills from the Hyperliquid fullnode volumes. Supports
      user-specific and global queries.
  - name: Trades
    description: Trade data from the fullnode volumes.
  - name: Order Book
    description: L2 order book snapshots.
  - name: Metadata
    description: Volume availability and data metadata.
  - name: Clearinghouse
    description: >-
      Clearinghouse state with multi-user support. Each user is fetched
      individually from the upstream Hyperliquid node.
  - name: Proxied Perpetuals
    description: >-
      Perpetual market metadata, margin, OI caps, DEX configs. Proxied to
      upstream Hyperliquid node.
  - name: Proxied Spot
    description: >-
      Spot market metadata, balances, and deploy state. Proxied to upstream
      Hyperliquid node.
  - name: Proxied Trading
    description: >-
      Orders, positions, and active asset data. Proxied to upstream Hyperliquid
      node.
  - name: Proxied Account
    description: >-
      User account info: fees, rate limits, sub-accounts, agents, roles. Proxied
      to upstream Hyperliquid node.
  - name: Proxied Vaults
    description: >-
      Vault summaries, equities, and leaderboards. Proxied to upstream
      Hyperliquid node.
  - name: Proxied Staking
    description: >-
      Delegations, staking summaries, and validator votes. Proxied to upstream
      Hyperliquid node.
  - name: Proxied Exchange
    description: >-
      Exchange status, liquidatable positions, web data. Proxied to upstream
      Hyperliquid node.
  - name: Account History
    description: >-
      Per-address history served from our index, in Hyperliquid's `info` shapes:
      funding payments, native ledger and orders.
  - name: Borrow/Lend
    description: >-
      History of Hyperliquid's borrow/lend reserves, sampled every minute from
      our own node.
paths:
  /info#userNonFundingLedgerUpdates:
    post:
      tags:
        - Account History
      summary: User non-funding ledger updates
      description: >-
        Native Hyperliquid ledger of a wallet: every balance-changing event
        except funding payments (see `userFunding`) and fills. Rebuilt from the
        node event archive, in Hyperliquid's shape.


        - One entry per event and per address involved: a transfer appears in
        both the sender's and the receiver's ledger.

        - `hash` is the transaction hash, or the zero hash for system events.
        Several entries can share one hash, for example withdrawals finalised in
        the same bridge batch; they differ by their `delta`.

        - `delta` is the event exactly as Hyperliquid emits it. Newest first;
        without `startTime`, the last 30 days.

        - Coverage: complete from **2025-09-27 09:29 UTC**, the start of the
        node event archive. New events are available within seconds.

        - HyperEVM-side transfers are served by the `/evm/ledger/*` routes.


        | `delta.type` | Main fields |

        |---|---|

        | `deposit` | `usdc` |

        | `withdraw` | `usdc`, `fee`, `nonce` |

        | `send` | `user`, `destination`, `sourceDex`, `destinationDex`,
        `token`, `amount`, `usdcValue`, `fee`, `nativeTokenFee`, `feeToken`,
        `nonce` |

        | `spotTransfer` | `user`, `destination`, `token`, `amount`,
        `usdcValue`, `fee`, `nativeTokenFee`, `feeToken`, `nonce` |

        | `internalTransfer` | `user`, `destination`, `usdc`, `fee` |

        | `subAccountTransfer` | `user`, `destination`, `usdc` |

        | `accountClassTransfer` | `usdc`, `toPerp` |

        | `vaultCreate` | `vault`, `usdc`, `fee` |

        | `vaultDeposit` | `vault`, `usdc` |

        | `vaultWithdraw` | `vault`, `user`, `requestedUsd`, `commission`,
        `closingCost`, `basis`, `netWithdrawnUsd` |

        | `vaultDistribution` | `vault`, `usdc` |

        | `vaultLeaderCommission` | `user`, `usdc` |

        | `liquidation` | `liquidatedNtlPos`, `accountValue`, `leverageType`,
        `liquidatedPositions[]` (`coin`, `szi`) |

        | `borrowLend` | `token`, `operation` (`supply`, `withdraw`, `borrow`,
        `repay`), `amount`, `interestAmount` |

        | `cStakingTransfer` | `token`, `amount`, `isDeposit` |

        | `rewardsClaim` | `token`, `amount` |

        | `accountActivationGas` | `token`, `amount` |

        | `gossipPriorityGasAuction` | `token`, `amount` |

        | `deployGasAuction` | `token`, `amount` |

        | `spotGenesis` | `token`, `amount` |
      operationId: userNonFundingLedgerUpdates
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - type
                - user
              properties:
                type:
                  type: string
                  enum:
                    - userNonFundingLedgerUpdates
                user:
                  type: string
                  description: Wallet address (0x-prefixed, case-insensitive)
                startTime:
                  type: integer
                  description: 'Inclusive, epoch milliseconds. Default: now minus 30 days'
                endTime:
                  type: integer
                  description: Inclusive, epoch milliseconds
                limit:
                  type: integer
                  minimum: 1
                  maximum: 5000
                  default: 500
            example:
              type: userNonFundingLedgerUpdates
              user: '0x010461c14e146ac35fe42271bdc1134ee31c703a'
              startTime: 1758931200000
              limit: 1
      responses:
        '200':
          description: Ledger entries, newest first
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    time:
                      type: integer
                      description: Exact event timestamp in milliseconds
                    hash:
                      type: string
                      description: Transaction hash, or the zero hash for system events
                    delta:
                      type: object
                      description: >-
                        The event as Hyperliquid emits it; see the table above
                        for the fields of each type
                      properties:
                        type:
                          type: string
              example:
                - time: 1785843722718
                  hash: >-
                    0x8ce6986227aaae5c8e6004416d210d0204610047c2adcd2e30af43b4e6ae8847
                  delta:
                    type: vaultDeposit
                    vault: '0x010461c14e146ac35fe42271bdc1134ee31c703a'
                    usdc: '30066.896962'
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
        - BearerAuth: []
components:
  responses:
    Unauthorized:
      description: >-
        Missing or invalid API key. The body is `missing api key` or `invalid
        api key`.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error: Invalid API key
  schemas:
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: string
          description: Error message
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Your Hypedexer API key, sent as `Authorization: Bearer <key>`. The
        `X-API-Key: <key>` header and the `api_key` query parameter are accepted
        as well.

````