Measurements
Every number here was measured on one machine against Solana devnet and thedevnet-as Ephemeral Rollup endpoint. Nothing is estimated. Where something was not tested, it says so.
Ephemeral Rollup versus Solana L1
Same program, same machine, one endpoint swap. 200 transactions per configuration. Landed counts are read from the counter account afterwards, never from what the client believed it sent.
| Configuration | L1 landed | L1 tx/s | ER landed | ER tx/s |
|---|---|---|---|---|
| Sequential, await confirm | 16 / 200 | 0.5 | 200 / 200 | 4.2 |
| Sequential, fire and forget | 20 / 200 | 0.8 | 200 / 200 | 8.1 – 12.1 |
| 6 concurrent + 50-100ms jitter | 3 / 200 | 0.5 | 200 / 200 | 26 – 38 |
Concurrency actively hurts on L1. The strategy producing 26-38 tx/s in the rollup lands three transactions out of two hundred on devnet, because the burst trips the public RPC limiter immediately.
Being precise, since this is an infrastructure limit and not a claim about Solana consensus: public devnet caps sendTransaction near 40 per 10 seconds. L1 never dropped anything it accepted, in any of the four runs. Paced under the limit it lands 40/40 with confirm latency median 498ms, which is the 400ms slot time appearing where it should, plus 5,000 lamports per transaction where the rollup charges zero.
Throughput ceiling
| Senders | Sent | Landed | tx/s |
|---|---|---|---|
| 6 | 200 | 200 / 200 | 70.6 |
| 12 | 400 | 400 / 400 | 116.9 |
| 24 | 2,000 | 2,000 / 2,000 | 228.5 |
| 96 | 2,000 | 2,000 / 2,000 | 770.2 |
| 96 | 4,000 | 4,000 / 4,000 | 758.3 |
Ceiling not found. 100% landed at 758 tx/s. The constraint is client-side concurrency and round-trip latency, not the rollup.
Other measured values
- ER block rate
- 22-23 blocks/s (~43ms), idle and under load
- Transactions per block
- ~33
- Blockhash window
- 1,198 blocks, ~54s
- Undelegate to L1 gap
- 19.97s for seven accounts
- Failed transactions
- 0 across 13,405 sent
- Websocket delivery
- 100% at 31 tx/s, 93.2% at 724 tx/s
On the 1ms figure. MagicBlock's marketing cites 1ms block time. This project measured 22-23 blocks per second on devnet-as, idle and under 758 tx/s of load, so it does not use that number. The throughput comes from packing ~33 transactions per block, not from 1ms blocks.
Independently verifiable on the explorer
Rollup transactions are not on any public explorer, so the throughput figures above are our measurement, evidenced by the harness. The delegation lifecycle is entirely L1-visible and clickable.
- Initialize on L1
- Delegate — ownership moves to the delegation program
- ProcessUndelegation — validator writes committed state back to L1