Python-based Solidity development, testing, and fuzzing framework by Ackee Blockchain (formerly known as Woke). Ships built-in static-analysis detectors, property-based fuzzing, and a VS Code/LSP server.
- 01Python-flavored Solidity testing
- 02stateful / property fuzzing
- 03static analysis detectors
- 04auditor workflows
- 05cross-chain test scenarios
- pipx install eth-wake
- wake init
Use Wake when the team prefers Python for Solidity testing or wants integrated detectors. Run `pipx install eth-wake` then `wake init` in a project that already has Foundry/Hardhat sources. Generate Python types with `wake up pytypes` and write tests under `tests/` using the `@chain.connect()` decorator and `Account`, `default_chain`, and `Address` helpers. Run static checks with `wake detect all` and stateful fuzzing with `wake test tests/test_fuzz.py --proc 8`. The VS Code extension `Tools for Solidity` provides live detectors and references.
- ⚑Package was renamed from `woke` to `eth-wake` — old `pip install woke` installs the abandoned 1.x line. CLI binary is now `wake`, not `woke`.
- ⚑Requires Python 3.8+ and a matching `solc` per file; let Wake's solc-manager pick versions instead of relying on a system solc.
- ⚑Pytypes are regenerated from compiled artifacts; if you edit a contract and forget `wake up pytypes`, tests silently run against stale ABI.
- ⚑Stateful fuzzing campaigns are CPU-bound — set `--proc` to physical cores, and persist corpora between runs or you lose coverage history.
- ⚑Detector output is best-effort static analysis — combine with Slither/Halmos for high-assurance audits.