Security
Security
Audited by Claude Fable 5. It reads the code, writes working exploits and use-case tests, runs them, and reports what it found with evidence anyone can reproduce. The contracts are deployed on mainnet and hold real value — weigh that before you use this platform.
1. In brief
Two things live on this page, because they are the same question asked twice: how to tell us about a problem, and what we found when we went looking ourselves.
- Report a vulnerability to security@thehood.markets. A person acknowledges it within 3 business days. Section 3.
- Audited by Claude Fable 5, dated 15 August 2026, across contracts, the prediction market, frontend, API, database and performance. Every Critical and High finding — the five contract findings, the prediction market’s settlement and census findings, and the database migration drift — is fixed with executable exploits and regression tests; the remaining application findings are reported and still open. Section 4.
- There is no funded bug bounty. We would rather say so than imply a payment that does not exist.
- A contract bug cannot be patched. The contracts are immutable, so a fix is never a fix in place. Section 3.1 explains what a response can actually consist of.
- Each product has its own position, and they are not comparable. The token launchpad is deployed and holds real ETH; the prediction markets deployed on 15 August 2026 after their settlement and census findings were fixed, and hold real stakes; the NFT launchpad has no contracts at all. Section 2.
The sections below are the binding detail; this one is for orientation.
2. Security by product
The Hood ships more than one product, and they do not share a security position. Stating one for the platform would flatter the surfaces that hold nothing and understate the one where money is actually at risk, so each answers for itself below — what has been reviewed, what the deployed code guarantees, and what is known to be wrong with it.
Nothing in this section says “secure”. Status is a fact about deployment, not a judgement about quality: live means deployed and holding value, built means the code exists and is tested but nothing is deployed, and not built means there is nothing to review yet.
2.1 Token launchpad — Live — holds real value
Fixed-supply tokens on a bonding curve that graduates into a pool whose liquidity nobody can withdraw. Deployed and holding real ETH.
Review state. Audited by Claude Fable 5 on 15 August 2026 at commit 11d8d75: 19 findings, 9 fixed in 32b5fec, 10 open.
What the deployed code guarantees. Each of these is a property of code rather than a promise, which is the only reason it is worth stating.
- A graduated pool's position is held by a locker with no withdrawal path — no transfer, no burn, no owner, no rescue hatch.
- Creator fees are earned by owning the liquidity, not by taxing transfers, so they survive graduation.
- No proxies and no upgrade path: what deployed is what runs.
- Pausing can stop new launches. It can never stop a claim, a sell, or a graduation already owed to someone.
Known open risks.
- The anti-snipe wallet cap is defeated by splitting a buy across wallets (SEC-05, open).
- Owner test launches obtain a large share of supply for a negligible sum (SEC-06, open).
- CurveDeployer is permissionless, so curves can be deployed that the factory does not vouch for (SEC-07, open). Authenticate through the factory, never through an address you were handed.
- Graduation is visible in the mempool before it lands (SEC-08, open).
Contracts: contracts/src/launchpad/ · Open token launchpad
2.2 Creator, KOL and referral rewards — Live — holds real value
The share of every trade fee that reaches promoters and referrers, and the registry that decides who may be paid and how much of one window they may take. Deployed and holding real ETH.
Review state. The splitter and the ledger were in scope for the Claude Fable 5 audit on 15 August 2026. The registry has been REDEPLOYED since, on 2026-08-25, to add the ability to withdraw an account's standing — that change is tested but is not covered by that audit, and this says so rather than letting the audit date cover code it never saw.
What the deployed code guarantees. Each of these is a property of code rather than a promise, which is the only reason it is worth stating.
- Fees already credited to you sit in the splitter and are claimable by you and only you. No function anywhere lets us take them, redirect them, or pause a claim.
- A creator allocates a percentage, never an amount, and can never allocate more of a window than the roster's cap allows.
- An unallocated window lapses 50/50 between the creator and the platform rather than being held indefinitely.
- A referral attribution binds once and never moves, so who is owed for a referred wallet cannot be rewritten afterwards — by anybody, including us.
- A referral name proved by a verified X account can never be taken by a later claimant, nor freed for one when its owner moves away from it.
Known open risks.
- Enrolment and X verification are ASSERTED BY US, from our own database. Write access to that database is equivalent to holding the attestation key, and no contract can detect a false assertion — this is inherent to putting an off-platform fact on chain, and is stated because the separate keys imply a stronger guarantee than exists.
- We can withdraw an account's KOL standing, which stops any creator allocating to it. It is recorded on chain with a reason and is reversible, and it touches nothing already earned — but it is a decision of ours, not a measurement.
- Lifetime earnings, which set rank and therefore your cap, are summed from the splitter's own logs and written on chain by us. Anybody can recompute the figure from public data, which is what makes a wrong one detectable rather than merely deniable.
- Whether you are paid at all is a creator's choice. Eligibility and a rank cap are ceilings on what MAY be allocated to you; nothing obliges anybody to allocate anything.
- An X Premium badge is a subscription. If it lapses, eligibility is lost within about a day unless the account is Platinum or Diamond, which are excused.
Contracts: contracts/src/launchpad/ · Open creator, kol and referral rewards
2.3 Prediction markets — Live — holds real value
Parimutuel markets on The Hood's own launches, settled by reading the launchpad's contracts on the same chain. Staked in ETH, or in a project's own token once it has the holders to carry one. No stablecoin is listed yet — none exists on this chain.
Review state. Deployed to Robinhood Chain mainnet on 15 August 2026 — five contracts, wired to the launch factory and verified by reading their bytecode and cross-references back off the chain. Audited by Claude Fable 5 in the 15 August full assessment, which found and proved with working exploits that market settlement could be manipulated to pay the wrong side (fixed before deployment — only manipulation-resistant metrics can settle a market, and 'graduated' resolves from completion) and that the holder census gating project-currency listing could be defrauded by double-counting across sweep pages (also fixed before deployment — the sweep is now atomic). A passing suite says the failures it models do not happen, not that there are no others.
What the deployed code guarantees. Each of these is a property of code rather than a promise, which is the only reason it is worth stating.
- Settlement is a plain contract read on the same chain: no signer, no bond, no challenge window, so there is no attestation anyone has to be trusted for.
- Markets are clones with the implementation baked into their runtime code — not proxies. No admin key can rewrite market logic while funds are staked.
- Pausing blocks staking and can never block a claim. The emergency void refunds at par and cannot redirect a unit of user money anywhere else.
- If a settlement window closes with nobody settling, the market voids and everyone is refunded at par — the no-settlement failure mode is 'nobody profits'.
- A creator tier is computed from launch history, not granted. There is no function anywhere that awards one.
Known open risks.
- Settlement manipulation (found 15 Aug, FIXED). Several curve metrics a market could settle on — net raised, tokens sold, progress, FDV — move up on a buy and down on a sell, and settlement reads the live value at a moment the settler chooses; a proven exploit pushed the metric across its threshold, settled, and traded back, taking the honest counterparty's stake. The fix restricts markets to manipulation-resistant metrics only (the latched lifecycle states and monotonic creator counts) and resolves 'graduated' from completion, which cannot be forced for gas. The non-monotonic spot markets are disabled until a manipulation-resistant settlement (a value captured at the deadline, or a multi-block average) is built.
- Anti-sybil census double-count (found 15 Aug, FIXED). The census sweep read balances live per page and accumulated across transactions, so one floor of tokens moved ahead of the cursor counted once per page — ~0.01% of supply could report as a full distribution. The sweep is now atomic: the whole set is counted from one instant, so a wallet only counts if it genuinely holds the floor then, and faking N holders costs N floors of really-distributed supply. Excluded venues are skipped and counted supply is capped at total supply.
- The protocol owner can pause staking, void a market, and set the fee up to a hard cap of 5%. Every market snapshots its terms at creation, so a live market cannot be changed under it — but these are powers, held by an address.
Contracts: contracts/src/predict/ · Open prediction markets
2.4 NFT launchpad — Not built
Collections on the same terms as tokens: a fixed supply, a mint that seeds liquidity nobody can pull, and royalties that keep paying after the last piece is minted. Last in the roadmap, after the prediction markets.
Review state. Nothing to review. No contracts have been written, so there is nothing to assess, nothing to test and nothing deployed. This entry exists so the absence is stated rather than inferred from a gap in a list.
Known open risks.
- Every design decision is still open, including the ones that decide whether liquidity can be pulled.
Contracts: —
3. Reporting a vulnerability
If you have found something, we want to hear it before anyone else does. Email security@thehood.markets. That mailbox is monitored on the commitments in section 3.5.
3.1 Read this first: a contract bug cannot be patched
The launchpad contracts are immutable, and audited by Claude Fable 5. There are no proxies and no upgrade path. A vulnerability in deployed contract code therefore cannot be fixed in place, ever. Only three responses exist:
- Pause new launches on the factory, so no further projects are created under the affected code. By construction this can never block a claim, a sell or a graduation already owed to someone — an unaffected user is never trapped by our response.
- Deploy a new factory and point this site at it. Projects created under the old one keep running under the old one, on chain, unchanged.
- Warn holders publicly, as loudly and as specifically as we can.
This changes what a report achieves, so it is stated up front rather than discovered during triage. The value of an early report is that people can be warned and can exit while a curve is still trading. Speed genuinely matters here in a way it does not on a normal web product.
3.2 In scope
- The website — thehood.markets and everything it serves.
- The API routes —
/api/quoteand/api/upload. - The launchpad contracts on Robinhood Chain (chain 4663): the launch factory, the curve deployer, the bonding curves, the launch tokens, the graduation adapter and the liquidity locker. The factory this site currently reads is
0x74E485d9610Ed956bcac9C5Ce7EC4ccE7E023b7D; every other contract in the system is reachable from it.
The findings we care most about, in order: anything that can move value that is not yours, anything that can remove or reduce locked liquidity, anything that can redirect or steal creator or holder fees, anything that lets a curve or pool be manipulated at another trader’s expense, and anything that lets a project be launched impersonating a contract or address it does not control.
3.3 Out of scope
- Robinhood Chain itself, its RPC endpoints and its block explorer — report those to their operators.
- Uniswap V4, its PoolManager and periphery — report those to Uniswap.
- IPFS gateways and pinning providers, and third-party wallet software.
- Volumetric denial of service, and any test that degrades the site for other people. Do not run one.
- Missing security headers, missing SPF/DMARC records, weak TLS ciphers, cookie flags and similar configuration observations with no demonstrated impact.
- Raw output from an automated scanner with no proof of concept, and reports whose entire content is a CVSS score.
- Social engineering of anyone, physical attacks, and phishing sites impersonating The Hood — those are worth telling us about, but they are abuse reports, not vulnerabilities.
- Economic outcomes that are how the system is designed to work: a token going to zero, a creator selling their own allocation, a curve never reaching its target, price impact on a large trade, ordinary MEV. See the risk notice.
3.4 How to report
Email security@thehood.markets with, as far as you can:
- the exact contract address or URL affected, and the chain it is on;
- steps to reproduce — a failing test, a script or a transaction hash beats a description;
- the impact: what an attacker gains, whose funds are at risk, and how much;
- any preconditions the attack needs;
- how you would like to be credited, or that you would rather not be.
We publish no PGP key, so do not assume the email is encrypted in transit beyond ordinary transport security. If a finding is severe enough that this matters, send a short message with no detail and ask for a channel — or reach us on X at @thehoodmarkets and we will come back to you. Do not post the detail publicly to get our attention.
3.5 What we commit to
- Acknowledgement within 3 business days — from a person, not an autoresponder.
- An assessment and a plan within 10 business days, stating plainly which of the three responses in section 3.1 we are taking, and why.
- Keeping you updated until it is resolved, and telling you when we disagree that something is a vulnerability rather than going quiet.
- Credit in the public disclosure if you want it.
There is no funded bug bounty. We would rather say so than imply a payment that does not exist. Rewards, if any, are discretionary and case by case. Report it because a broken launchpad hurts real people, not because a payout is promised.
3.6 Safe harbour
We will not pursue or support legal action against anyone who researches in good faith within the scope in section 3.2, and we will say so publicly if a third party misreads your work as an attack. That protection applies as long as you:
- access only your own accounts and data — never another user’s funds, keys or personal information;
- take only the minimum needed to prove the finding. Prove that value can be extracted; do not extract it. Any value taken must be returned in full.
- avoid degrading the service for other people, and stop the moment you have your proof of concept;
- give us a reasonable chance to respond before disclosing publicly — 90 days, or sooner once a fix or warning is out. If we go silent past the commitments in section 3.5, publish; that is on us.
If in doubt about whether something is in scope or whether a test crosses a line, ask first. We would much rather answer a question than argue about it afterwards.
4. The security audit
19 findings9 fixed10 open
Dated 15 August 2026, and performed by Claude Fable 5 across six surfaces — smart contracts, the prediction market, frontend, API, database and performance. Every Critical and High finding is fixed with executable exploits and regression tests: the five contract findings, the prediction market’s settlement and census findings (fixed before those contracts deployed on 15 August 2026), and the database migration drift. The remaining application findings (frontend, API, performance) are reported here and still open. The contracts were reviewed at commit 11d8d75 and the fixes landed in 32b5fec, so the reviewed commit still contains the vulnerable code and the later one does not.
Read the full report — the whole document as a page, or download the PDF.
4.1 Findings
| ID | Severity | Finding | Status |
|---|---|---|---|
| A-1 | Critical | Pool squatting permanently bricks any launch | Fixed |
| A-2 | Critical | Owner could redirect graduation and take every future raise | Fixed |
| A-3 | High | A fee recipient that refuses ETH permanently wedges the locker | Fixed |
| A-4 | Medium | Deploy script aliasing put the test configuration onto production | Fixed |
| A-5 | Medium | Any holder could shift the graduation price by donating tokens | Fixed |
| A-6 | Low | Anti-snipe cap is defeated by splitting across wallets | Open |
| A-7 | Low | Owner test launches obtain 75% of supply for a negligible sum | Open |
| A-8 | Low | CurveDeployer is permissionless; unregistered curves can be forged | Open |
| A-9 | Info | Graduation is MEV-visible, but the obvious sandwich loses money | Open |
| D-1 | High | Indexer tables are in the schema but no migration creates them | Fixed |
| C-1 | Medium | Unauthenticated report ingest is a storage/cost denial of service | Open |
| B-1 | Medium | Report retention & delete-on-request are promised but unimplemented | Open |
| C-2 | Low | RPC endpoint URLs disclosed to a signed-in non-owner on read failure | Open |
| C-3 | Low | Client-claimed redaction flag can mislabel stored data | Open |
| E-1 | Medium | Launch grid does N+1 chain reads per page | Open |
| E-2 | Medium | On-chain reads are not pinned to the displayed block | Open |
| F-1 | Critical | Market settlement reads a manipulable spot metric — the pot can be stolen | Fixed |
| F-2 | High | A market can be forced to settle YES by graduating the curve for gas | Fixed |
| F-3 | High | The anti-sybil holder census double-counts across sweep pages | Fixed |
4.2 What is still open
Four contract findings were accepted rather than fixed, because fixing them would cost more than they take. They are real, and you should know them before you trade:
- The anti-snipe cap can be defeated by splitting a buy across several wallets. The early-window cap is per wallet, and nothing on chain can tell one person with ten wallets from ten people.
- Owner test launches can obtain most of a supply cheaply under the development graduation target. This is a deployment-configuration risk, not a bug in the curve.
- Curves can be deployed without going through the factory. Only launches the factory registered are authentic — always check a token against the factory rather than trusting a link.
- Graduation is visible to MEV. The transaction that graduates a curve is public before it lands, and can be traded around.
The six open application findings in the table above — report retention, the unauthenticated ingest limits, the RPC-URL disclosure, the redaction label, and the two performance items — are queued for fixes rather than accepted. None of them can move funds.
4.3 What would change this
A review by an established firm. It is warranted before this platform holds meaningful value. The contracts are immutable, so a review that finds something serious means redeploying rather than patching — which is part of the risk you take.
The exploits and regression tests are in the public repository, so any reader can run them rather than taking the table above on trust.
5. Verifying us
Anyone can create a token with any name, including ours, and phishing sites copy launchpads closely. Check the domain in the address bar, check that the factory address in section 3.2 matches what your wallet is about to interact with, and treat any message asking for a seed phrase or a “validation” transaction as theft. We will never ask for either.
The Hood’s contracts are immutable, audited by Claude Fable 5. Nothing on this site is financial, investment, legal or tax advice.