rsk.zone An independent Rootstock reference

RSKIPs

Rootstock changes its consensus rules through RSKIPs — Rootstock Improvement Proposals. This page lists the 94 that have actually activated, which network each activated on, at which block, and in which client release. The other 110 are not listed here on purpose.

What an RSKIP is

An RSKIP is the unit in which a change to Rootstock gets specified, argued over and adopted. The process is itself an RSKIP — RSKIP0, RSKIP Purpose and Guidelines, dated May 2018 — and it works much like Bitcoin's BIPs or Ethereum's EIPs: anyone may propose one, it carries a number for life, and it moves through a status as it is accepted or declined.

What makes the Rootstock version unusually easy to follow is that upgrades are themselves RSKIPs. Each network upgrade has a "Network Upgrade: <name>" proposal that names its codename, states its activation block on mainnet and on testnet, and lists exactly which other RSKIPs it ships. That one document is the authoritative link between "this rule changed" and "it changed at this height" — and it is what this page is built from.

A proposal's status is the quickest way to read its standing:

Status values used by the RSKIP index
StatusMeaning
AdoptedActivated on mainnet. These are consensus rules in force today.
Adopted (Testnet)Activated on testnet only, usually as a staged rollout before mainnet.
AcceptedApproved for a future upgrade but not yet activated.
DraftProposed and under discussion. Most RSKIPs are here.
DeferredSet aside; may return.
RejectedConsidered and declined.
WithdrawnPulled by its author.
SupersededReplaced by a later proposal.

Where to find them

All of them live in one repository:

The index currently lists 232 proposals. Note that the index gives a status but not an activation height — for that you have to open the network-upgrade RSKIP that shipped it, which is the join this page does for you.

rsksmart/RSKIPs — index

What is not here

Proposals that have not activated are deliberately not listed on this page. 110 of the 232 RSKIPs in the index are Draft, Accepted, Deferred, Rejected, Withdrawn or Superseded. Their status changes as discussion moves, and a copy here would be wrong within weeks. Read them at the source, where they are current: the RSKIP repository.

Activations by release

Activated RSKIPs
94
of 232 in the index
On both networks
87
mainnet and testnet
Testnet only
5
staged rollouts
Consensus releases
12
including patches

Every release that changed consensus, in mainnet order. "Shipped" counts the proposals the release activated, not counting the upgrade's own RSKIP. Dates are the timestamp of the mainnet activation block, read from a node — not the release date, which is typically weeks earlier.

12 consensus releases, in mainnet activation order
UpgradeReleaseUpgrade RSKIPMainnet blockActivatedTestnet blockShipped
Orchid0.5.0RSKIP99729,0008 Sep 2018802,00011
Papyrus2.0.0RSKIP1412,392,70027 May 2020863,0008
Iris3.0.0RSKIP1873,614,80019 Aug 20212,060,50018
Hop4.0.0RSKIP2914,598,50031 Aug 20223,103,0006
Hop patch4.0.1RSKIP3584,976,30017 Jan 20233,362,2002
Fingerroot5.0.0RSKIP3885,468,00013 Jul 20234,015,8007
Arrowhead6.0.0RSKIP4146,223,7003 Apr 20244,927,1008
Arrowhead patch6.3.1RSKIP4366,549,30024 Jul 2024—1
Lovell7.0.0RSKIP4357,338,02413 Mar 20256,110,48710
Reed8.0.0RSKIP5188,052,20030 Sep 20256,835,7002
Vetiver9.0.0RSKIP5538,804,2005 May 20267,604,2006
Reed8.1.0RSKIP518—testnet only7,139,6005

Three features of that table deserve attention.

Every activated RSKIP

Grouped by the release that activated it, newest first. Rows marked upgrade are the network-upgrade proposals themselves.

Reed 8.1.0

Activated on testnet only, at block 7,139,600. Specified by RSKIP518, released as rskj Reed 8.1.0. Shipped in two releases: 8.0.0 activated on both networks, 8.1.0 on testnet only.

