Skip to main content

Changelog

This section lists what changed on the public wire and at which block.

A new client does not need this section. It describes how the wire used to behave. The API reference holds the current contract.

Read a page here when a client written against an older release fails, or when you need the block at which a behavior changed.

How a change reaches the chain​

One release moves every behavior at one height. The chain gains one boundary per release, not one per change. A page here covers a whole release, not a single field.

The pin sits one block above the swap height. The outgoing binary commits the swap block and then halts, so that block still runs the old rules. A pin at the swap height itself would make the running chain and a replay of it disagree about that block.

{"type":"account_state","address":"0x…"} returns the current height. Use it to compare the chain with any boundary below.

Entries​

EntryWhat it covers
MigrationsFive breaking changes to the READ surface, newest first, each with a checklist. Signed /exchange actions are unchanged by all five.
Ids and wire shapesoid and tid became decimal-digit strings, order_status gained its fill legs and terminal states, a fill labels its fee token, margin and funding moved onto one plane. Two rows corrupt data silently rather than erroring.
Next release and unverified wire rowsNo change waits for the next node release. One row in the shipped code is not yet read on the running chain: the size plane on archive candles. The page also holds five corrections to this reference.
Block 45,811,287Node 0.9.21: a stalled validator oracle keeps the mark, spot tokens stay in an account at negative equity, and an agent signs the owner into the digest of eight actions.
Block 45,207,953Node 0.9.20: negative equity is backstopped on dust positions and refused new exposure; a successful write no longer gets a dropped notice.
Block 44,563,346Node 0.9.19: a deployer market past its refresh window trades in an off-session discovery band instead of turning reduce-only.
Block 44,478,893Node 0.9.18: deployer markets price off their own push, up to 100x, with a leverage-scaled move band and a bond lock; a deployer deficit stays in its dex; one agent serves one master; a Metaliquidity vault may open on a deployer market.
Block 34,135,466Node 0.9.17 and gateway 0.9.17: the recipient signs a faucet claim, the faucet grant is fixed, and the three points reads are served.
Block 25,599,540Node 0.9.16 and gateway 0.9.16: an open-interest cap on every native perp market, a deployer-set cap, a deficit charged to the markets that produced it, wider ADL reach, a smoothed self-priced index, a bounded delist price, a bridge re-issue and void lane, spot tokens as portfolio-margin collateral, a node_gov label for every round, the fill-tape retirement and the reads it moves to the gateway, user_ledger_updates removed, referral codes, one claim for both credits, two EVM receipt fixes and an order_status fix.
Block 17,113,494The signed action is capped at 1 MiB, and a batch_cancel answers and pushes an order_updates record for each leg.
Block 16,450,001A multi-sig roster holds at most 16 distinct signers, a multi_sig envelope carries at most 16 signatures, and the envelope no longer moves the nonce window of the posting account.
Block 11,550,001vault_modify signs a new type, every raw-size row states its size plane, one faucet claim per address, a parked status, a NONCE_REPLAYED verdict, per-leg cloid dedup, three silent accepts that become refusals, a spot order refused when unfunded, a split standard account with no reservations, a delist that settles every position. The page also covers the gateway rows that shipped the same day: four reads that answer 410, one snapshot frame per subscribe, a trades limit that caps the merged answer.
Block 5,710,001The two-wallet standard account, one force-close vote for both legs, start_position on the size plane, reservations and split on account_state.
Block 13,350,001A future-nonce refusal, TWAP slices that fill, cancel-all reaching TWAP parents, an isolated extend that posts margin, a bounded EVM block, the buyback drip.
Block 7,400,000An admission rule that refuses over-levered orders, a delist that cancels resting orders, the contract CoreWriter lane, permissionless spot deployment, randomized TWAP slices.

See also​