Find the bug that moves the money.
Scorpio analyses public Solidity repositories, reconstructs how value moves and delivers reproducible evidence before the bug reaches a bug bounty or production.
From a repository to evidence you can check.
Scorpio treats every analysis as a technical chain of custody. First it decides whether the repository is in scope, then it compiles, models and seals the result.
Admission
It checks the public URL, the commit and the real size of the project's own code.
Free · no commitmentCompilation
It resolves the Foundry project and separates the project's own code from its dependencies.
Isolated environmentEconomic map
It follows states, privileges and the routes value can travel along.
Cross-contract contextSweeps
It runs the applicable families and ranks the signals by economic impact.
Deterministic engineDelivery
It writes the report with the findings ranked and returns it alongside the exact commit that was analysed.
Reproducible resultCheck whether your repository is in scope.
The preflight counts your own Solidity and your dependencies' before any payment is opened, and the real service does it: it clones the repository and reads its tree, without compiling it and without running anything from it. It is free, it is rate-limited, and a repository that is out of scope is rejected here instead of being charged for and failing later.
- ✓ URL and commit identified
- ✓ Own code separated from third-party code
- ✓ Price fixed before you authorise the payment
One offer available. The rest, visible as what is coming.
This site separates what you can buy today from the products still in preparation.
Full audit
exact price
Automated review of the ten economic families over public Foundry repositories of up to 1,200 of your own Solidity files.
Check a repository ↗What it includes
- 10 families of economic analysis
- 49 catalogued static sweeps
- 1,200 of your own files at most
- SHA-256 seal of the report and the audited commit
The active product analyses the repository's code. It does not read the current on-chain state.
Catalogue in preparation
Designed and defined internally. Not yet available for payment.
Quick Scan
A first signal for agents and automations before they interact.
- Up to 25 files
- The same 10 families
- JSON delivery
Deep Economic
Extended economic analysis for higher-value automated decisions.
- Up to 150 files
- 10 families + on-chain state
- Sealed delivery
Large Repository
Price scaled to size, for large repositories and monorepos.
- Up to 1,200 files
- On-chain state included
- Quoted by scope
Scorpio Developer
A web experience for developers, paid by Web3 wallet or card.
- Up to 150 files
- Visual report
- Web3 or card
Protocol Release
A large repository with an executive report and repeat runs over new commits.
- Up to 1,200 files
- On-chain state included
- Once repeat runs are stable
All five are written into the service catalogue and switched off with a flag. None of them prices by “how many detectors run”: what changes is the size CAP it accepts, what it delivers and whether it reads on-chain state, which is the only thing that genuinely makes the work more expensive.
More signal per alert in the first shared benchmark.
Across five official CodeHawks cases, Scorpio matched 12 findings from the official list against Slither's 5, and raised 26 alerts in total against 63.
2026ENGINE 890777…
This is a small sample of five contests, not proof of general superiority. Scorpio's column was measured on 9 September 2026 with engine 890777033a8fc952…, over three identical repeat runs. The fingerprint of the deployed engine is shown at the top of this page: if it does not match, the measurement comes from an earlier engine and has not been repeated with today's. Slither's is from version 0.11.5 over the same frozen cases, measured on 6 September; Slither has not changed between the two dates.
What the 14 unmatched alerts actually are, because calling them “wrong” would be inaccurate: four are informational severity —three notices about a contract without events and one note on token assumptions—, context the engine delivers on purpose and that does not compete in a list of vulnerabilities; three say something true about the code, that the value returned by an ERC-20 transfer is not checked, which the contest did not accept as a finding; and one is a one-way switch the engine flags as a suspicion because whether that was intended is for a person to decide.
Of the remaining six, five are the same bug as an entry on the official list, under another name. The comparator pairs findings by requiring the detector to be named exactly like the label's family, so when the engine gets the bug right and names it by its cause instead of its effect, the score penalises it twice: the label is counted as missed and the finding as wrong. The five pairs have been checked one by one, on the same contract and, in four of them, the same function: the lock that never closes in refund is CH-05's reentrancy; the deadline that can be rewritten is CH-07; the unbounded loop over claimants is MC-08; the signature that does not bind the implementation is SP-01; and the digest without a typehash is SP-02. The sixth says something true that the list does not cover.
That adjudication is by hand and not impartial: it was done by the person who works on the engine. That is why the figures this page stands behind are still the mechanical ones. Counted with the five pairs accepted, it would be 17 matched and 9 unmatched, that is 65.4% precision and 35.4% coverage. It is stated so the difference can be seen, not so it can be claimed.
Scorpio52,6%An engine that measures itself.
Every detector faces a contract written to make it fire and another, almost identical, written to make sure it does not. A change that breaks either one turns the bench red, and without a green bench the image that serves orders is not built.
The mutation score changes one line of the engine on purpose and checks that the bench notices. Whatever the bench misses is written down one by one with the reason: why that line cannot change the result, or what case would be needed to make it. Today there are none left unread.
Ten families to follow economic risk.
Each family groups sweeps that look for one concrete way of breaking invariants, seizing privileges or diverting value.
Accounting
Balances, rounding, fees and conservation of value.
6 sweepsOracles
Prices, freshness, scales and manipulable dependencies.
4 sweepsSignatures
Replay, domains, nonces and cryptographic authorisations.
8 sweepsPrivileges
Roles, setters, initialisation and control escalation.
7 sweepsReentrancy
External interactions and unsafe state changes.
4 sweepsStorage
Collisions, layout and corruption after upgrades.
4 sweepsState machines
Impossible transitions, deadlocks and skipped phases.
6 sweepsTrapped funds
Exit routes that are missing or gated forever.
4 sweepsEncoding
Collisions, calldata and serialisation assumptions.
5 sweepsRandomness
Predictable sources with an impact on economic outcomes.
1 sweepA delivery that leaves a trail.
The report connects every signal to its place in the code, and travels with the exact commit it was produced against.
Vulnerable value invariant
Ranked findings
Severity, confidence, location and expected economic effect.
Technical evidence
Code paths and enough context to reproduce the signal.
Provenance
The exact commit and tree of the clone that was analysed, returned alongside the report.
What was not measured
If a sweep did not finish, the order comes out marked INCOMPLETE and the report says so. Silence is never presented as “there is nothing here”.
What Scorpio claims.
And what it does not.
✓ It does deliver
- Automated, repeatable analysis
- Ranking by economic impact
- Evidence tied to the code analysed
- The exact commit and the report's seal
- An explicit state for the run
× It does not promise
- Zero false positives
- Total coverage of vulnerabilities
- Always finding a bug
- Equivalence with a human audit
- Automatic eligibility for bounties
Before you launch an analysis.
The technical and commercial conditions that matter most, explained without small print.
Read the full terms ↗Does Scorpio replace a human audit?
No. It narrows the search space and brings repeatable evidence, but it does not certify that the contract is safe, nor does it cover all the reasoning of a human review.
What can I analyse today?
Public repositories compatible with Foundry, accepted by the preflight and with at most 1,200 of your own Solidity files. The active product does not read on-chain state.
When are you charged?
First the free preflight runs. If the repository is in scope, Scorpio returns the exact offer. The analysis starts once the x402 payment is verified.
What happens if the engine fails?
The order ends in the FAILED state and the service price is refunded in accordance with the terms. Network fees outside Scorpio's control are not part of that refund.
How long does it take?
The catalogue estimates around five minutes of execution for the active product. It is a technical estimate, not an SLA: size, compilation and the queue can all change the total time.
What do DONE and INCOMPLETE mean?
DONE means the expected delivery finished. INCOMPLETE means a partial delivery exists, with its limits documented. PENDING and FAILED describe a run that is pending or failed. EXPIRED appears once the 30 days of retention have passed and the delivery has been deleted.
Can I submit a private repository?
Not with the current product. Do not send credentials, tokens or private URLs. The public offer is designed for repositories reachable without authentication.
How is the result verified?
Every order returns the exact commit and tree of the clone that was analysed, so any finding can be pointed at a concrete revision and looked at again. The engine version running at any moment is public at /health, with its content fingerprint.
Before you trust value to it,
check the code.
The preflight is free and confirms the scope before any payment request is created.
Check a repository ↗