5 RSKIPs activated in Reed 8.1.0
RSKIPTitleNetworkStatusSource
144Parallel Transaction Execution for UnitrietestnetAdopted (Testnet)release notes
351Miniheader - block header compressiontestnetAdopted (Testnet)release notes
502PowPeg and Union Bridge integrationtestnetAdopted (Testnet)release notes
529New storage cells in Bridge native contract for base and super events infotestnetAdopted (Testnet)release notes
536Additional methods for BlockHeader precompiled contracttestnetAdoptedrelease notes

Vetiver 9.0.0

Activated on mainnet at block 8,804,200 on 5 May 2026, and on testnet at block 7,604,200. Specified by RSKIP553, released as rskj Vetiver 9.0.0.

7 RSKIPs activated in Vetiver 9.0.0
RSKIPTitleNetworkStatusSource
535Add the `baseEvent` field to the Block header extensiontestnetAdopted (Testnet)RSKIP
536Additional methods for BlockHeader precompiled contractmainnetAdoptedRSKIP
540Bridge method `getEstimatedFeesForNextPegOutEvent` improvements and new parameterized methodtestnet mainnetAdoptedRSKIP
544Reject new contract code starting with the `0xEF` bytetestnet mainnetAdoptedRSKIP
551Deprecate RSKIP459testnet mainnetAdoptedRSKIP
552Improve Blake2F Input Validationtestnet mainnetAdoptedRSKIP
553Network Upgrade: Vetiver upgradetestnet mainnetAdoptedRSKIP

Reed 8.0.0

Activated on mainnet at block 8,052,200 on 30 Sep 2025, and on testnet at block 6,835,700. Specified by RSKIP518, released as rskj Reed 8.0.0. Shipped in two releases: 8.0.0 activated on both networks, 8.1.0 on testnet only.

