Key points
- Leios lifts Cardano's transaction capacity well above today's limit without changing its security model. In its first public test, it peaked at roughly six times what the mainnet handles now.
- The result held across a 41-day phase. Leios carried 54% of all traffic reaching the chain in the stable final days, moving 18x the transactions and 3.3x the data of real mainnet traffic.
- Every problem we found was a bug in our code, not a flaw in the protocol, and we fixed each one in public on a weekly release cadence.
- A red team is already attacking the network. Nothing so far threatens the safety of the underlying Praos layer, and performance degraded in proportion to stake rather than breaking the chain.
- Water, the next phase, is live now with a rewards program for pool operators. The goal is a mainnet-ready Leios by the end of the year.
Block space is the resource a blockchain offers its users, and its supply is fixed: so many bytes per block, so many blocks per unit of time. Demand keeps its own schedule. Most of the time it runs well below the limit; then a launch, an airdrop, or a market move compresses it into a spike. It is the textbook problem of seasonal demand against fixed capacity, with one twist: on a chain, the season can arrive in minutes. Applications already plan around it. The Midnight Glacier Drop spreads its redemption over months rather than risk a congested network.
The squeeze sharpens as Cardano's activity consolidates in decentralized finance (DeFi), where timeliness is the difference between the trade you wanted and the trade you got: prices move, windows close, liquidations fire. Some chains meet a burst by selling the front of the queue: pay more, land sooner. Cardano has no such lane. Differential pricing is under active research, and today every transaction waits in the same line, regardless of who sent it. So the line itself has to move faster.
Capacity on demand, security unchanged
Ouroboros Leios is Cardano's answer to that ceiling. It runs dormant as an overlay on Ouroboros Praos, the protocol Cardano uses today, and steps in when transactions arrive faster than Praos alone can clear. In the gaps between Praos blocks, it builds a second kind of block, the endorser block, which carries far more transactions and validates them in parallel. Once enough of the stake has voted, a later Praos block carries a small certificate and the whole batch lands at once. Security stays with Praos; capacity arrives when demand asks for it.
Leios began as a research paper, High-Throughput Blockchain Consensus under Realistic Network Assumptions, presented at Crypto 2025. A paper is not a specification, so the engineering team turned it into CIP-164. Linear Leios is a variant that could be built in reasonable time with minimal disruption to the protocol Cardano already runs. It evolved in the open for months, shaped by community discussion and backed by simulations, and merged on January 6, 2026. A working prototype followed in under six months, built by a team led by Leios architect Sebastian Nagel.
On June 23, we launched MusashiNet, the public testnet that takes that prototype to production-grade code. It is named for Miyamoto Musashi, the samurai who fought with two swords while every school of his era taught one. This is how a chain running Leios fights: the short sword is the Praos block, and the long sword is the endorser block. His Book of Five Rings gave the testnet its five phases: Earth, Water, Fire, Wind, Void.
MusashiNet is the Dojo, and this is the story of the first phase.
What Earth gave us
Earth asked one question: does the prototype hold in the wild, at real latencies, on machines we neither control nor can see? Holding meant running the whole protocol end to end: Praos blocks produced, endorser blocks announced, the stake voting on them, certificates landing on chain. The numbers that follow are that checklist, ticked.
41 days. More than 127,000 blocks, 30,000 endorser blocks announced, nearly 8,000 certificates carried on-chain. 63 pools registered over the phase, up from the three we started with, 40 producing blocks in a single epoch at the peak. 12 releases in eight weeks, an unbroken weekly cadence that absorbed two same-week hotfixes without missing the next release.
A young testnet has no traffic of its own, so we brought our own. The centrifuge, our synthetic load generator, was tuned to push slightly more transactions than Praos could clear alone: one hour on, one hour off, 12 hours a day, every day. Protocol settings stayed at cautious first values.
MusashiNet peaked at 26.8 TxkB/s with Leios active, against the 4.51 TxkB/s Cardano mainnet can reach with Praos alone at today's parameters. Six times today's ceiling, with the dials barely turned. In the stable final days of the phase, Leios carried 54% of everything reaching the chain. Compared with the traffic the mainnet actually carried over the same period, Earth moved 18x the transaction count and 3.3x the bytes.
Five throws in the Dojo
Not everything was smooth. We found bugs, forked the chain twice, and had a morning when every machine on the network stopped. None of it was a protocol failure; every one was a bug in our code. Five are worth telling.
Leaks, crashes, and forks made for an interesting week one
On the Thursday of launch week, John Lotoski, our system reliability node team lead, found the node leaking memory across all three block producers. Kiwipool, watching from outside, clocked RAM at 4.5 gigabytes after a three-day soak and polled the room: Is it just me? It was not. Under load, the node opened a fresh connection to its Leios database over and over and never closed one. Each connection held a file handle and two megabytes of cache, enough to eat a relay's entire memory in about a day. The fix taught the node to close what it opens.
That weekend the chain forked twice, and any node that met a certified block without its endorser data died outright. John spliced the chain back by hand twice and pinned the trigger to load: off, healed within hours; on, collapsed on schedule. That is week one in the Dojo. You get thrown, you learn the fall, you get up.
BROKEN, DO NOT USE
Week two turned on real certificates: transactions endorsed only once 75% of the stake had voted for them. The first endorser block followed the next afternoon. Then fresh syncs began freezing at block 28,358, and nodes started segfaulting. Dražen Popović, one of IO's consensus engineers, ran the incident from the ground: a hypothesis, a fix branch, and a patched node within two hours, tested for 90 minutes under full load, then shipped.
The freeze took longer. Nick Frisby, a consensus engineer from Tweag by Modus Create, found that one check deep in the code reported no certificate here no matter what the block said, so syncing nodes could download every block after 28,358 and select none of them. The chain's first swing of the long sword had locked the front door behind it. He found and fixed two more bugs the same day. The warning sign is still up: Prototype 2026w27: BROKEN, DO NOT USE.
It's the mempool, stupid
The week-one trigger needed sustained full load to reproduce, so Sebastian Nagel shipped tx-firehose, a load generator he wrote over a weekend, and invited the community to point it at the network. They did (Kiwipool from New Zealand, HAPPY burning a thousand test ada), and the mempool stayed full for 10 hours straight. Blocks began running late: more than 40% took over a second to reach the network, against near-universal sub-second delivery on mainnet.
The cause was not memory or diffusion but block production itself. The forge loop opens by asking the mempool for a snapshot of waiting transactions, and the mempool, designed for Praos, revalidates everything each time a node adopts a block while holding a lock the forge loop needs. The fuller it is, the longer each producer waits to forge. In the extreme, it forges past its own leadership slot. Bigger machines helped, but hardware is not a fix when every gigabyte comes out of operators' pockets. We have redesigned the mempool to revalidate off-chain, and Water is where it gets tested.
The day we forked it up
Early one morning in week four, the network split at block 67,554. Greg from VOLCY posted the logs: a size mismatch, 66,006 bytes against a declared 66,007. One byte. A producer running another node implementation had forged a perfectly valid block, and Haskell nodes decoded it and wrote it back to disk one byte shorter under a different binary convention. Same transactions, same meaning, wrong hash.
The other implementation did nothing wrong. We have had a rule against re-serializing another node's data for almost a decade, and we broke it. Nick Frisby shipped a temporary shield the same day (stop altering block bytes on their way to disk, repair the mangled ones still arriving) while the real fix went in upstream in the ledger, landing before Earth was out. With more than one implementation on a network, there is no such thing as an innocent re-encoding, and conformance testing matters more the closer Leios gets to mainnet.
The morning every machine stopped
Finally, in week six, we replaced the automatically derived voting keys with real BLS keys, which Thomas Vellekoop, one of IO's cryptographic engineers, had finalized and independently audited months earlier. Then, at 10:42 UTC, every machine on the network stopped. Not slowed. Stopped. An external experimental node had forged a block carrying a certificate with an invalid signature, and our code treated it as a fatal error rather than a rejected block. Every node that saw it died, and every node that restarted met the same block and died again. John's status report was six words long: All machines affected, all machines stopped.
We deployed a patched node 45 minutes later, sent the public notice within two hours, and merged the permanent fix the next day, so a bad block from outside now becomes a logged rejection instead of a dead process. A node's job is to survive what strangers send it. The signature scheme did exactly what it was designed to do. We just overreacted.
Water: same design, many configurations
Earth asked whether the prototype survives contact with reality. It does. It is still a prototype. The mempool replacement is in review, bottlenecks remain, and the pipeline is not complete. But we found and fixed all of it in the open, and the design never failed. Piranha, the red team's node, has been running attacks based on our published threat model throughout: some worked, degrading performance in proportion to stake, but none compromised the safety of the Praos layer. The heaviest of it comes in Fire and Wind.
Water opens now on a fresh chain, and it takes the shape of whatever contains it: parameter exploration, alternative component implementations starting with that mempool, and real BLS keys as the way onto the voting committee. The hunt for Leios's actual limits begins here. The rewards program is live with it because the sharpest remaining questions can only be answered by hardware we do not own, in places we did not choose. Pools that forged and voted in Earth are eligible for a retroactive reward, judged from a snapshot taken before the reset, and the rewards program page explains the steps.
The goal is a mainnet-ready Leios by the end of the year. Consensus upgrades are usually measured in years, and covering that distance in one would be unusually fast. We are chasing it in the open, release by release.
Cardano took the trilemma in the hard order: security first, decentralization second, scale last. Leios is the scale leg, and it is training in public now. Dive deeper into technical details here.
The Dojo is open. Come train with us.



