Less setup.
More fuzzing.
Automated Solidity fuzzing. Fuzzy helps you define invariants, builds the harnesses, and runs GCTM-seeded fuzzing to find bugs in your contracts.
How it works
1Connect GitHub
Sign in, install Fuzzy, and choose a repository and branch.
2Choose your campaign
Pay for your duration and parallel instances.
3Plan in an issue
Fuzzy reads your code and docs, suggests invariants, and asks your team about intended behavior and custom test scenarios.
4Run and review
Approve the plan. Fuzzy prepares the harnesses, runs GCTM-seeded fuzzing, and posts findings in the same issue.
snowy-staking / Issues
Define invariants for SnowyStaking #42
Campaign settings
23 invariants1 instance
4 instance-hours · 16 CPU cores in parallel
Report in GitHub
1 invariant brokenPartial withdrawals leave a stale total
totalStaked == Σ userStakeAlice’s balance decreases, but the global total doesn’t. This discrepancy could affect reward calculations or later withdrawals.
Reproducing sequence
alice.stake(100)User: 100 · Total: 100alice.unstake(40)User: 60 · Total: 100Expected total: 60. Actual total: 100.
Findings include broken invariants, reproducing transactions, and what they could mean.
Goal-conditioned
transaction model
GCTM uses our proprietary transformer architecture to suggest deep transaction sequences based on your invariants.
It complements your fuzzer with sequences that can go beyond the familiar scenarios and assumptions in human- and LLM-written seeds.
totalStaked == Σ userStakealice.approve → bob.approve → alice.stake → bob.stake → alice.unstake → bob.stake → alice.unstakeapprove → stake → fundRewards → advanceTime → claim → unstake → claimalice.stake → bob.stake → fundRewards → alice.claim → bob.unstake → alice.unstakeGCTM-seeded fuzzing, compared
Preview dataRecon
Broken invariants
| 24 hours | Lowest | Median | Highest |
|---|---|---|---|
| Recon | 6 | 7 | 10 |
| + GCTM | 8 | 9 | 13 |
Data and methodology
The measured benchmark will compare three independent 24-hour runs per configuration, using the same contracts, invariants, hardware, and campaign time budget. Lines show the median; shaded bands show the lowest and highest counts.
The current chart is a preview based on archived Recon traces and modeled GCTM uplift. Fuzzy’s own measured results will replace these values. Broken invariants count violated properties, rather than distinct exploits.
Pricing
Choose how long Fuzzy runs and how many instances work in parallel. Each instance has 16 CPU cores and 32 GiB of RAM.
Campaigns start at $20 for four hours on one instance. Longer runs cost less per hour, with additional discounts for parallel instances.
1 instance
4 instance-hours · 16 CPU cores in parallel
Provisional pricing. No payment is taken in this demo.
Your credits
$0.00
Add credits to use when approving a run in GitHub.
I’ve read
SnowyStaking.soland the docs. Should this hold after every successful transaction?totalStaked == Σ userStakeWhich interactions worry you?