3 RSKIPs activated in Reed 8.0.0
RSKIPTitleNetworkStatusSource
305Peg-out efficiency improvement (Segwit)testnet mainnetAdoptedRSKIP
516Precompiled contracts for +/* on Secp256k1testnet mainnetAdoptedRSKIP
518Network Upgrade: Reed upgradetestnet mainnetAdoptedRSKIP

Lovell 7.0.0

Activated on mainnet at block 7,338,024 on 13 Mar 2025, and on testnet at block 6,110,487. Specified by RSKIP435, released as rskj Lovell 7.0.0.

11 RSKIPs activated in Lovell 7.0.0
RSKIPTitleNetworkStatusSource
419Powpeg Spendability Validation Protocoltestnet mainnetAdoptedRSKIP
427Express the amount value in wei for peg-out related eventstestnet mainnetAdoptedRSKIP
428New pegout creation event including UTXO outpoint valuestestnet mainnetAdoptedRSKIP
435Network Upgrade: Lovell upgradetestnet mainnetAdoptedRSKIP
438Limit the maximum size of initcode and apply extra gas cost for every 32-byte chunk of initcodetestnet mainnetAdoptedRSKIP
445MCOPY instructiontestnet mainnetAdoptedRSKIP
446Transient storage opcodes (TLOAD/TSTORE)testnet mainnetAdoptedRSKIP
453Prevent address creation on failed CREATE/CREATE2 operationstestnet mainnetAdoptedRSKIP
454Support bitcoin blocks with chain work up to 32 unsigned bytestestnet mainnetAdoptedRSKIP
459Mark rejected peg-ins as processedtestnet mainnetAdoptedRSKIP
460Ignore non-standard outputs when searching for the witness commitment hashtestnet mainnetAdoptedRSKIP

Arrowhead 6.3.1 patch

Activated on mainnet at block 6,549,300 on 24 Jul 2024, and never on testnet. Specified by RSKIP436, released as rskj Arrowhead 6.3.1. A patch upgrade (RSKIP436) remediating the PowPeg service outage of June 2024. Mainnet only.

2 RSKIPs activated in Arrowhead 6.3.1
RSKIPTitleNetworkStatusSource
434Bridge Bitcoin block chainwork up to 12 unsigned bytesmainnetAdoptedRSKIP
436Network Upgrade (patch): Arrowhead 6.3.1 upgrademainnetAdoptedRSKIP

Arrowhead 6.0.0

Activated on mainnet at block 6,223,700 on 3 Apr 2024, and on testnet at block 4,927,100. Specified by RSKIP414, released as rskj Arrowhead 6.0.0.

9 RSKIPs activated in Arrowhead 6.0.0
RSKIPTitleNetworkStatusSource
203getCallStackDepth Precompile methodtestnet mainnetAdoptedRSKIP
376Set version 2 to PowPeg migration transactionstestnet mainnetAdoptedRSKIP
379Bridge peg-out and migration transactions indextestnet mainnetAdoptedRSKIP
398PUSH0 instructiontestnet mainnetAdoptedRSKIP
400Calldata gas cost reductiontestnet mainnetAdoptedRSKIP
412BASEFEE instructiontestnet mainnetAdoptedRSKIP
414Network Upgrade: Arrowhead upgradetestnet mainnetAdoptedRSKIP
415Fix pegnatories address derivation from public keystestnet mainnetAdoptedRSKIP
417Avoid transactions to be reverted when Bridge method calls from smart contracts return an empty responsetestnet mainnetAdoptedRSKIP

Fingerroot 5.0.0

Activated on mainnet at block 5,468,000 on 13 Jul 2023, and on testnet at block 4,015,800. Specified by RSKIP388, released as rskj Fingerroot 5.0.0.

8 RSKIPs activated in Fingerroot 5.0.0
RSKIPTitleNetworkStatusSource
252Transaction Gas Price Captestnet mainnetAdoptedRSKIP
326Pegout events improvementstestnet mainnetAdoptedRSKIP
374Reestablish the number of block confirmations for a PowPeg migration periodtestnet mainnetAdoptedRSKIP
375Use the pegout creation transaction hash as the key in the map structure that stores the pegout transactions waiting for signaturestestnet mainnetAdoptedRSKIP
377Store the last retired federation **standard** P2SH scripttestnet mainnetAdoptedRSKIP
383Increase POWpeg activation agetestnet mainnetAdoptedRSKIP
385Bridge method `getEstimatedFeesForNextPegOutEvent` improvementtestnet mainnetAdoptedRSKIP
388Network Upgrade: Fingerroot upgradetestnet mainnetAdoptedRSKIP

Hop 4.0.1 patch

Activated on mainnet at block 4,976,300 on 17 Jan 2023, and on testnet at block 3,362,200. Specified by RSKIP358, released as rskj Hop 4.0.1. A patch upgrade (RSKIP358) remediating the peg-out service outage of 2022.

3 RSKIPs activated in Hop 4.0.1
RSKIPTitleNetworkStatusSource
353Align RSK P2SH redeem script with Bitcoin Core standard transactions checkstestnet mainnetAdoptedRSKIP
357Adjust the number of block confirmations for a PowPeg migration periodtestnet mainnetAdoptedRSKIP
358Network Upgrade (patch): Hop 4.0.1 upgradetestnet mainnetAdoptedRSKIP

Hop 4.0.0

Activated on mainnet at block 4,598,500 on 31 Aug 2022, and on testnet at block 3,103,000. Specified by RSKIP291, released as rskj Hop 4.0.0.

7 RSKIPs activated in Hop 4.0.0
RSKIPTitleNetworkStatusSource
271Bridge peg-out Batchingtestnet mainnetAdoptedRSKIP
284New deserialization method for Flyover refund addressestestnet mainnetAdoptedRSKIP
290Adjust Testnet block minimum difficultytestnet mainnetAdoptedRSKIP
291Network Upgrade: Hop upgradetestnet mainnetAdoptedRSKIP
293Add method `getActivePowpegRedeemScript` to the Bridge contract and perform additional Flyover peg-in validationstestnet mainnetAdoptedRSKIP
294Limit the number of inputs to include in a migration transactiontestnet mainnetAdoptedRSKIP
297Increase max timestamp difference between btc and rsk blocks for Testnettestnet mainnetAdoptedRSKIP

Iris 3.0.0

Activated on mainnet at block 3,614,800 on 19 Aug 2021, and on testnet at block 2,060,500. Specified by RSKIP187, released as rskj Iris 3.0.0.

19 RSKIPs activated in Iris 3.0.0
RSKIPTitleNetworkStatusSource
153Add BLAKE2 Compression Function `F` Precompiletestnet mainnetAdoptedRSKIP
169Rectify EXTCODEHASH implementationtestnet mainnetAdoptedRSKIP
170Peg-in to any addresstestnet mainnetAdoptedRSKIP
171Clean EVM Internal Buffer in Call-like Opcodestestnet mainnetAdoptedRSKIP
174Preserve balance in contract creationtestnet mainnetAdoptedRSKIP
176Programmable Peg-in Addresses for faster peg-instestnet mainnetAdoptedRSKIP
179BTC-RSK timestamp linkingtestnet mainnetAdoptedRSKIP
181Peg-in rejection eventstestnet mainnetAdoptedRSKIP
185Peg-out refund and eventstestnet mainnetAdoptedRSKIP
186Active Federation creation block height registrationtestnet mainnetAdoptedRSKIP
187Network Upgrade: Iris upgradetestnet mainnetAdoptedRSKIP
191Remove opcodes incompatible with Ethereumtestnet mainnetAdoptedRSKIP
197Fix Precompile Calls Not Conforming With CALL Semanticstestnet mainnetAdoptedRSKIP
199registerBtcTransaction Is Publictestnet mainnetAdoptedRSKIP
200Receive headers limitstestnet mainnetAdoptedRSKIP
201Time-locked Emergency Multisignaturetestnet mainnetAdoptedRSKIP
218New Fee Rewards Address for the RSK Core Developers Fundtestnet mainnetAdoptedRSKIP
219New minimum values for peg-in and peg-outstestnet mainnetAdoptedRSKIP
220Obtain Bitcoin Block information from bridge methodstestnet mainnetAdoptedRSKIP

Papyrus 2.0.0

Activated on mainnet at block 2,392,700 on 27 May 2020, and on testnet at block 863,000. Specified by RSKIP141, released as rskj Papyrus 2.0.0.

9 RSKIPs activated in Papyrus 2.0.0
RSKIPTitleNetworkStatusSource
134Locking captestnet mainnetDraftRSKIP
137ECADD, ECMUL and PairingCheck precompiled contracts no documenttestnet mainnet—RSKIP
140EXTCODEHASH opcodetestnet mainnetAdoptedRSKIP
141Network Upgrade: Papyrus upgradetestnet mainnetAdoptedRSKIP
1432WP segwit compatibility(P2SH-P2WPKH) no documenttestnet mainnet—RSKIP
146Encode bridge events in Solidity formattestnet mainnetAdoptedRSKIP
151SELFBALANCE opcode no documenttestnet mainnet—RSKIP
152CHAINID Opcodetestnet mainnetAdoptedRSKIP
156Reduce difficulty adjustement coefficient between blocks no documenttestnet mainnet—RSKIP

Orchid 0.5.0

Activated on mainnet at block 729,000 on 8 Sep 2018, and on testnet at block 802,000. Specified by RSKIP99, released as rskj Orchid 0.5.0.

12 RSKIPs activated in Orchid 0.5.0
RSKIPTitleNetworkStatusSource
85Improvements to REMASC contractmainnet testnetAdoptedRSKIP
87Whitelisting unlimited modemainnet testnetAdoptedRSKIP
88Bridge methods local calls restrictions no documentmainnet testnet—RSKIP
89Add Bitcoin block query methods to the bridge contractmainnet testnetAdoptedRSKIP
90EXTCODESIZE support for native contracts no documentmainnet testnet—RSKIP
91STATIC_CALL opcodemainnet testnetAdoptedRSKIP
92Merkle Proof serializationmainnet testnetAdoptedRSKIP
93Deprecated native contract no documentmainnet testnet—RSKIP
94Disable code replace no documentmainnet testnet—RSKIP
97Remove difficulty drop no documentmainnet testnet—RSKIP
98Deactivation of the federated fallback system for block productionmainnet testnetAdoptedRSKIP
99Orchid Network Upgrade upgrademainnet testnetAdoptedRSKIP

Adopted, but no release on record

A further 28 RSKIPs are marked Adopted in the index — meaning they are in force — but no network-upgrade RSKIP claims them, so there is nothing to say which release activated them. They are listed here rather than omitted, because leaving them out would imply that REMASC, the Bridge and CREATE2 are not part of Rootstock.

Almost all of them date from before the convention of writing an upgrade RSKIP took hold: the 2016–2018 proposals went into Bamboo and Orchid, and the 2019 batch — RSKIP120 (shifting opcodes), RSKIP125 (CREATE2), RSKIP119 (the block-header precompile) — matches what the Wasabi release notes describe in prose. That is corroboration, not proof, so they are left unassigned.

28 RSKIPs in force whose activating release is not recorded
RSKIPTitleCreatedLayerStatus
0RSKIP Purpose and Guidelines07-MAY-18—Adopted
6Block Size Limit22-JUN-16CoreAdopted
9Negotiated Minimum Gas Price21-OCT-16CoreAdopted
11TXINDEX Opcode07-AUG-16CoreAdopted
15Simplified Reward Manager Smart Contract (REMASC)14-NOV-16CoreAdopted
26DUPN and SWAPN opcodes27-DIC-16CoreAdopted
33CODEREPLACE opcode17-JAN-17CoreAdopted
40Basic Bridge for two-way-peg to Bitcoin25-APR-17CoreAdopted
42Remove world midstates from receipts22-JUN-17CoreAdopted
46Block Mining Fees Information Mechanism04-OCT-17NodeAdopted
50Script Versions using HEADER pesuo-opcode07-DIC-17CoreAdopted
51Memory-Mapped configuration register10-DIC-17CoreAdopted
57Derivation Path for Hierarchical Deterministic Wallets05-ABR-18NetAdopted
60Checksum Address Encoding25-JUN-18NetAdopted
106Precompiled contract for HDWallet utility functions2019CoreAdopted
119Precompiled contract for inspecting block headers2019CoreAdopted
120Shifting opcodes2019CoreAdopted
123Multikey federation members2019CoreAdopted
125Create22019CoreAdopted
131Preventing CREATE2-after-SUICIDE in the same block2019CoreAdopted
132Bridge ReceiveHeaders Gas Cost increase2019CoreAdopted
148ERC1820 Pseudo-introspection Registry Contract6-NOV-19DAppAdopted
157Cumulative Difficulty in JSON-RPC block responses11-FEB-20NodeAdopted
159Minimal Proxy Contract19-FEB-20DAppAdopted
177Universal Merged Mining ExtensionAPR-2020NodeAdopted
180Limit the RSK merged mining merkle proof size15-JUL-21CoreAdopted
225Emergency Multisig public keys1-APR-21CoreAdopted
712RSK typed structured data hashing and signing02-NOV-2020UIAdopted

RSKIP0 appears in this table because it is Adopted, but it defines the proposal process rather than a consensus rule — there was never a block at which it "activated". It is the one row here that is not a protocol change.

Nine proposals that shipped but were never written up

9 of the RSKIPs above have no document in the repository and no row in the index. They exist only as line items inside the upgrade that activated them — Orchid and Papyrus each name a handful of proposals by number and title that were never filed.

They are consensus rules in force today. Someone wanting to know exactly what RSKIP143 did to peg-in handling has only its one-line title, the rskj source, and the chain itself.

9 activated proposals with no specification document
RSKIPTitle, as the upgrade names itShipped in
88Bridge methods local calls restrictionsOrchid
90EXTCODESIZE support for native contractsOrchid
93Deprecated native contractOrchid
94Disable code replaceOrchid
97Remove difficulty dropOrchid
137ECADD, ECMUL and PairingCheck precompiled contractsPapyrus
1432WP segwit compatibility(P2SH-P2WPKH)Papyrus
151SELFBALANCE opcodePapyrus
156Reduce difficulty adjustement coefficient between blocksPapyrus
Why these nine are not links

The numbers above are not links because there is nothing to link to. A proposal's filename cannot be derived from its number in any case: low numbers are zero-padded (RSKIP06.md, not RSKIP6.md), and these nine have no file under any spelling. The collector reads the repository's own file list and links only what exists, rather than constructing a URL and hoping.

How this table is built

By a script, re-run weekly, that reads the RSKIP repository rather than copying from it by hand. It:

  1. parses the index table for every proposal's number, title, author, date and status;
  2. finds the 12 network-upgrade RSKIPs and fetches each one;
  3. parses each for its codename, its mainnet and testnet activation heights, and its "Included RSKIPs" list — keeping the (Testnet-only) and (Mainnet-only) tags, which are what make a proposal's two activations on two networks distinguishable;
  4. dates every mainnet height against a Rootstock node;
  5. drops everything that never activated.

Five different document formats have to be read, because the convention changed as it went — RSKIP99 writes Mainnet activation block number: and links [RSKIP 85](RSKIP85.md); RSKIP141 writes RSK Mainnet block: and plain RSKIP134:; RSKIP518 nests heights under a per-release heading. Parsing only the newest shape would silently lose the first decade.

What the repository does not record, and how that is handled

Some activations are simply not in the RSKIP documents. 5 on this page come from a hand-maintained file, data/rskip-overlay.json, which the collector reads and never writes — so re-running it preserves everything entered by hand. Every entry in that file must carry a source URL or the collector refuses to publish it.

Those 5 are marked release notes in the tables above. They are the Reed 8.1.0 set: RSKIP518 lists only the 8.0.0 payload under "Included RSKIPs", so the five proposals that activated on testnet in the second release are knowable only from the REED-8.1.0 release notes.

The overlay cannot drift

Hand-entered data is cross-checked, not trusted. Where the upgrade RSKIP does state a height for a release and network, the collector compares it against the hand-entered one and fails the run if they disagree, rather than publishing either. The overlay can add facts the documents lack; it cannot quietly contradict them.

What is missing

Two upgrades ship no RSKIPs on this page, because no primary source says which they were:

Upgrades whose RSKIP payload is not recorded anywhere
MissingWhy
Which RSKIPs shipped in WasabiWasabi has no network-upgrade RSKIP — the first one is RSKIP99 for Orchid, and the convention of writing one per upgrade only becomes consistent from Papyrus (RSKIP141) onward. The WASABI-1.0.0 release notes describe the consensus changes in prose and cite no RSKIP numbers. Nothing in this file fills that in, because no primary source was found that states it.
Which RSKIPs shipped in Bamboo and GingerBoth predate the RSKIP process being used to scope upgrades (RSKIP0, which defines the process, is dated 07-MAY-18; Bamboo 0.3.0 was released 04-DEC-17). Their release notes cite no RSKIP numbers and the index contains no entry for either codename.

Both predate the convention. RSKIP0, which defines the process, is dated May 2018; Bamboo shipped in December 2017, and Wasabi's release notes describe its consensus changes in prose without citing a single RSKIP number. The first upgrade with its own proposal is Orchid.

rsksmart/RSKIPs

rsksmart/rskj — releases