# Hyperliquid Misc Events - Node Data

`misc_events_by_block` carries miscellaneous L1 events, including ledger updates, transfers, staking activity, withdrawals, and system-generated records.

The event variants are open-ended. Branch on the discriminator inside `inner`, retain unknown variants, and treat documented variants as examples rather than a closed enum.

## Access

| Availability  | Access                                                                                                          | Details                                                                                                                                                                                                                                                                                                                                                                               |
| ------------- | --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Live / replay | [StreamMiscEvents](https://www.dwellir.com/docs/hyperliquid/stream_misc_events) and [GetMiscEvents](https://www.dwellir.com/docs/hyperliquid/get_misc_events) | V3 selects with `position.block_number` or `position.timestamp`; `Record.block_number` and `Record.timestamp` are transport cursors. V3 supports the documented `users` filter. This feed does not accept `coins`. V2 selects with `block_height` or `timestamp_ms` and returns source JSON bytes in `BlockMiscEvents.data`; it does not use the V3 record fields or filter contract. |
| Archival      | [S3 Bucket](https://www.dwellir.com/docs/hyperliquid/historical-data)                                                                  | S3 coverage for `misc_events_by_block`: `2026-06-29` to today, stored as `hourly .lz4`.                                                                                                                                                                                                                                                                                               |

## File layout

```text
misc_events_by_block/<YYYYMMDD>/<hour>.lz4
```

Files contain JSON block envelopes. An envelope can have an empty `events` array. That records an empty source block; it is not a transport heartbeat and must not be used as proof that a connection is healthy.

## Sample data

```json
{
  "local_time": "2026-01-01T00:00:00.100000000",
  "block_time": "2026-01-01T00:00:00.000000000",
  "block_number": 12345,
  "events": [
    {
      "time": "2026-01-01T00:00:00.000000000",
      "hash": "<redacted-transaction-hash>",
      "inner": {
        "LedgerUpdate": {
          "users": [
            "<redacted-user-a>",
            "<redacted-user-b>"
          ],
          "delta": {
            "type": "spotTransfer",
            "token": "USDC",
            "amount": "100.058362"
          }
        }
      }
    }
  ]
}
```

This is synthetic representative data. Production transaction and account identifiers use visible `<redacted-...>` markers.

## Important fields

| Field                           | Description                                                                               |
| ------------------------------- | ----------------------------------------------------------------------------------------- |
| `time`                          | Event timestamp as an ISO-8601 string.                                                    |
| `hash`                          | Transaction hash. An all-zero value can identify a system-generated event.                |
| `inner`                         | Single-key variant object such as `LedgerUpdate`; handle an unknown discriminator safely. |
| `inner.LedgerUpdate.users`      | Accounts involved in the ledger update.                                                   |
| `inner.LedgerUpdate.delta.type` | Discriminator for the ledger action. Its remaining fields depend on the type.             |

## Related pages

- [Blocks and actions](https://www.dwellir.com/docs/hyperliquid/data-catalog/node-feeds/blocks) — Pair event records with their surrounding block and execution responses.
- [HyperCore Info endpoint](https://www.dwellir.com/docs/hyperliquid/info-endpoint) — Query current HyperCore state through request-response methods.
- [Clearinghouse state](https://www.dwellir.com/docs/hyperliquid/clearinghouse-state) — Read current perpetual positions and margin state for an account.
