Skip to content

Latest commit

 

History

History
193 lines (160 loc) · 12.4 KB

File metadata and controls

193 lines (160 loc) · 12.4 KB

Master Campaign List - Solidity Property Testing Framework Research

Overview

This document tracks all public fuzzing campaigns to analyze for building a comprehensive property/invariant testing framework.

Source: https://github.com/perimetersec/public-fuzzing-campaigns-list Total Campaigns: 60 Research Started: 2026-01-30 Last Updated: 2026-01-30


Progress Summary

Status Count Percentage
✅ Done 60 100%
⬜ Pending 0 0%

🎉 ALL CAMPAIGNS ANALYZED - FRAMEWORK COMPLETE


Echidna & Medusa Campaigns (48 total)

# Project Repository Authors Date Status
1 Centrifuge V3 https://github.com/centrifuge/protocol/tree/wf/feat/recon-invariants/test/integration/recon-end-to-end Alex The Entreprenerd, nican0r (Recon) 2025-10 ✅ Done
2 Superform https://github.com/superform-xyz/v2-periphery/tree/dev/test/recon Alex The Entreprenerd, nican0r (Recon) 2025-09 ✅ Done
3 Very Liquid Vaults https://github.com/rheo-xyz/very-liquid-vaults Antonio Viggiano 2025-08 ✅ Done
4 DODO Cross-Chain DEX https://github.com/pyk/dodocc-fuzz/tree/main/test/fuzzing pyk 2025-06 ✅ Done
5 Strata https://github.com/Strata-Money/contracts/tree/master/test/recon Giovanni Di Siena (Cyfrin) 2025-06 ✅ Done
6 Bunni https://github.com/Bunniapp/bunni-v2/tree/main/fuzz Tutturu (Trail of Bits) 2025-05 ✅ Done
7 Origin Protocol WOETH https://github.com/perimetersec/origin-woeth-fuzz Rappie (Perimeter) 2025-04 ✅ Done
8 EulerSwap https://github.com/euler-xyz/euler-swap/tree/enigmadark-invariant-suite/test/enigma-dark-invariants vnmrtz.eth (Enigma Dark) 2025-03 ✅ Done
9 eBTC BSM https://github.com/ebtc-protocol/ebtc-bsm/tree/main/test/recon-core Alex The Entreprenerd, nican0r (Recon) 2025-03 ✅ Done
10 Gamma https://github.com/CodeHawks-Contests/2025-02-gamma/tree/main/test/fuzzing/echidna FORKFORK DOG (Guardian Audits) 2025-02 ✅ Done
11 Aave v3.3 https://github.com/bgd-labs/aave-v3-origin/tree/main/tests/invariants vnmrtz.eth (Enigma Dark) 2025-02 ✅ Done
12 Nerite https://github.com/Recon-Fuzz/nerite/tree/invariant-testing/contracts/test/recon Alex The Entreprenerd, nican0r (Recon) 2025-02 ✅ Done
13 Abracadabra OFT https://github.com/GuardianAudits/abra-oft-fuzzing/tree/abra-suite/test/fuzzing-oft dirtymic (Guardian Audits) 2024-12 ✅ Done
14 Liquity Governance V2 https://github.com/liquity/V2-gov/tree/main/test/recon Alex The Entreprenerd, nican0r (Recon) 2024-11 ✅ Done
15 Immutable zkEVM Bridge https://github.com/perimetersec/zkevm-bridge-contracts-fuzz/tree/main/test/fuzzing 0xScourgedev (Perimeter) 2024-10 ✅ Done
16 Uniswap V4 https://github.com/trailofbits/v4-core/tree/add-stateful-properties/test/trailofbits Benjamin Samuels (Trail of Bits) 2024-09 ✅ Done
17 Centrifuge Core https://github.com/centrifuge/liquidity-pools/tree/main/test/recon-core Alex The Entreprenerd (Recon) 2024-08 ✅ Done
18 Centrifuge Aggregator https://github.com/centrifuge/liquidity-pools/tree/main/test/recon-aggregator Alex The Entreprenerd (Recon) 2024-08 ✅ Done
19 Algebra https://github.com/cryptoalgebra/Algebra/tree/integral-v1.2.1/src/core/contracts/test/echidna 0xVolosnikov 2024-07 ✅ Done
20 Size Credit https://github.com/SizeCredit/size-solidity/tree/main/test/invariants Antonio Viggiano 2024-06 ✅ Done
21 Origin Protocol OETHVault https://github.com/perimetersec/origin-oeth-fuzzing Rappie (Perimeter) 2024-05 ✅ Done
22 Angels Squad https://github.com/xluckydegen/launchpad-contracts/tree/main/contracts/echidna 0xharold (MAMA AI) 2024-05 ✅ Done
23 Euler Vault Kit https://github.com/euler-xyz/euler-vault-kit/tree/master/test/invariants vnmrtz.eth (Enigma Dark) 2024-05 ✅ Done
24 Euler Reward Streams https://github.com/euler-xyz/reward-streams/tree/main/test/invariants vnmrtz.eth (Enigma Dark) 2024-05 ✅ Done
25 snekmate (Vyper) https://github.com/pcaversaccio/snekmate/tree/modules/test/tokens/echidna pcaversaccio 2024-05 ✅ Done
26 Possum Labs https://github.com/ZealynxSecurity/Possum-Labs?tab=readme-ov-file#echidna bloqarl, Sergio (Zealynx) 2024-04 ✅ Done
27 Euler EVC Playground https://github.com/euler-xyz/evc-playground/tree/master/test/invariants vnmrtz.eth (Enigma Dark) 2024-03 ✅ Done
28 Abracadabra https://github.com/Abracadabra-money/abracadabra-money-contracts/tree/0e717e73662b840bb77eba196bd86d405decb154/test/fuzzing 0xScourgedev (Guardian) 2024-03 ✅ Done
29 BastionWallet https://github.com/ZealynxSecurity/BastionWallet/tree/main/src/echidna bloqarl, Sergio (Zealynx) 2024-02 ✅ Done
30 Curvance https://github.com/curvance/Curvance-CantinaCompetition/tree/develop/tests/fuzzing Nat Chin (Trail of Bits) 2024-02 ✅ Done
31 Autonolas https://github.com/ZealynxSecurity/Autonolas/tree/master/src/Echidna bloqarl, Sergio (Zealynx) 2024-01 ✅ Done
32 Drips Network https://github.com/perimetersec/drips-fuzzing Rappie (Perimeter) 2024-01 ✅ Done
33 Superfluid Finance https://github.com/superfluid-finance/protocol-monorepo/tree/dev/packages/hot-fuzz Unknown 2024-01 ✅ Done
34 BadgerDAO eBTC https://github.com/ebtc-protocol/ebtc/tree/main/packages/contracts/contracts/TestContracts/invariants Antonio Viggiano 2023-10 ✅ Done
35 Origin Protocol OUSD https://github.com/OriginProtocol/origin-dollar/tree/master/contracts/contracts/echidna Rappie 2023-09 ✅ Done
36 Kyber Network https://github.com/KyberNetwork/ks-elastic-sc/tree/main/contracts/echidna Unknown 2023-04 ✅ Done
37 Pods Finance https://github.com/pods-finance/yield-contracts/tree/main/test/invariants Antonio Viggiano 2023-03 ✅ Done
38 Ondo Finance https://github.com/ondoprotocol/tokenized-funds/tree/main/contracts/echidna Unknown 2023-02 ✅ Done
39 Sovryn Zero https://github.com/DistributedCollective/zero/tree/main/packages/contracts/contracts/TestContracts Unknown 2023-01 ✅ Done
40 Autonolas (old) https://github.com/valory-xyz/autonolas-governance/tree/main/audits/internal/analysis/fuzzing/VotingEscrow Alex Kuperman 2022-06 ✅ Done
41 Arbor Finance https://github.com/alwaysbegrowing/arbor-contracts/tree/main/contracts/echidna Unknown 2022-04 ✅ Done
42 MakerDAO dss-vest https://github.com/makerdao/dss-vest/tree/master/echidna Unknown 2022-04 ✅ Done
43 Primitive Finance https://github.com/primitivefinance/rmm-core/tree/main/contracts/crytic Nat Chin (Trail of Bits) 2022-02 ✅ Done
44 88mph https://github.com/88mphapp/88mph-contracts/tree/v3/contracts/echidna Trail of Bits 2021-08 ✅ Done
45 Uniswap V3 https://github.com/Uniswap/v3-core/tree/main/contracts/test Unknown 2021-04 ✅ Done
46 Convexity Protocol https://github.com/opynfinance/ConvexityProtocol/tree/dev/contracts/echidna Unknown 2020-10 ✅ Done
47 Aragon Staking https://github.com/aragon/staking/tree/82bf54a3e11ec4e50d470d66048a2dd3154f940b/packages/protocol/test/echidna Unknown 2020-09 ✅ Done
48 Monolith https://github.com/tokencard/contracts/tree/master/contracts/echidna Unknown 2020-09 ✅ Done
49 Circle FiatToken https://github.com/circlefin/stablecoin-evm/tree/master/echidna_tests Unknown 2018-08 ✅ Done

