PROPERTY BASED TESTING

15 articles tagged "property based testing"

2025-05-19·12 min read

Property Design Patterns for DeFi Lending Protocols

A practical catalog of invariant property patterns for lending protocols — from solvency and utilization bounds to liquidation health checks — with Solidity code for each.

By Nican0r
invariant-testingproperty-based-testingfuzzing
2025-12-15·9 min read

Stateful Fuzzing Explained: Why Sequence Matters in Smart Contract Testing

Most smart contract bugs only manifest after a specific sequence of transactions. Stateful fuzzing explores these sequences automatically — here is how it works and why it matters.

By Antonio
stateful-fuzzingfuzzingproperty-based-testing
2025-03-31·10 min read

How to write your first invariant test

A hands-on tutorial that walks you through writing three invariant properties for a simple ERC-20 vault, then running them with Foundry and Echidna. Working test suite in 30 minutes.

By Nican0r
invariant-testingproperty-based-testingfuzzing
2025-06-02·10 min read

What is smart contract fuzzing?

Smart contract fuzzing throws millions of random inputs at your contracts to find states that violate your security assumptions. Here's how it works, what it catches, and how to get started.

By Deivitto
fuzzingsmart-contract-securityinvariant-testing
2025-08-04·9 min read

7 common smart contract fuzzing mistakes (and how to fix them)

Your fuzzer ran for 24 hours and found nothing. That doesn't mean your code is safe — it might mean your campaign was broken. Here are the seven mistakes we see most often and how to fix each one.

By Deivitto
fuzzinginvariant-testingsmart-contract-security
2026-03-03·11 min read

Halmos symbolic execution for smart contracts: setup, limitations, and when it beats fuzzing

Fuzzers sample randomly. Symbolic execution explores every path. Halmos brings symbolic execution to Foundry — but it's not always the right tool. Here's when it wins and when fuzzing is better.

By Deivitto
fuzzinginvariant-testingsmart-contract-security
2026-02-02·16 min read

Advanced invariant testing techniques for DeFi protocols

Beyond basic property writing. Ghost variables, temporal properties, conditional invariants, bounding inputs, handling oracles, and debugging failing invariants.

By Nican0r
invariant-testingfuzzingproperty-based-testing
2025-11-03·14 min read

Solana smart contract fuzzing: Trident, Honggfuzz, and property testing

Solana fuzzing is years behind EVM but catching up fast. Here's how to use Trident, honggfuzz, and proptest to find bugs in your Solana programs.

By Kn0t
fuzzingsolanaproperty-based-testing
2025-08-18·14 min read

Fuzzing Rust smart contracts: CosmWasm, Solana, and cargo-fuzz

Rust smart contracts run on Solana, CosmWasm, and more. Here's how to fuzz them all with cargo-fuzz, proptest, and ecosystem-specific tools.

By Kn0t
fuzzingrustsolana
2025-07-14·14 min read

Move smart contract security: testing patterns for Aptos and Sui

Move's type system prevents some Solidity bugs but introduces new ones. Here's how to test Move contracts on Aptos and Sui, including the built-in Move Prover.

By Deivitto
formal-verificationsmart-contract-securitymove
2025-12-22·14 min read

AMM and DEX invariant testing: properties every swap protocol needs

Every AMM needs these properties: constant product conservation, fee accounting, LP share math, and sandwich resistance. Here's the complete invariant suite.

By Nican0r
invariant-testingfuzzingdefi-security
2026-03-29·14 min read

LLM-generated invariant properties: what works, what hallucinates, how we use them

We've tested LLM-generated properties across dozens of engagements. Some are surprisingly good. Some are dangerously wrong. Here's what we've learned.

By Deivitto
ai-auditinginvariant-testingfuzzing
2026-04-05·14 min read

Fuzzing ZK circuits: testing Noir and Circom with property-based approaches

ZK circuits need testing too. Under-constrained circuits, missing range checks, and witness mismatches are the reentrancy bugs of the ZK world. Here's how to fuzz them.

By Deivitto
fuzzingzkproperty-based-testing
2025-05-05·14 min read

Differential testing for smart contracts: comparing implementations to find bugs

Two implementations of the same spec should behave identically. When they don't, you've found a bug. Here's how to set up differential testing for smart contracts.

By Antonio
fuzzingdifferential-testingproperty-based-testing
2026-04-03·11 min read

Why we built Chimera: write once, fuzz everywhere

Every fuzzer needs different test code. Chimera lets you write properties once and run them with Foundry, Echidna, and Medusa — no rewrites, no lock-in. Here's why we built it and how the architecture works.

By Kn0t
chimera-frameworkfuzzinginvariant-testing

Need help securing your protocol?