Hyperliquid Periodic ABCI State - Binary Data
Understand periodic_abci_states RMP files, their layout, and archival, dedicated gRPC, or snapshot access paths.
Hyperliquid RPC endpoint: endpoint URLs, plans and pricing.
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 | Direct gRPC access to periodic_abci_states is available only with a Dedicated Node Cluster. |
| Archival | S3 Bucket | S3 coverage for periodic_abci_states: 2026-04-14 to today, stored as <height>.rmp.lz4. |
| Related live data | StreamOrderbookSnapshots and GetOrderBookSnapshot | 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:
periodic_abci_states/<date>/<block-number>.rmp
periodic_abci_states/<date>/<block-number>.rmp.lz4Binary 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 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).
(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], nameRelated pages
- Generated order-book snapshots — Use the purpose-built public snapshot format for reconstruction.
- Raw book diffs — Apply ordered changes after a known state seed.
- L4 books — Consume the derived, order-level live view.