Foundry Invariant Testing Campaigns (12 total)

# Project Repository Authors Date Status
50 Contract Level Yield https://github.com/contractlevel/yield/tree/main/test/invariant Unknown 2025-10 ✅ Done
51 Ion Protocol https://github.com/Ion-Protocol/ion-protocol/tree/master/test/invariant/IonPool Hrik 2024-05 ✅ Done
52 Ajna Finance https://github.com/ajna-finance/ajna-core/tree/master/tests/forge/invariants Unknown 2024-01 ✅ Done
53 Alchemix https://github.com/alchemix-finance/v2-foundry/tree/master/src/test Unknown 2024-01 ✅ Done
54 Maple Finance https://github.com/maple-labs/maple-core-v2/tree/main/tests/invariants Unknown 2023-12 ✅ Done
55 Sablier V2 Core https://github.com/sablier-labs/v2-core/tree/main/test/invariant Paul Razvan Berg 2023-12 ✅ Done
56 Wrapped Ether https://github.com/horsefacts/weth-invariant-testing/tree/main horsefacts 2023-11 ✅ Done
57 DSS Conduits https://github.com/makerdao/dss-conduits/tree/master/test/arranger-conduit/invariants Unknown 2023-10 ✅ Done
58 Basin https://github.com/BeanstalkFarms/Basin/tree/master/test/invariant Alex Roan (Cyfrin) 2023-08 ✅ Done
59 LLama https://github.com/llamaxyz/llama/tree/main/test/invariants Unknown 2023-07 ✅ Done
60 Morpho https://github.com/morpho-org/morpho-data-structures/tree/main/test Unknown 2023-05 ✅ Done

