Testnet
Current Limitations
The clearest, most important page in these docs. l1_node is a teaching/prototype skeleton, not a production chain — here's exactly what that means in practice, and what changes before it isn't.
Nothing about the current testnet is audited. Don't point real users at it as anything more than a demo, and never fund any key used with it with anything of real value.
What's simplified today
This is deliberate scoping, not an oversight — the current prototype exists to exercise the full wallet → RPC → mempool → block → balance loop end to end before the harder consensus and networking work is built. Each item below links to where the eventual design is documented.
| Area | Today | Planned |
|---|---|---|
| Consensus | Single-authority — one process seals every block on a fixed 3-second timer | A real validator set with BFT voting — see Consensus Mechanism |
| Networking | None — one process, one RPC endpoint | rust-libp2p-based gossip so multiple nodes agree together — see Network Layer |
| State root | A simple hash | A provable Merkle/Verkle trie — see State & Storage |
| Execution | Transfers only | Full EVM compatibility via revm — see Execution Layer |
| Storage | In-memory — restarting the node wipes the chain back to genesis | Persisted to RocksDB |
| Transaction history | Computed by scanning every block on each request | Indexed, the way a real chain serves history |
Security notes for a public testnet
- The faucet private key is testnet-only. Never reuse it, never fund it with anything of real value, and treat it as public once it's stored as a platform secret/variable other collaborators can see — rotate it if the team changes.
- Nothing in this stack is audited. It's a demo/testnet, not something to point real users or real funds at.
- CORS is currently wide open (any origin), so the dashboard can reach the node from any
*.vercel.appdeploy. Fine for a testnet; should be tightened to the dashboard's exact domain before it matters. - Redeploys and restarts reset the chain to genesis, on either hosting option — see the Storage row above. The faucet address stays constant (tied to the env var/secret), but its balance and every transaction since genesis do not survive a redeploy.
Pay3