rsk.zone An independent Rootstock reference

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.

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 and date read from the title page of each PDF
RevisionDatedAuthorPDF
919 November 2015Sergio Demian Lerneroriginal
1129 January 2019Sergio Demian Lernerupdated

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.

IACR ePrint 2022/684

What is missing here

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.

rsksmart/rskj — releases

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.

Named upgrades
12
Activated on mainnet
9
Current
Vetiver
rskj releases
66
9 upgrades activated on mainnet, dated by the timestamp of their activation block
UpgradeVersionActivation blockActivatedReleasedWhat it changed
Wasabi1.0.01,591,0001 Aug 20192019-07-18The Unitrie state structure; CREATE2, SHR, SHL; blockHeader and getBTCTransactionConfirmations precompiles.
Papyrus2.0.02,392,70027 May 20202020-05-04SegWit P2SH-P2WPKH peg-ins; ECADD, ECMUL and pairing precompiles; CHAINID, SELFBALANCE, EXTCODEHASH.
Iris3.0.03,614,80019 Aug 20212021-07-16BLAKE2 F precompile; peg-in to any address; Flyover; peg-out refunds; the time-locked emergency multisig (RSKIP201); reduced peg minimums.
Hop4.0.04,598,50031 Aug 20222022-08-03Peg-out batching (RSKIP271); getActivePowpegRedeemScript (RSKIP293); migration input limits.
Fingerroot5.0.05,468,00013 Jul 20232023-06-16Transaction gas price cap; peg-out events (RSKIP326); PowPeg activation age (RSKIP383); peg-out fee estimation.
Arrowhead6.0.06,223,7003 Apr 20242024-03-05PUSH0; cheaper calldata; BASEFEE; migration v2; pegnatory address derivation fix (RSKIP415).
Lovell7.0.07,338,02413 Mar 20252025-02-12Peg-out and migration improvements; experimental SnapSync arrived in the 7.1.0 point release.
Reed8.0.08,052,20030 Sep 20252025-09-02PowPeg raised to a maximum of 20 pegnatories; SegWit peg-outs (RSKIP305); secp256k1 precompiles (RSKIP516).
Vetiver9.0.08,804,2005 May 20262026-04-02New 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.

Named releases with no activation height in their notes
NameVersionReleasedWhat it changed
Ginger0.2.019 May 2017First public testnet client.
Bamboo0.3.04 Dec 2017DUPN, SWAPN, TXINDEX and REVERT opcodes. 0.4.0 was the first client to run on Mainnet Beta.
Orchid0.5.04 Sep 2018STATICCALL; EXTCODESIZE for native contracts; unlimited whitelisting for the two-way peg.
How to read these heights

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.

rsksmart/RSKIPs

A note on names

The same thing has had several names, which makes searching for its history harder than it should be:

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.