From Testnet to Mainnet: The Security Checklist Every Protocol Founder Should Own
You’ve built something real. The contracts are written, testnet is humming, your team is hyped, and the pressure to ship is at an all-time high. Mainnet feels close enough to touch.
This is exactly when most protocols get exploited.
Not because the founders weren’t smart. Not because the developers didn’t care. But because the window between “it works” and “it’s secure” is narrower than people think — and the testnet-to-mainnet transition is the moment that gap becomes dangerous.
If you’re a protocol founder, security is ultimately your responsibility. Not your lead dev’s. Not your auditor’s. Yours. This checklist is designed to help you own it.
Why This Moment Is Different
Testnet is forgiving. Mainnet is not.
On testnet, you’re simulating behavior under controlled conditions. Real money isn’t at stake, real adversaries aren’t watching, and the assumptions baked into your contracts haven’t been stress-tested by people actively trying to break them.
The transition to mainnet changes all of that at once. Suddenly your protocol is live, your TVL is a target, and any vulnerability that survived the development process is now a liability with a countdown timer on it.
The problem is that most teams treat security as a final sprint — something you bolt on before launch rather than something you build in from the start. The founders who get this right think about security differently: not as a checkpoint, but as a practice that starts the moment they write their first line of spec.
The Checklist
This isn’t a technical checklist for your engineers (though they should have one too). This is the founder-level checklist — the questions you should be able to answer before you flip the switch.
1. Have you defined what “secure” means for your protocol?
Before you can test for security, you need to know what you’re protecting. This means sitting down — ideally before a line of code is written — and defining your protocol’s invariants: the conditions that must always be true for your system to behave correctly.
For a lending protocol, an invariant might be: collateral value must always exceed borrowed value. For a DEX: the product of reserves must never decrease from a trade alone.
If you can’t articulate your invariants, neither can your security tooling, your auditors, or your team. Get them written down.
2. Does your test suite actually try to break things?
Unit tests that confirm expected behavior are necessary — but they’re not sufficient. Adversaries don’t use your protocol the way you intended. They probe edge cases, compose unexpected transactions, and exploit assumptions you didn’t know you’d made.
The shift from “does this work?” to “can this be broken?” is one of the most important changes a team can make. Mutation testing, fuzz testing, and invariant checking all simulate adversarial conditions before an attacker gets the chance to find them for you.
The goal isn’t 100% test coverage. It’s coverage of the attack surface.
3. Is security happening during development — or only at the end?
If the first time your security tooling runs is right before your audit, you’ve already missed the window.
Shifting security left — integrating checks into the development workflow itself — means vulnerabilities are caught when they’re cheapest to fix. A bug found in a pull request takes minutes to address. The same bug found by an auditor (or worse, an attacker) can cost weeks of remediation, a delayed launch, or a nine-figure exploit.
Ask yourself: does your team get security feedback as they write code, or only after they’re done?
4. Are you audit-ready — or just audit-hoping?
An audit is not a guarantee of security. It’s a snapshot of one team’s findings over a fixed period of time. Auditors are skilled, but they’re working against a clock, and they can only find what they can see.
You get more from an audit — and spend less on it — when your codebase arrives clean. That means no obvious low-hanging vulnerabilities, documented invariants, a thorough test suite, and clear comments explaining intended behavior.
The founders who treat audits as a collaborative process — where they show up prepared — consistently get better results than those who treat it as a hand-off.
5. Do you have an incident response plan?
Most founding teams have a launch plan. Very few have an incident response plan.
What happens if you’re exploited in the first 48 hours? Who gets called? Do you have emergency pause functionality in your contracts? Is there a multisig with the right signers ready to act? Do you have a communications plan that doesn’t involve scrambling to write a postmortem at 2am?
The protocols that survive exploits — and sometimes even rebuild trust afterward — are the ones that responded quickly, communicated clearly, and had at least some version of a playbook ready. This isn’t something you want to improvise.
6. Have you red-teamed your own assumptions?
Every protocol is built on assumptions — about how users will interact with it, how external price feeds will behave, how other protocols you integrate with will act.
Before mainnet, get someone outside your team to actively try to poke holes in those assumptions. Not just to find bugs in the code, but to challenge the design. Some of the most damaging exploits in DeFi history weren’t code bugs — they were logic bugs that no one thought to question because everyone building the protocol had the same mental model.
Bring in outside perspective before the market does.
Security Is a Founder Job
Here’s the thing that doesn’t get said enough: security culture starts at the top. If the founder treats security as someone else’s problem, the team will too. If you’re asking the right questions, pushing for shift-left practices, and holding the bar on what “ready to launch” actually means — your team will rise to that standard.
The checklist above isn’t a substitute for great engineers or a thorough audit. It’s a framework for the decisions that only you can own.
The gap between testnet and mainnet is small. The gap between a secure launch and an exploit is smaller than you think. Own the checklist.
See how Olympix helps teams shift security left — before the audit, before the launch. Request a demo!
What’s a Rich Text element?
The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.
A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!
Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.
Follow-up: Conduct a follow-up review to ensure that the remediation steps were effective and that the smart contract is now secure.
Follow-up: Conduct a follow-up review to ensure that the remediation steps were effective and that the smart contract is now secure.
In Brief
Remitano suffered a $2.7M loss due to a private key compromise.
GAMBL’s recommendation system was exploited.
DAppSocial lost $530K due to a logic vulnerability.
Rocketswap’s private keys were inadvertently deployed on the server.
Hacks
Hacks Analysis
Huobi | Amount Lost: $8M
On September 24th, the Huobi Global exploit on the Ethereum Mainnet resulted in a $8 million loss due to the compromise of private keys. The attacker executed the attack in a single transaction by sending 4,999 ETH to a malicious contract. The attacker then created a second malicious contract and transferred 1,001 ETH to this new contract. Huobi has since confirmed that they have identified the attacker and has extended an offer of a 5% white hat bounty reward if the funds are returned to the exchange.