← Protocols
Wake
01Description

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.

02Best for
  • 01Python-flavored Solidity testing
  • 02stateful / property fuzzing
  • 03static analysis detectors
  • 04auditor workflows
  • 05cross-chain test scenarios
03Install
  • pipx install eth-wake
  • wake init
05Prompt snippet
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.
06Gotchas
  • 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.
07Alternatives