# Hyperliquid TWAP Statuses - Node Data

`node_twap_statuses_by_block` records lifecycle updates for time-weighted average price (TWAP) orders. Each event includes the TWAP identifier, current aggregate state, and lifecycle status.

## Access

| Availability  | Access                                                                                                                  | Details                                                                                                                                                                                                                                                                                                                                                           |
| ------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Live / replay | [StreamTwapStatuses](https://www.dwellir.com/docs/hyperliquid/stream_twap_statuses) and [GetTwapStatuses](https://www.dwellir.com/docs/hyperliquid/get_twap_statuses) | V3 selects with `position.block_number` or `position.timestamp`; `Record.block_number` and `Record.timestamp` are transport cursors. V3 supports the documented `users` and `coins` filters. V2 selects with `block_height` or `timestamp_ms` and returns source JSON bytes in `BlockTwapStatuses.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 `node_twap_statuses_by_block`: `2026-07-01` to `2026-09-28`, stored as `hourly .lz4`.                                                                                                                                                                                                                                                             |

## File layout

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

Files contain JSON block envelopes with TWAP lifecycle objects in `events`.

For download planning, see [compressed size and file count](https://www.dwellir.com/docs/hyperliquid/historical-data#compressed-size-and-file-count). Measure TWAP statuses and fills separately for the same date range when you need both.

## 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",
      "twap_id": 101,
      "state": {
        "coin": "kPEPE",
        "user": "<redacted-user>",
        "side": "B",
        "sz": "555555.0",
        "executedSz": "555555.0",
        "executedNtl": "1371.51378",
        "minutes": 5,
        "reduceOnly": false,
        "randomize": false,
        "timestamp": 1704067200000
      },
      "status": "finished"
    }
  ]
}
```

This is synthetic representative data. The production account identifier uses a visible `<redacted-user>` marker, and the TWAP identifier is synthetic.

## Important fields

| Field                                    | Description                                                                       |
| ---------------------------------------- | --------------------------------------------------------------------------------- |
| `twap_id`                                | TWAP order identifier.                                                            |
| `state.user`, `state.coin`, `state.side` | Account, market, and side.                                                        |
| `state.sz`                               | Target size as a numeric string.                                                  |
| `state.executedSz`, `state.executedNtl`  | Aggregate executed size and notional at this lifecycle boundary.                  |
| `state.minutes`                          | Requested duration in minutes.                                                    |
| `state.timestamp`                        | TWAP creation time in Unix milliseconds.                                          |
| `status`                                 | Lifecycle string or an object carrying an error. Treat the set as non-exhaustive. |

This is lifecycle state, not a fill-by-fill log. Use fills for individual executions.

Join `twap_id` to a fill's `twapId`, not its child-order `oid`. Aggregate execution fields describe lifecycle boundaries rather than continuous progress.

Use signed block actions and responses for submission attempts and cancellations. A fills-derived sample excludes TWAPs that never execute.

For activity already running at your selection's start, include earlier lifecycle records or a matching state seed. See [TWAP research validation](https://www.dwellir.com/docs/hyperliquid/research#how-do-i-join-twap-lifecycle-events-to-executions).

## Related pages

- [TWAP order action](https://www.dwellir.com/docs/hyperliquid/twapOrder) — Decode the signed payload that starts a TWAP.
- [TWAP cancel action](https://www.dwellir.com/docs/hyperliquid/twapCancel) — Decode TWAP cancellation payloads.
- [Indexed TWAP summaries](https://www.dwellir.com/docs/hyperliquid/hyperliquid-index/fills/user-twap-summaries) — Query execution-derived summaries for one user.
- [Indexed TWAP slice fills](https://www.dwellir.com/docs/hyperliquid/hyperliquid-index/fills/user-twap-slice-fills) — Query the individual executions produced by TWAP slices.
