History of Rootstock
A Bitcoin sidechain with a Turing-complete virtual machine, specified in 2015 and running on mainnet since 2018. This page tracks what was built, when it activated, and where each claim comes from.
Release and activation data collected 8 Nov 2026 · how
Origins and the whitepaper
Rootstock began as RSK. The design was published as a whitepaper titled "RSK: Bitcoin Powered Smart Contracts — White Paper Overview", written by Sergio Demian Lerner. Two revisions are public, and they are quite far apart in time:
| Revision | Dated | Author | |
|---|---|---|---|
| 9 | 19 November 2015 | Sergio Demian Lerner | original |
| 11 | 29 January 2019 | Sergio Demian Lerner | updated |
Revision 9 already describes most of what Rootstock is: a Turing-complete VM, a sidechain secured by merged mining, a "dynamic hybrid merged mining/federation" model for the peg, and a long catalogue of intended uses. The 2019 revision carries the Rootstock Platform name on its cover.
The academic paper
The whitepaper is a design document, not a reviewable specification. For that there is a later paper, which is the closest thing to a formal account of how Rootstock actually works:
"RSK: A Bitcoin sidechain with stateful smart-contracts" — Sergio Demian Lerner, Javier Álvarez Cid-Fuentes, Julian Len, Ramsès Fernàndez-València, Patricio Gallardo, Nicolás Vescovo, Raúl Laprida, Shreemoy Mishra, Federico Jinich and Diego Masini. IACR Cryptology ePrint Archive, report 2022/684, 31 May 2022. PDF.
It covers the consensus rules, the virtual machine and the peg together, with the assumptions stated rather than implied. If you intend to argue with Rootstock's design, this is the document to argue with.
The dates and authorship above are taken from the title pages of the PDFs
themselves, not from a page describing them. Rootstock's own /about/ page
returns 404, and there is no Wikipedia article, so the usual secondary sources for
"who founded this and when" do not exist.
This page therefore does not list founders. Rootstock's homepage says
only 100% uptime since launching in 2018
; the corporate history (RSK Labs →
IOV Labs → Rootstock Labs) is visible in the renaming of repositories and copyright
lines but is not documented anywhere citable. A founding story assembled from secondary
accounts would not meet the standard applied everywhere else on this site, so the gap stands
open. A primary source would close it.
Testnet and mainnet launch
The public testnet was codenamed Ginger. Its first release,
GINGER-0.2.0, is dated
19 May 2017 and its notes say
simply "First Ginger release".
Mainnet followed with Bamboo. The release notes for
BAMBOO-0.4.0, dated
5 Jan 2018, state
that it is the first client version that runs on RSK Mainnet Beta, and it's configured
by default to run on this network
. That release is the closest thing to a dated
mainnet launch in the primary record — the notes do not name a launch event or give a
genesis date.
The chain itself agrees: the oldest federation on record covers block 0, and the first PowPeg handover lands in 16 Aug 2018.
The message in the genesis block
Rootstock's genesis block carries 73 bytes of
extraData, and they spell out a sentence:
Happy Bitcoin Day! 03/Jan/2018 - RSK technology at the service of society
It is a deliberate echo. Bitcoin's own genesis block embeds a newspaper headline —
The Times 03/Jan/2009 Chancellor on brink of second bailout for banks
— and
Rootstock answers it nine years to the day. "Bitcoin Day" is 3 January, the anniversary of
that block.
Two details are worth stating precisely, because the date in the message is not the
date of the block. Rootstock's genesis is timestamped
2 Jan 2018 03:00 UTC; the 03/Jan it salutes is Bitcoin's anniversary, not
its own birthday. And where Bitcoin's message was chosen to prove the block could not have
been made earlier, Rootstock's proves nothing — a genesis block's extraData is
simply written into the client, so this is a dedication rather than a timestamp.
You can read it off the chain yourself, or out of the client that defines it:
curl -s -X POST -H 'Content-Type: application/json' --data '{"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x0",false]}' http://127.0.0.1:4444 | jq -r .result.extraData | xxd -r -p
The same bytes are in rskj's rsk-mainnet.json, which is where they come from.
Every network upgrade
Rootstock changes consensus through named upgrades, each shipped as a major rskj release that activates at a fixed block height. The heights below are extracted from the release notes; the dates are the timestamps of those blocks on mainnet, read from a node — which is a different thing from the release date, usually by several weeks.
| Upgrade | Version | Activation block | Activated | Released | What it changed |
|---|---|---|---|---|---|
| Wasabi | 1.0.0 | 1,591,000 | 1 Aug 2019 | 2019-07-18 | The Unitrie state structure; CREATE2, SHR, SHL; blockHeader and getBTCTransactionConfirmations precompiles. |
| Papyrus | 2.0.0 | 2,392,700 | 27 May 2020 | 2020-05-04 | SegWit P2SH-P2WPKH peg-ins; ECADD, ECMUL and pairing precompiles; CHAINID, SELFBALANCE, EXTCODEHASH. |
| Iris | 3.0.0 | 3,614,800 | 19 Aug 2021 | 2021-07-16 | BLAKE2 F precompile; peg-in to any address; Flyover; peg-out refunds; the time-locked emergency multisig (RSKIP201); reduced peg minimums. |
| Hop | 4.0.0 | 4,598,500 | 31 Aug 2022 | 2022-08-03 | Peg-out batching (RSKIP271); getActivePowpegRedeemScript (RSKIP293); migration input limits. |
| Fingerroot | 5.0.0 | 5,468,000 | 13 Jul 2023 | 2023-06-16 | Transaction gas price cap; peg-out events (RSKIP326); PowPeg activation age (RSKIP383); peg-out fee estimation. |
| Arrowhead | 6.0.0 | 6,223,700 | 3 Apr 2024 | 2024-03-05 | PUSH0; cheaper calldata; BASEFEE; migration v2; pegnatory address derivation fix (RSKIP415). |
| Lovell | 7.0.0 | 7,338,024 | 13 Mar 2025 | 2025-02-12 | Peg-out and migration improvements; experimental SnapSync arrived in the 7.1.0 point release. |
| Reed | 8.0.0 | 8,052,200 | 30 Sep 2025 | 2025-09-02 | PowPeg raised to a maximum of 20 pegnatories; SegWit peg-outs (RSKIP305); secp256k1 precompiles (RSKIP516). |
| Vetiver | 9.0.0 | 8,804,200 | 5 May 2026 | 2026-04-02 | New BlockHeader precompile methods (RSKIP536); contract code starting 0xEF rejected; Blake2F input validation; tighter RPC defaults. |
Earlier releases without a recorded activation height
The earliest named releases predate the convention of printing an activation height in the notes, so no height can be extracted for them. They are listed separately rather than shown with a blank column.
| Name | Version | Released | What it changed |
|---|---|---|---|
| Ginger | 0.2.0 | 19 May 2017 | First public testnet client. |
| Bamboo | 0.3.0 | 4 Dec 2017 | DUPN, SWAPN, TXINDEX and REVERT opcodes. 0.4.0 was the first client to run on Mainnet Beta. |
| Orchid | 0.5.0 | 4 Sep 2018 | STATICCALL; EXTCODESIZE for native contracts; unlimited whitelisting for the two-way peg. |
Activation heights are parsed from the release notes, and the notes
are not consistent about it. Some print a table with "Mainnet" and "Testnet" rows; others
say only the network upgrade will happen at block number N
without naming the
network. Where the note was ambiguous, the collector records the sentence it matched so the
figure can be checked. The dates, by contrast, are not parsed from anything — they are the
timestamps of those blocks, read from the chain.
Each of these upgrades is itself an RSKIP, which is where its activation heights and its list of included proposals are recorded. Activations by release joins the two, and dates Orchid — whose height appears in RSKIP99 but in no release note, so it cannot be dated from this page alone.
One discrepancy: rootstock.io's roadmap says Vetiver activated on 4 May 2026. Block 8,804,200 carries a timestamp of 5 May 2026 04:41 UTC. The difference is a few hours either side of midnight UTC.
How changes get decided
Consensus changes are specified as RSKIPs — RSK Improvement Proposals — in rsksmart/RSKIPs. The RSKIPs section of this site lists every one that has actually activated, with the network, block and release that did it. Each carries a status (Draft, Active, Accepted, Adopted, Deferred, Rejected, Withdrawn, Superseded) and some are marked Adopted (Testnet) where they are live on testnet only.
Every network upgrade has its own RSKIP, titled Network Upgrade: <name>
,
which lists the RSKIPs it ships. Patch upgrades use Network Upgrade (patch): …
.
The process itself is defined in RSKIP0, RSKIP Purpose and Guidelines
.
Reading the RSKIP index is the fastest way to find out what a given upgrade actually did — far faster than the release notes, which mix consensus changes with packaging and RPC detail. The index also records when each proposal was created, which sometimes pre-dates its activation by years.
A note on names
The same thing has had several names, which makes searching for its history harder than it should be:
- RSK is the original name and still the one in the code: the client is
rskj, the GitHub organisation isrsksmart, the proposals are RSKIPs, the chain ID is 30 and the currency is RBTC. - Rootstock is the current public name. Documentation moved from
developers.rsk.cotodev.rootstock.io, and older release notes still link the former. - RSK Labs, then IOV Labs, then
Rootstock Labs is the trail of the company behind it. RSKIP201, written
in 2021, lists
IOVlabs
as an emergency multisig signatory; rootstock.io lists the same seat today asRootstockLabs
.
Upgrade names are alphabetical by first letter, in order of activation: Bamboo, Orchid, Wasabi, Papyrus, Iris, Hop, Fingerroot, Arrowhead, Lovell, Reed, Vetiver — and Cardamom announced next. They are all plants.