Research Progress Tracking

Phase 1: Campaign Analysis ✅ COMPLETE

  • Analyze all 60 campaigns for property patterns
  • Extract common invariant categories
  • Document property naming conventions
  • Identify protocol-specific patterns

Phase 2: Framework Development ✅ COMPLETE

  • Create property classification taxonomy
  • Define structured data format for properties
  • Build property template library
  • Develop property generation guidelines

Phase 3: External Research ✅ COMPLETE

  • Review academic papers on smart contract verification
  • Analyze audit reports with invariants
  • Study formal verification approaches
  • Research industry best practices

Phase 4: Framework Consolidation ✅ COMPLETE

  • Create comprehensive property framework
  • Build detection patterns for AI
  • Develop operational manual
  • Create examples and case studies

Key Findings Summary

Property Categories Distribution (from analyzed campaigns)

Category Percentage
Accounting/Balance 25%
Collateralization 15%
State Machine 12%
Boundary/Limits 12%
Directional/Delta 10%
Temporal 8%
ERC Compliance 8%
Oracle 5%
Access Control 3%
Other 2%

Most Common Property Patterns

  1. Sum Equality: totalSupply == Σ balanceOf(user)
  2. Balance Consistency: actualBalance >= virtualBalance
  3. Monotonicity: accumulator_after >= accumulator_before
  4. Roundtrip Loss: redeem(deposit(x)) <= x
  5. Health Enforcement: healthFactor >= 1.0 for borrowers
  6. State Transitions: Valid lifecycle state machine
  7. Cap Enforcement: value <= cap
  8. Price Direction: zeroForOne => price decreases

Key Resources

Tools Documentation

Security Firms with Fuzzing Expertise

  • Trail of Bits (Crytic) - Echidna, Medusa
  • Perimeter Security (Rappie)
  • Recon (Alex The Entreprenerd)
  • Guardian Audits
  • Cyfrin
  • Enigma Dark
  • Zealynx Security

Academic Sources Reviewed

  • SMARTINV: Multimodal Learning for Invariant Inference (IEEE S&P 2024)
  • Demystifying Invariant Effectiveness (FSE 2024)
  • PropertyGPT: LLM-driven Verification (NDSS 2025)
  • FLAMES: Smart contract hardening via LLMs (2025)

Framework Deliverables

Document Version Purpose Status
01_PROPERTY_CLASSIFICATION_TAXONOMY.md 2.0 Property categorization, pattern detection ✅ Complete
02_PROPERTY_SCHEMA.md 2.0 Structured data format, JSON schema ✅ Complete
03_COMPREHENSIVE_FRAMEWORK.md 4.0 (FINAL) Operational manual, Chimera integration, Protocol checklists ✅ Complete

Framework Highlights

  • Classification: 10 categories (ACC, COL, STM, BND, DIR, TMP, ERC, ORC, ACL, OTH)
  • Pattern Detection: 45+ unique code patterns → property mappings
  • Structured Output: JSON/YAML schemas with 11 assertion operators
  • Code Generation: Templates for Chimera, Echidna, Medusa, Foundry
  • Protocol Checklists: 10+ protocol-specific discovery guides