Skip to main content

Activation notice — block 13,350,001

info

LIVE since block 13,350,001. Node 0.8.9 swapped in at block 13,350,000 and every rule below turned on one block later. This page is kept as the record of what changed at that boundary, because a client written against the older behaviour breaks on the rows below.

{"type":"account_state","address":"0x…"} carries the live height if you need to check where the chain is.

Eleven behaviours move at ONE height, so the chain gains one boundary rather than eleven. The rows below are the ones a caller can observe. Anything else in the release changes no request, response, or rejection you can see.

Why the pin is one block above the swap. The outgoing binary commits block 13,350,000 and only then halts, so that block still runs the old rules. Pinning the change at the swap height itself would mean the live chain and a replay of it disagreed about that one block.

Rejections that are NEW

SurfaceBehaviour
Any signed actionA nonce more than 24 hours above the chain's own clock is refused. See below — this is the row most likely to break a working client.
An isolated position that EXTENDSThe extend now posts margin. An extend that the account cannot fund is refused where it previously succeeded.

The future-nonce ceiling

Read this one even if you skip the rest. Below the height, any nonce above the account's replay window is accepted and becomes the new high-water mark. One action carrying an absurd value therefore pins the window forever, and every honest nonce afterwards reads as too old.

At and above the height a nonce is refused when it exceeds the chain's last EVM block timestamp by more than 24 hours.

Two ways a working client trips this:

  • A clock more than a day fast. The nonce convention is unix milliseconds, so a machine whose clock runs ahead signs ahead. Fix the clock; nothing else helps, because every action it signs is refused.
  • A different time unit. A client signing MICROSECONDS or nanoseconds is a thousand or a million times above the ceiling and is refused on every action. Send milliseconds.

An account whose window was already pushed above the ceiling by a past action repairs itself: its next accepted action re-seeds the window rather than locking the account out. No support request is needed for that case.

Behaviour that CHANGES

SurfaceBefore 13,350,001Now
twap_order slicesA slice's synthesized price and size miss the market's grid, so no slice has ever filled. Every fill in the archive carries a null twapId.Slices snap to the grid and FILL. Fills begin to carry the parent's twapId.
A twap_order slice with no usable markPrices off the raw mark, ignoring the oracle-presence, staleness and band checks the rest of the engine applies.The slice PARKS: it does not fire and does not count against the schedule.
cancel_all_orders, and the dead-man schedule_cancelWalks the resting books only. A swept account keeps its TWAP schedule running and its parked auction orders live.The sweep also retires TWAP parents and parked auction orders.
A full position closeThe row survives with its margin_mode. A later CROSS re-open then settles against the stale isolated bucket.The flat row is pruned, so a re-open starts clean.
An EVM block whose declared gas exceeds the block limitEvery committed transaction executes, so one oversized payload stalls the round.The block admits the prefix that fits, defers the next transaction to a later block, and drops the rest. A transaction may take an extra block to execute.
Governance force_close_position, partialLeaves the full entry notional, open interest and isolated margin on the residual.Settles the residual.
The fee buybackOne fire spends the whole available balance.One fire spends one slice.

Votes that become castable

Four vote_global kinds ship in this release. A node below it does not know the names and answers a cast for one exactly the way it answers a name that never existed.

kind_nameWhat it sets
set_funding_ema_decayThe funding EMA decay. The fold keeps reading the compiled default until this height.
set_target_block_interval_msThe proposer's own pacing period. Needs no activation height of its own.
set_mtf_asset_idBinds the canonical MTF spot asset. Refused below this height, because one fire below it spends the whole accrued pool in a single buy.
set_buyback_slice_usdcThe per-fire buyback slice.

Read surface

Nothing on the public read surface changes. The chain records the drip state as buyback_status.drip_activefalse until 13,350,001, true after — but no read serves that record; see deleted reads.

What does NOT change

The spot lane for twap_order, scale_order and chase_order stays OFF. Those three still refuse a spot pair id at every height in this release.