On 10 August 2026, YouTube announced its next round of Partner Program changes. From 1 February 2027, creators will need “10 million qualified Shorts views over the last 90 days” to share in ads and subscription revenue on Shorts. A year earlier, Patreon moved new creators to a “standard 10% platform fee” for pages launched after 4 August 2025.
Platforms set the terms, and platforms revise them. Goldman Sachs counted about 50 million creators and projected the market could reach “$480 billion by 2027 from $250 billion today” (a 2023 estimate). At that scale, who writes the split matters.
Revolution starts from the opposite premise. The split rules are published, and a contract enforces them. V2 rebuilds that contract. Here is what changed and why.
The problem: what Libertas (V1 network) taught us
Libertas (V1 network) ran the original staking design on an EraVM testnet. Three problems showed up.
Emission followed batches, not time. The curve assumed one batch every 40 seconds. Libertas (V1 network) averaged 108 seconds per batch. It emitted about 20.8M REVO where the curve intended about 53.0M over the same period. Batch frequency depends on traffic and operator settings, so supply drifted with it.
This is a known failure mode. In 2019, a Cosmos SDK issue noted that “The block provision depends on blocks_per_year parameter of genesis file, which is difficult to be determined at the start of network”. The SDK’s mint module still computes provisions as “AnnualProvisions/ params.BlocksPerYear”. Any emission defined per block inherits the block clock’s drift.
Rewards were pushed inside block production. One winning node per batch received the payout, and distribution ran inside block production. That does not scale to 250 nodes and 50,000 creators. It also couples chain liveness to reward accounting.
The split in code differed from the split on paper. The published whitepaper exempts node and creator self-stake from fees. Libertas (V1 network) paid per an Amplify technical draft that applies fees to full amounts. Holders were told the published rule.
How it works
Emission by the second
V2 keeps the curve and the total. The change is the clock.
| Per batch (V1) | Per second (V2) | |
|---|---|---|
| Emission rate | Depends on how often batches close | Fixed by the curve |
| Libertas (V1 network) result | 108 s average per batch: about 20.8M REVO emitted versus about 53.0M intended | Would have matched the curve |
| Effect of tuning batch size for cost | Changes token supply | None |
| Predictability for holders | Low | High |
The curve is 40 eras of 90 days, 250,000,000.000229 REVO in total. Each era’s per-second figure equals the Libertas (V1 network) on-chain per-batch value divided by 40, exactly. RevoEmissionTable.sol is generated from the live Libertas (V1 network) contract. These are network-wide emission figures. They are not a rate that any staker receives.
ZKsync OS produces blocks only when transactions exist, so staking reads block.timestamp, not block.number.
Claims instead of pushes
V2 accrues rewards through three indexes: one per unit of node weight (global), one per unit of delegation (per node), and one per fan share (per pool). Nothing is pushed during block production. Every settle step costs the same whether a node has 2 creators or 200.
Batog, Boca, and Johnson described a cumulative reward-per-token sum that “scales to any number of registered stakeholders”. V2 applies it at three levels.
Claims are pull-based and can be driven three ways:
| Driver | How |
|---|---|
| Smart contract | Any account calls claim, claimCreator, claimNode, or the ...For variants that pay the owner, not the caller. Claims are cornerstone calls, so the Cornerstone Paymaster covers the gas. |
| Timer | A keeper settles, releases the Cornerstone Budget, jails stale nodes, runs auto-claims, and compounds for fans who approved it. |
| Agent or app | A REST API exposes emission, nodes, pools, positions, and claim, compound, and settle endpoints. An Agens (agent) with a session key can call the contract directly. |
Two-level topology
| Role | Does | Receives |
|---|---|---|
| Verifying node | Stakes at least the minimum, runs a verifying external node, sends heartbeats from its verifier key, sets a node fee | All rewards on its own stake, plus its node fee on delegated rewards, plus settlement fees |
| Creator | Stakes its own REVO into a Creator Pool delegated to one node, sets a creator fee | All rewards on its own stake, plus its creator fee on fans’ rewards |
| Fan | Stakes REVO into a creator’s pool | A pro-rata share of the fans’ portion, net of the creator fee |
Topology is capped at two levels: fans to creator pools, creators to one node. An address holds one role. Self-staking and creator-to-creator delegation are refused. Caps are 250 node registrations and 200 creators per node. A full node can admit a larger creator by evicting its smallest. Evicted creators and their fans keep principal and accrued rewards.
The published split, enforced exactly
For node n with self-stake S, delegated stake D, and weight W = S + D:
- Node n receives a share R of each emission in proportion to W over all active nodes.
- The node keeps
R × S / Wwith no fee. - On delegated rewards
R × D / W, the node takes its fee c: 20% minimum, 50% maximum, 20% default. - The rest goes to pools in proportion to each pool’s stake d = s + f.
- From its pool share P, the creator keeps
P × s / dwith no fee. - On the fans’ portion
P × f / d, the creator takes its fee k: 0% to 100%. - Fans share the rest in proportion to their stake.
- Rounding remainders go to the node and the creator. Index dust stays reserved in the contract. Nothing is created.
Illustrative example. Mechanics only. The numbers below are abstract units from the whitepaper’s worked example, checked by a unit test. They show how the split rules route one emission share. They are not a forecast of any amount anyone will receive.
Setup: one node with self-stake 100 and fee 20%. Creator C1 with own stake 30, fee 10%, and fans F1 (40) and F2 (30). Creator C2 with own stake 100, fee 0%, no fans. W = 300. R = 1,000 units.
| Step | Units |
|---|---|
| Node self-stake share: 1,000 × 100/300 | 333.333 |
| Delegated share: 1,000 × 200/300 | 666.667 |
| Node fee: 20% of 666.667 | 133.333 |
| Node total | 466.667 |
| To pools: 533.333, split 100:100 | C1 266.667, C2 266.667 |
| C1 own stake: 266.667 × 30/100 | 80.000 |
| C1 fans’ portion | 186.667 |
| C1 fee: 10% of 186.667 | 18.667 |
| C1 total | 98.667 |
| C2 total (no fans) | 266.667 |
| F1: 168 × 40/70 | 96.000 |
| F2: 168 × 30/70 | 72.000 |
| Sum | 1,000.000 |
Verifying nodes: heartbeats and jailing
A verifying node replays every block and co-signs batches before commit under ZKsync OS batch verification. The staking contract links economics to that role.
- Register with
registerNode(verifier, feeBps)and at leastminNodeStake(100,000 REVO proposed for mainnet). The node is Pending. - Approve. Governance approves once the verifier address is an accepted batch signer. The node becomes Active.
- Heartbeat. Only the registered verifier key can call
heartbeat(node). - Jail. If no heartbeat arrives within
livenessWindow(1 hour proposed), anyone can jail the node. A jailed node receives nothing. Its creators can redelegate. - Exit.
beginNodeExit()starts unbonding (7 days proposed).
Jailing stops rewards. It does not slash stake. That is open item E5.
Four invariants
Stateful fuzzing checks four invariants on every build:
| Invariant | Meaning |
|---|---|
| Solvent | Contract balance ≥ principal + liabilities |
| Claimable covered | Everything claimable is backed |
| Paid within emitted and fees | Total paid never exceeds total emitted plus fees received |
| Cornerstone conserved | Budget set aside = budget released + budget accrued |
The reward pot is funded explicitly. If it runs short, allocation is capped at what it holds. The owner can never withdraw owed rewards.
What V2 has built, and what it has not
Built and tested on the devnet: RevoStaking with the published split, per-second emissions, index-based claims, node heartbeats and jailing, settlement fee routing to node operators, the Cornerstone Budget, a keeper, an API, and a node agent. 51 contract tests pass, including the four stateful invariants.
Not yet done: an independent audit of RevoStaking and EmissionSchedule (A7), slashing conditions (E5), and automated removal of jailed nodes from the signer set (C3). Virtus (V2 testnet) is not live. No one stakes on V2 today.
The regulatory backdrop
U.S. regulators have spoken on staking. On 29 May 2025, SEC staff stated its view that Protocol Staking Activities in connection with Protocol Staking “do not involve the offer and sale of securities”. The statement notes it “is not a rule, regulation, guidance, or statement of the U.S. Securities and Exchange Commission.” On 5 August 2025, SEC staff addressed liquid staking. On 17 March 2026, the SEC issued an interpretation, joined by the CFTC, that covers protocol staking. Sullivan & Cromwell summarizes it as treating validation activity, including “solo, self-custodial, custodial, and liquid staking arrangements”, as generally not involving the offer or sale of securities.
In the EU, ESMA states that “MiCA does not contain provisions specific to staking”. Providers that stake for clients fall under MiCA custody rules and need explicit client consent.
Revolution’s fan staking has its own structure: fans stake to creators who take a fee. The whitepaper flags fan staking and advertised rewards for legal review (section 13, item 2). Securities and consumer-protection treatment must be confirmed before public mainnet and before any reward rate is published. Revolution does not publish reward rates. Settlement fees paid to node operators are flagged for review too (item 1).
What it means
For verifying node operators. Liveness is the job. Run the node agent and keep the verifier key separate. A missed liveness window means a jail anyone can trigger. The node fee sits between 20% and 50%, enforced by contract.
For creators. You set a creator fee from 0% to 100%. Your own stake carries no fee. Fans can read the exact rule that routes their share. You can redelegate if your node is jailed or evicts you.
For developers. Rewards are state, not events. Read the indexes through the API or the contract. Drive claims from a contract, a keeper, or an Agens (agent) holding a session key under a Mandatum (delegated authority).
What is next: two open migration decisions
E1. Split rule conflict. Libertas (V1 network) paid under the technical draft. V2 implements the published rule. The proposed path is to confirm with the Association and publish a notice explaining the change.
E2. Emission start point. Libertas (V1 network) emitted about 20.8M REVO against about 53.0M intended. That decides how much of the 250M remains and which era V2 starts in. The options are to resume by amount emitted, resume by calendar, or restart at era 1. No choice has been made.
Migration scope (E3) and unclaimed fan rewards in Libertas (V1 network) Creator Pools (O5) are also open. Each is on the list to close before mainnet.
Sources
- YouTube Blog, YouTube Partner Program updates (10 August 2026)
- Patreon Help Center, A standard platform fee for new creators
- Goldman Sachs, The creator economy could approach half-a-trillion dollars by 2027
- Cosmos SDK issue #5411, Ensuring block provisions are normalized with inflation rate
- Cosmos SDK x/mint README
- Batog, Boca, Johnson, Scalable Reward Distribution on the Ethereum Blockchain
- SEC Division of Corporation Finance, Statement on Certain Protocol Staking Activities
- SEC press release, Staff Statement on Certain Liquid Staking Activities
- SEC press release, SEC Clarifies the Application of Federal Securities Laws to Crypto Assets
- Sullivan & Cromwell, SEC Clarifies Application of Securities Laws to Crypto Assets
- ESMA, Q&A 2067 on staking under MiCA
- Revolution Network Whitepaper V2, sections 2, 4, 8, 10, 11, 13, and 16.1


