Security and responsible disclosure
Last updated October 20, 2026 · 2 min read
Tetro moves real value through public contracts, so security is a design constraint, not a feature. This page covers how the system is built, what you can do to protect yourself, and how to tell us about a vulnerability.
Draft under legal review. This text is published for transparency and is not yet in force.
1.How the contracts are built
Contracts are written in Solidity 0.8.24 on OpenZeppelin v5. Factories and registries use UUPS upgrades; each token, curve, sale and collection is a minimal EIP-1167 clone, so the code you interact with is the audited implementation behind it.
- Reentrancy guards on every function that moves ETH or tokens, and checks-effects-interactions throughout.
- Custom errors for every revert, so the interface can tell you exactly why a simulation failed.
- Fee ceilings are constants in FeeManager. An admin cannot raise a fee above them.
- LaunchToken has no mint function. Supply is fixed at deployment.
2.Testing and review
Every change runs the full Foundry suite in CI. Invariant tests assert properties that must always hold, for example that a sale's balance covers its liabilities, that no token can be minted after deployment, and that no one can claim or refund twice. Slither and Aderyn run on every pull request.
External audit reports will be linked from this page and from the Smart Contracts section of the Docs as they are published. Until a report is listed here, treat a contract as unaudited.
3.Operational controls
New contracts launch in a guarded mode with a cap on how much can be raised. Admin roles are held by a Safe multisig, and upgrades to upgradeable contracts wait in a timelock so users can see them coming. The stability index in the Docs lists which contracts are stable, beta or gated.
4.Protecting yourself
Most losses in crypto come from phishing and signing the wrong thing, not from contract bugs. A few habits remove most of that risk.
- Check that the address bar shows the official Tetro domain before you connect a wallet.
- Read the transaction preview. Tetro simulates every write first; if the simulation fails, nothing is sent.
- Verify token and contract addresses against the Docs and Blockscout. Names and logos can be copied; addresses cannot.
- Use a hardware wallet for meaningful balances and revoke approvals you no longer need.
- Anyone who asks for your seed phrase is trying to steal from you, whatever they claim to be.
5.Reporting a vulnerability
Open a ticket on Support with the topic "Security report". Include the affected contract or page, the impact you believe it has, and clear steps or a proof of concept. Testing on a local Anvil fork is preferred to testing on mainnet.
We acknowledge reports within two business days, keep you informed while we work on a fix, and credit you publicly once it ships if you would like that.
6.Scope
In scope: Tetro smart contracts deployed on Robinhood Chain, the Tetro web interface, and the Tetro API and indexer.
Out of scope: third-party wallets, bridges, RPC providers and Uniswap contracts; tokens or agents created by users; social engineering of staff; volumetric denial of service; and findings that require a compromised device or leaked keys.
7.Safe harbor
If you act in good faith, avoid privacy violations and service disruption, do not move funds that are not yours beyond what a proof requires, and give us reasonable time to fix the issue before disclosure, we will not pursue or support legal action against you for your research.
8.Bounties
A bug bounty programme with published reward tiers is in preparation. Until it launches, valid reports are rewarded case by case according to severity and the quality of the report.
Questions about this document
Open a ticket on Support and choose the topic that fits. Security issues go through the disclosure process. We will never ask for your seed phrase or private key.