Today the ZooBC testnet went live.
I want to describe this the way it felt, not the way press releases pretend it feels. Launch day is not fireworks. It is a long checklist, a quiet room, and the constant fear that you missed something boring and fatal.
Genesis was created using the same genesis-builder tool anyone can use. Not by hand. Not by mystical ceremony. A reproducible process with parameters that can be audited. Timestamp chosen deliberately. Test accounts funded for stress campaigns. Initial node entries prepared. The goal was not “beauty.” The goal was repeatability.
Eleven bootstrap nodes came online across multiple regions. Within minutes, the chain was growing: blocks at the expected interval, receipts exchanging, participation scores moving in the direction they should. I had the ncurses monitor running on a second screen like a heartbeat monitor, because the fastest way to notice problems is to see them, not to infer them from logs after the damage is done.
A lot worked immediately, and that is the best compliment a protocol can receive. Block production behaved. Transaction validation behaved. Peer discovery behaved. The web wallet connected through the gateway and broadcasted transactions without exposing keys. The explorer showed the chain in real time. That is the minimum bar, and it cleared it.
Then the real world appeared, as it always does.
Nodes behind aggressive NAT took longer than expected to establish clean bidirectional connectivity. This is not a “bug” in the abstract, it is a network reality that changes how fast peers become useful. We also observed a mempool propagation delay under certain topologies. In the lab, it looked fine. In a live network, it felt sluggish. The root cause was not dramatic: retry intervals that were conservatively tuned for stability and now needed adjustment for speed. That is why testnets exist: not to prove perfection, but to expose reality early.
The moment I trusted most was the first external observer node syncing from genesis to current height on a VPS I did not configure myself. I followed only the public docs. No hidden shortcuts. No “developer assumptions.” Watching that node become part of the network was the real launch for me. The network was no longer a thing that only works when I touch it. It was becoming something other people could operate.
The academy students were invited to run observer nodes as their first hands-on exercise. That matters because decentralization is not a claim, it is a distribution of capability. If only the founder can run the network, the network is not decentralized, it is theatrical.
This launch day felt different from the first ZooBC attempt years ago. That one was promises first, code later. This time, the code came before the announcement. That is the only order that deserves trust.
Now the testnet exists. Which means the real work begins.
