Testnet is where a project is allowed to be messy. People try things. Nodes go down. Tools change. Docs get rewritten. Bugs show up in places nobody expected. It’s not glamorous, but it’s honest. It’s where a protocol learns what it actually is.

Walrus went through that phase and then stepped into Mainnet.

On March 27, 2025, Walrus announced that its production Mainnet was live. The network was operated by over 100 storage nodes, and that Epoch 1 began on March 25, 2025. That is the moment the tone changes. Mainnet is not a demo. It is where real apps start depending on you.

Walrus is a decentralized storage protocol for large, unstructured data called blobs. A blob is just a file or data object that isn’t stored like rows in a table. Walrus lets people store blobs, read them back, and prove they are available later. It is designed to keep data retrievable even if some storage nodes fail or behave maliciously. Walrus also uses the Sui blockchain for coordination, payments, and availability attestations, while keeping the blob content itself off-chain. Only the metadata goes to Sui or its validators. That split is the whole point. The chain keeps the receipts. The network stores the heavy data.

The move to Mainnet wasn’t just a label change. It came with a lot of small, practical upgrades that make the system easier to use in the real world.

One change was blob attributes. Walrus said Sui blob objects can have multiple attributes and values attached. That sounds like a detail, but it matters if you are serving blobs over HTTP. Walrus mentioned the aggregator uses this to return common HTTP headers. That’s the kind of thing you only appreciate after you’ve built a product and discovered that “just serving the file” is not enough.

Another change was the ability to burn blob objects on Sui. Walrus extended the CLI so users can burn Sui blob objects and reclaim the associated storage fee. That makes storage cheaper. It also makes cleanup possible. On testnet, nobody cares about cleanup. On Mainnet, people do.

They also improved how you set expiry time in the CLI. Walrus said you can now express expiry in more flexible ways, like “max epochs,” a real date format, or a specific end epoch. That is simply better for builders. People think in calendar time. They don’t always want to convert everything into protocol epochs.

One of the bigger technical shifts was in the erasure coding layer. Walrus said RedStuff moved from RaptorQ to Reed–Solomon codes. They explained that benchmarking showed similar performance for their parameter set, and that Reed–Solomon gives stronger, clean reconstruction behavior when you have enough slivers. In storage systems, this is not a minor tweak. It affects how confident you can be when the network is under stress.

Mainnet also pushed Walrus to meet normal web expectations. Walrus described TLS support for storage nodes, so nodes can serve publicly trusted certificates like those from well-known providers and authorities such as Let’s Encrypt. That matters if you want JavaScript clients to talk to the network in a standard way. Browsers and modern apps expect HTTPS. Without it, adoption becomes harder than it needs to be.

Then there is the publisher service. Walrus said it added JWT authentication so publishers can restrict service to authenticated users. The reason is simple: on Mainnet, publishing costs real WAL and SUI. If you run a public publisher with no controls, you can burn money fast. Testnet can be open and generous. Mainnet needs guardrails.

Walrus also highlighted the boring things that keep systems alive: logging, metrics, and health checks. Storage nodes and the CLI include a health command. Services export metrics for dashboards. These are not “headline features,” but they are what you need when the network grows and you want to detect issues before users do.

Walrus Sites also moved forward. Walrus said the Mainnet portal would be hosted on wal.app. It also said Walrus Sites now support deletable blobs to make updates more cost efficient. That’s important because websites change. If updating a site is expensive or awkward, builders won’t stick with it.

For early users, Walrus mentioned something practical: a subsidies contract operated by the foundation. The CLI can use it automatically when storing blobs, so early adopters can try Mainnet without immediately feeling the full cost pressure. It’s a bridge. It helps people move from experiments to real deployments.

Walrus also made its view of Testnet clear. It said Testnet would be wiped and restarted to align with Mainnet, and that it would be wiped regularly every few months. The message was direct: if you want stability, use Mainnet. Testnet is for testing upcoming features, not for long-term reliance.

The open-source piece became clearer too. Walrus said the codebase is now open sourced under an Apache 2.0 license, hosted on GitHub, including Move smart contracts, Rust services, and documentation. It also said the separate walrus-docs repository would be retired because the main repository now includes both docs and contracts. This is good for developers. It reduces confusion. One main repo becomes the source of truth.

If you zoom out, the whole testnet-to-mainnet shift feels like the moment Walrus stopped being “an idea with code” and became “a service people can depend on.” It has real costs, real operators, real monitoring, and real rules for time and storage.

For builders, the meaning is simple. You can now publish and retrieve blobs on a production network. You can host and browse Walrus Sites on Mainnet. You can stake and unstake using the live WAL token to influence future committees. And you can do it in a system that claims its security properties hold on Mainnet, not just on paper.

Testnet is where you learn whether a system can work. Mainnet is where you learn whether it can keep working. Walrus’s move into Mainnet looks like a project accepting that difference, and doing the unglamorous work needed to cross it.

@Walrus 🦭/acc #Walrus $WAL