# Hyperliquid Periodic ABCI State - Binary Data

`periodic_abci_states` contains periodic binary state dumps. These files are archival inputs for state-aware consumers and can seed generated order-book snapshots. They are not a JSON event feed.

## Access

| Availability      | Access                                                                                                                                         | Details                                                                                                                                      |
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| Live / replay     | [Dedicated Node Cluster gRPC](https://www.dwellir.com/docs/hyperliquid/pricing#dedicated-cluster)                                                                     | Direct gRPC access to `periodic_abci_states` is available only with a [Dedicated Node Cluster](https://www.dwellir.com/docs/hyperliquid/pricing#dedicated-cluster). |
| Archival          | [S3 Bucket](https://www.dwellir.com/docs/hyperliquid/historical-data)                                                                                                 | S3 coverage for `periodic_abci_states`: `2026-04-14` to today, stored as `<height>.rmp.lz4`.                                                 |
| Related live data | [StreamOrderbookSnapshots](https://www.dwellir.com/docs/hyperliquid/stream_orderbook_snapshots) and [GetOrderBookSnapshot](https://www.dwellir.com/docs/hyperliquid/get_order_book_snapshot) | Snapshot availability and maximum response size vary by endpoint.                                                                            |

## File layout

Depending on the source object and compression state, the relative filename ends in one of these forms:

```text
periodic_abci_states/<date>/<block-number>.rmp
periodic_abci_states/<date>/<block-number>.rmp.lz4
```

## Binary format

The payload is binary RMP (MessagePack) state. A `.rmp.lz4` object must be decompressed before an RMP decoder reads it; the resulting bytes are still RMP, not JSON. Select a decoder that matches the node-state schema for the object you consume. Never pass the bytes to a JSON parser or infer a JSON structure from the filename.

## Important fields

There is no stable top-level JSON field table for this dataset. The filename identifies the associated sequential block position, while the decoded binary fields depend on the matching RMP state schema. Preserve large integers, byte arrays, and map keys without lossy JSON conversion.

For order-book reconstruction, use a generated snapshot derived for that purpose and then apply ordered book diffs after its position. Do not treat an arbitrary binary state dump as the public snapshot response shape.

A generated book snapshot cannot establish complete account balances or margin state. See [account-risk reconstruction requirements](https://www.dwellir.com/docs/hyperliquid/research#can-i-reconstruct-account-risk-from-book-snapshots) before selecting replay inputs.

## Observed fields

Each line lists the keys inside one container. `[n]` after a key is the largest array length seen. `[]` marks an array element and `[1]` the value half of a key-value pair. The walk stops 7 levels deep. Field names follow the node-state schema and can change at a hardfork.

Generated from `periodic_abci_states/20261021/1191310000.rmp.lz4` (2026-10-21).

```text
(root): exchange
exchange: action_delayer, advt, agent_tracker, allowed_liquidators[5], app_hash_vote_tracker, begin_block_logic_guard, book_empty_user_states_pruning_guard, bridge2, c_staking, cancel_aggressive_orders_at_open_interest_cap_guard, default_hip3_limits, dex_abstraction_enabled, disabled_precompiles[0], evm_enabled, funding_distribute_guard, funding_err_dur_guard, funding_update_guard, hil, hip3_no_cross, hip3_stale_mark_px_guard, hlp_start_of_day_account_value, hyper_evm, hyperliquidity, initial_usdc_evm_system_balance, last_hlp_cancel_time, lhvt, locus, lvt, max_hlp_withdraw_fraction_per_day, max_order_distance_from_anchor, msc, multi_sig_tracker, oh[100], partial_liquidation_cooldown, perp_deploy_gas_auction, perp_dexs[11], pmi, pmn, post_only_until_height, post_only_until_time, prune_agent_idx, pt, pvs, register_token_gas_auction, reserve_accumulators[3], scheduled_freeze_height, spot_books[1121], spot_disabled, spot_pair_deploy_gas_auction, spot_twap_tracker, staking, staking_link_tracker, sub_account_tracker, user_to_display_name[3275], user_to_evm_state[1111429], user_to_evm_to_l1_wei_remaining[0], user_to_scheduled_cancel[265], validator_l1_stream_tracker, validator_l1_vote_tracker, vtg
exchange.action_delayer: delay_scale, delayed_actions[0], max_n_delayed_actions, n_total_delayed_actions, user_to_n_delayed_actions[0]
exchange.advt: adu, h, highest_quorum_height, htm[0], qrs[0], tracker
exchange.advt.h: l, q
exchange.advt.tracker: hsc, i[51], name
exchange.advt.tracker.hsc: i, q
exchange.advt.tracker.i[][1]: qst, vts[1]
exchange.agent_tracker: address_to_nonce_set[158663], agent_to_user[418223], user_to_extra_agents[292422], user_to_main_agent[73546], user_to_pending_agent_removals[0]
exchange.agent_tracker.user_to_extra_agents[][1][]: a, n, v
exchange.agent_tracker.user_to_main_agent[][1]: a, v
exchange.app_hash_vote_tracker: highest_quorum_height, quorum_app_hashes[0], tracker
exchange.app_hash_vote_tracker.tracker: hsc[0], i[26], name
exchange.app_hash_vote_tracker.tracker.i[][1]: qst, vts[1]
exchange.begin_block_logic_guard: bucket_millis, last_bucket
exchange.book_empty_user_states_pruning_guard: bucket_millis, last_bucket
exchange.bridge2: bal, dvp[0], dvpd, dvs[22], eth_id_to_deposit_votes, finished_deposits_data[9768], finished_withdrawal_to_time[10872], last_pruned_deposit_block_number, lfd, oaw, r, validator_set_finalized_votes, validator_set_signatures, withdrawal_finalized_votes, withdrawal_signatures
exchange.bridge2.dvs[][1]: ne, nv
exchange.bridge2.eth_id_to_deposit_votes: hsc, i[0], name
exchange.bridge2.eth_id_to_deposit_votes.hsc: i, q
exchange.bridge2.finished_deposits_data[][]: b, e, h, i, s, t, u
exchange.bridge2.finished_withdrawal_to_time[][]: n, u
exchange.bridge2.r: c
exchange.bridge2.r.c: a, i
exchange.bridge2.validator_set_finalized_votes: hsc[0], i[4], name
exchange.bridge2.validator_set_finalized_votes.i[][1]: qst, vts[1]
exchange.bridge2.validator_set_signatures: hsc[0], i[1], name
exchange.bridge2.validator_set_signatures.i[][1]: qst, vts[1]
exchange.bridge2.withdrawal_finalized_votes: hsc[0], i[0], name
exchange.bridge2.withdrawal_signatures: hsc[0], i[166], name
exchange.bridge2.withdrawal_signatures.i[][]: n, qst, u, vts[1]
exchange.c_staking: allow_all_validators, allowed_validators[16], broadcasters[9], delegations, disabled_node_ips[0], disabled_validators[0], distribute_reward_bucket_guard, gms, jail_until[0], jailed_signers, jvt, lsc, native_token_reserve, pending_withdrawals, proposals[0], retired_signers[0], self_delegation_requirement, signer_to_last_manual_unjail_time[0], stage_reward_bucket_guard, stakes, stakes_decay_bucket_guard, user_states[108951], validator_to_profile[35], validator_to_staged_rewards[27], validator_to_state[35], vms
exchange.c_staking.delegations: user_to_delegations[48799], validator_to_state[35]
exchange.c_staking.delegations.validator_to_state[][1]: delegator_to_epoch_delegation[1487], total_delegated
exchange.c_staking.distribute_reward_bucket_guard: bucket_millis, last_bucket
exchange.c_staking.jailed_signers: current[6], current_round, epoch_values, n_keep, period
exchange.c_staking.jailed_signers.epoch_values: initial_round, round_to_val[300]
exchange.c_staking.jvt: hsc[0], i[0], name
exchange.c_staking.pending_withdrawals: queue[772], user_to_total_withdrawal[682]
exchange.c_staking.pending_withdrawals.user_to_total_withdrawal[][1]: n, wei
exchange.c_staking.stage_reward_bucket_guard: bucket_millis, last_bucket
exchange.c_staking.stakes: current, current_round, epoch_values, n_keep, period
exchange.c_staking.stakes.current: hv[22], max_n_validators, validator_to_stake[35]
exchange.c_staking.stakes.epoch_values: initial_round, round_to_val[300]
exchange.c_staking.stakes_decay_bucket_guard: bucket_millis, last_bucket
exchange.c_staking.validator_to_profile[][1]: commission_bps, delegations_disabled, description, name, node_ip, signer
exchange.c_staking.validator_to_profile[][1].node_ip: Ip[4]
exchange.c_staking.validator_to_state[][1]: delegations_blocked, last_signer_change_time, register_time
exchange.cancel_aggressive_orders_at_open_interest_cap_guard: bucket_millis, last_bucket
exchange.default_hip3_limits: daily_px_range, max_n_users_with_positions, max_transfer_ntl2, max_under_initial_margin_transfer_ntl2, oi_sz_cap_per_perp, total_oi_cap2
exchange.funding_distribute_guard: bucket_millis, last_bucket
exchange.funding_err_dur_guard: err_duration, first_err_time, last_err_time
exchange.funding_update_guard: bucket_millis, last_bucket
exchange.hil: half_life, m, max_n_depositors, max_slippage
exchange.hip3_stale_mark_px_guard: bucket_millis, last_bucket
exchange.hyper_evm: big_block_context, disabled_core_writer_actions[0], ft[0], is_initialized, l1_to_evm_erc20_queue[1], l1_to_evm_native_token_queue[0], l1_transfers_enabled, latest_block2, mrb, put[0], small_block_context, state2, ub, ul
exchange.hyper_evm.big_block_context: bucket_guard, latest_block, mempool
exchange.hyper_evm.big_block_context.bucket_guard: bucket_millis, last_bucket
exchange.hyper_evm.big_block_context.latest_block: Reth115
exchange.hyper_evm.big_block_context.latest_block.Reth115: body, header
exchange.hyper_evm.big_block_context.latest_block.Reth115.body: ommers[0], transactions[2], withdrawals[0]
exchange.hyper_evm.big_block_context.latest_block.Reth115.header: hash, header
exchange.hyper_evm.big_block_context.mempool: address_to_txs[37], len
exchange.hyper_evm.l1_to_evm_erc20_queue[]: contract, send_to_evm_data, system_address, token, user, wei
exchange.hyper_evm.l1_to_evm_erc20_queue[].send_to_evm_data: data, destination_chain_id, destination_recipient, gas_limit, nonce
exchange.hyper_evm.latest_block2: Reth115
exchange.hyper_evm.latest_block2.Reth115: body, header
exchange.hyper_evm.latest_block2.Reth115.body: ommers[0], transactions[5], withdrawals[0]
exchange.hyper_evm.latest_block2.Reth115.header: hash, header
exchange.hyper_evm.latest_block2.Reth115.header.header: baseFeePerGas, blobGasUsed, difficulty, excessBlobGas, extraData, gasLimit, gasUsed, logsBloom, miner, mixHash, nonce, number, parentBeaconBlockRoot, parentHash, receiptsRoot, sha3Uncles, stateRoot, timestamp, transactionsRoot, withdrawalsRoot
exchange.hyper_evm.small_block_context: bucket_guard, latest_block, mempool
exchange.hyper_evm.small_block_context.bucket_guard: bucket_millis, last_bucket
exchange.hyper_evm.small_block_context.latest_block: Reth115
exchange.hyper_evm.small_block_context.latest_block.Reth115: body, header
exchange.hyper_evm.small_block_context.latest_block.Reth115.body: ommers[0], transactions[5], withdrawals[0]
exchange.hyper_evm.small_block_context.latest_block.Reth115.header: hash, header
exchange.hyper_evm.small_block_context.mempool: address_to_txs[1806], len
exchange.hyper_evm.state2: block_hashes[257], evm_db
exchange.hyper_evm.state2.evm_db: NoEvmDb
exchange.hyperliquidity: ensure_order_bucket_guard, spot_to_range[1091]
exchange.hyperliquidity.ensure_order_bucket_guard: bucket_millis, last_bucket
exchange.hyperliquidity.spot_to_range[][1]: order_sz, points[4000]
exchange.lhvt: adu, h, highest_quorum_height, htm[0], qrs[0], tracker
exchange.lhvt.h: l, q
exchange.lhvt.tracker: hsc, i[6], name
exchange.lhvt.tracker.hsc: i, q
exchange.lhvt.tracker.i[][1]: qst, vts[1]
exchange.locus: aux[0], blp, chn, cls[11], ctr, ctx, ftr, hcm, msc, pdl, pmu, qus[3], scl, uaR[0], uac[6663], ust[2799178], vlt[9478]
exchange.locus.blp: b, bog, bwo, dp, du, e, mbs, n, o, os, p, pma, pmdl, pml, pmmt, pmmu, pmv, r, u[22879], ubgl, ubul, uobc
exchange.locus.blp.b: e, er[4]
exchange.locus.blp.bog: bucket_millis, last_bucket
exchange.locus.blp.pmdl: m, n
exchange.locus.blp.pml: m, n
exchange.locus.blp.r: p, t[5], u
exchange.locus.blp.u[][1]: t[3]
exchange.locus.blp.ubgl: m, n
exchange.locus.blp.ubul: m, n
exchange.locus.blp.uobc: n, t
exchange.locus.cls[]: adl_shortfall_remaining, bridge2_withdraw_fee, daily_exchange_scaled_and_raw_vlms[21], halted_assets[56], isolated_external[0], isolated_oracle[1], last_set_global_time, lnsgt, max_withdraw_leverage, meta, moh, oracle, override_max_signed_distances_from_oracle[0], perform_auto_deleveraging, total_net_deposit, total_non_bridge_deposit, usdc_ntl_scale[2], user_states, znfn
exchange.locus.cls[].meta: collateralToken, collateralTokenName, marginTableIdToMarginTable[7], pdi, universe[234]
exchange.locus.cls[].moh: Hip3, Main
exchange.locus.cls[].moh.Hip3: df[127], hip3_backstop_liquidator_state, limits, schema, state
exchange.locus.cls[].moh.Main: asset_to_recent_oi[30], assets_at_open_interest_cap[7], override_max_oi_per_second[5], reset_recent_oi_bucket_guard
exchange.locus.cls[].oracle: err_dur_guard, lmpe[183], mpcg[0], msoe, pmep[1], pmpo[0], psro[2], pxs2[234], ror
exchange.locus.cls[].oracle.err_dur_guard: err_duration, first_err_time, last_err_time
exchange.locus.cls[].oracle.msoe: e[183], g
exchange.locus.cls[].oracle.ror: ktm[704], roc, utl[23]
exchange.locus.cls[].user_states: ar[1], asset_to_oi_szi[234], check_all_users_for_liquidatables, open_order_tracker, user_to_state[2349631], users_with_positions[105139]
exchange.locus.cls[].user_states.open_order_tracker: user_to_data[17663]
exchange.locus.ctr: ac, sc, so, tc, tn, to, vn
exchange.locus.ctr.ac: c, l, m, p
exchange.locus.ctr.ac.c: s
exchange.locus.ctx: hardfork, hardfork_height, height, mac, next_lid, next_oid, next_twap_id, prev_time, round, system_nonce, time, tx_index, use_system_nonce
exchange.locus.ctx.hardfork: round, version
exchange.locus.ftr: code_to_referrer[65611], collected_builder_fees[1949], fee_schedule, referral_bucket_millis, referrer_states[65611], total_fees_collected, total_spot_fees_collected, trials_disabled, unrewarded_users[13], user_states[2017108]
exchange.locus.ftr.fee_schedule: destination, extra_destination_fractions[1], rates[4], referral_discount, referrer_keep, stake_discount_tiers, tiers, weigh_spot_volume_double
exchange.locus.ftr.fee_schedule.stake_discount_tiers: tiers[6]
exchange.locus.ftr.fee_schedule.tiers: mm[3], vip[6]
exchange.locus.ftr.referrer_states[][1]: b, c, n, s[3]
exchange.locus.ftr.user_states[][1]: F, T[1], r
exchange.locus.msc: ape, apw, mts, nts, scri, tse, uts[217]
exchange.locus.scl: daily_exchange_scaled_and_raw_vlms[21], eebl, eec, evm_transfer_escrows[1254], meta, native_token, pmr[5], soh, spot_dusting_opted_out_users[4537], token_fees_collected[1045], token_to_genesis[1107], token_to_max_supply[1094], token_to_pending_evm_contract[0], user_states[2233076]
exchange.locus.scl.daily_exchange_scaled_and_raw_vlms[][1]: r, s
exchange.locus.scl.eebl: m, n
exchange.locus.scl.eec: n, t
exchange.locus.scl.meta: allow_duplicate_token_names, canonical_tokens2[2], dtl[2], liquid_base_tokens[7], liquid_quote_tokens[2], outr, quote_token_to_status[4], spot_infos[1121], ta2[1], token_id_to_token[1275], token_infos[1275], token_name_to_canonical_deployer[0], token_to_approx_usdc_pxs[11], token_to_first_time_enabled_as_quote[4]
exchange.locus.scl.meta.outr: den, dts[4], fs, l, mao, mdo, mdod, mnao, mnaq, mnd, mut, ndo, nou, nqu, otq[120], ots[306], qts[24], tem, tto[612], uoa, utd[154]
exchange.locus.scl.meta.outr.tem: ntt[28]
exchange.locus.scl.meta.spot_infos[]: deploy_time, tokens[2]
exchange.locus.scl.meta.token_infos[]: deploy_gas_token, deploy_gas_wei, deploy_time, deployer, deployer_trading_fee_share, evm_contract, frozen_users, full_name, non_circulating_users[0], seeded_usdc, spec, spots[1]
exchange.locus.scl.soh: sotq[1912], sots[14749], sqp[14749], sqpq[462], sqts[462]
exchange.locus.scl.token_to_genesis[][1]: blacklist_users[0], existing_token_balances[1], user_balances[3]
exchange.locus.scl.user_states[][1]: b[175]
exchange.locus.uac[][1]: m
exchange.locus.ust[][1]: C, P, s
exchange.locus.vlt[][1]: allow_deposits, always_close_on_withdraw, create_time, description, is_closed, leader, leader_commission, lockup_duration, name, relationship, s, user_states[49], vault_user
exchange.locus.vlt[][1].relationship: type
exchange.msc: aci, i, mou, mtpt, pmc, sgd, sog, sre[0], tce, tde, uta[2], vpv[22]
exchange.msc.mou: l, u[3]
exchange.msc.sog: bucket_millis, last_bucket
exchange.msc.vpv[][1]: time, version
exchange.multi_sig_tracker: user_to_multi_sig_signers[6117]
exchange.multi_sig_tracker.user_to_multi_sig_signers[][1]: authorizedUsers[4], threshold
exchange.oh[][1]: pxs2[234]
exchange.perp_deploy_gas_auction: bucket_guard, end_gas_wei, initial_gas_to_last_auction_gas_ratio, min_gas, start_gas_wei, token
exchange.perp_deploy_gas_auction.bucket_guard: bucket_millis, last_bucket
exchange.perp_dexs[]: books[234], funding_tracker, perp_to_annotation[123], twap_tracker
exchange.perp_dexs[].books[]: asset, bod, cloid_tracker, halfs[2], last_trade_px, oid_to_key[59570], total_sz, user_states[15985]
exchange.perp_dexs[].books[].bod: e[64684], l, n
exchange.perp_dexs[].books[].cloid_tracker: user_trackers[141549]
exchange.perp_dexs[].funding_tracker: asset_to_premiums[234], default_clamp, default_impact_usd, hl_only_perps[0], override_impact_usd[9], perp_to_funding_clamp[0], perp_to_funding_interest_rate[4], perp_to_funding_multiplier[129], use_binance_formula
exchange.perp_dexs[].perp_to_annotation[][1]: c, d, k[2], l, n
exchange.perp_dexs[].twap_tracker: running_heap[199], user_to_id_to_state[134], user_to_id_to_waiting[35]
exchange.perp_dexs[].twap_tracker.running_heap[]: next_slice_time, twap_id, user
exchange.pt: gpa[2], gpc, pgp[1134], prp
exchange.pt.gpa[]: a, cw, pw
exchange.pt.gpa[].a: bucket_guard, end_gas_wei, initial_gas_to_last_auction_gas_ratio, min_gas, start_gas_wei, token
exchange.pt.gpa[].a.bucket_guard: bucket_millis, last_bucket
exchange.pt.gpa[].pw: Ip[4]
exchange.pt.gpc: gm
exchange.pt.pgp[][1]: P, u, w
exchange.pt.prp: D, b, d, r
exchange.pvs: mptc, ptc
exchange.register_token_gas_auction: bucket_guard, end_gas_wei, initial_gas_to_last_auction_gas_ratio, min_gas, start_gas_wei, token
exchange.register_token_gas_auction.bucket_guard: bucket_millis, last_bucket
exchange.reserve_accumulators[][1]: ema, max_px, order_ntl, spot
exchange.reserve_accumulators[][1].ema: decay_duration, denom, last_sample_time, n_samples, num
exchange.spot_books[]: asset, bod, cloid_tracker, halfs[2], last_trade_px, oid_to_key[5205], total_sz, user_states[1075]
exchange.spot_books[].bod: e[6198], l, n
exchange.spot_books[].bod.e[]: o
exchange.spot_books[].cloid_tracker: user_trackers[1562]
exchange.spot_books[].halfs[]: levels[3471]
exchange.spot_books[].user_states[][1]: U[0], b[1], r[0], u[0]
exchange.spot_pair_deploy_gas_auction: bucket_guard, end_gas_wei, initial_gas_to_last_auction_gas_ratio, min_gas, start_gas_wei, token
exchange.spot_pair_deploy_gas_auction.bucket_guard: bucket_millis, last_bucket
exchange.spot_twap_tracker: running_heap[124], user_to_id_to_state[84], user_to_id_to_waiting[13]
exchange.spot_twap_tracker.running_heap[]: next_slice_time, twap_id, user
exchange.staking: active_epoch, allowed_validators[4], cur_epoch, cur_epoch_state, epoch_duration_seconds, epoch_states[8]
exchange.staking.cur_epoch_state: start_time, validator_states[4]
exchange.staking.cur_epoch_state.validator_states[][1]: cold_user, delegations[1], hot_user
exchange.staking.epoch_states[][1]: start_time, validator_states[4]
exchange.staking_link_tracker: user_to_staking_link2[2507]
exchange.staking_link_tracker.user_to_staking_link2[][1]: StakingUser, TradingUser
exchange.staking_link_tracker.user_to_staking_link2[][1].StakingUser: trading_user
exchange.staking_link_tracker.user_to_staking_link2[][1].TradingUser: staking_user
exchange.sub_account_tracker: sub_account_to_master[48293], user_to_sub_accounts[23803]
exchange.sub_account_tracker.user_to_sub_accounts[][1][]: m, n, s
exchange.user_to_evm_state[][1]: T, b, g, t
exchange.user_to_scheduled_cancel[][1]: t
exchange.validator_l1_stream_tracker: risk_free_rate
exchange.validator_l1_stream_tracker.risk_free_rate: b, m, v[13]
exchange.validator_l1_stream_tracker.risk_free_rate.b: bucket_millis, last_bucket
exchange.validator_l1_stream_tracker.risk_free_rate.v[][1]: t, v
exchange.validator_l1_vote_tracker: active, at2[0], hc, prune_bucket_guard
exchange.validator_l1_vote_tracker.hc: i, q
exchange.validator_l1_vote_tracker.prune_bucket_guard: bucket_millis, last_bucket
exchange.vtg: hsc[0], i[0], name
```

## Related pages

- [Generated order-book snapshots](https://www.dwellir.com/docs/hyperliquid/data-catalog/derived/book-snapshots) — Use the purpose-built public snapshot format for reconstruction.
- [Raw book diffs](https://www.dwellir.com/docs/hyperliquid/data-catalog/node-feeds/book-diffs) — Apply ordered changes after a known state seed.
- [L4 books](https://www.dwellir.com/docs/hyperliquid/data-catalog/derived/l4-book) — Consume the derived, order-level live view.
