Ackee-Blockchain

wake: Test and Fuzz Solidity Smart Contracts

Wake is a Python-based framework for testing and fuzzing Solidity contracts, with static-analysis detectors and IDE support. It suits Ethereum developers and security teams that want contract testing and vulnerability checks in a Python workflow.

View on GitHub Compare
Stars
376
Forks
60
Stars, last 30 days
+2
Last commit
4 months ago
Contributors
19

Our take

Quietno commits in the last 90 days

Health score

29/100

How it is scored
Activity
37
Community
36
Issues
21
Pull requests
20

+2 stars in the last 30 days

Wake brings testing, fuzzing, static analysis, and Solidity editor support together in a Python framework, but its recent development activity is quiet and concentrated among one contributor.

Good fit if

  • Your team writes Solidity and wants fuzz testing plus built-in detectors in a Python-based workflow.
  • You already use pytest and can run Python-based contract tests against supported local development environments.
  • You want Solidity language-server or VS Code support alongside testing and analysis.

Look elsewhere if

  • Your team needs evidence of frequent recent code changes or issue and pull-request handling, since there have been no commits, closed issues, or merged pull requests in the measured recent period.
  • You want a project whose maintenance is broadly distributed, since most contributions come from one person.
  • Your workflow is not Python-based or you need a tool focused on a different smart-contract language.
All health signals
Last commit2026-06-21 (4 months ago)
Commits, last 90 days0
Releases, last 12 months5 (latest v5.0.0rc2, 2026-04-12, pre-release)
Contributors19 (top contributor: 90% of commits)
Issues closed, last 90 days0
Pull requests merged, last 90 days0
Project age4 years

Checked on 2026-10-14 with the GitHub API.

Project history

Daily GitHub snapshots since Oct 7, 2026. History covers stars and forks; health signals are not tracked historically.

Selected snapshot

Stars

378

Forks

62

Change since Nov 14, 2026: 0 stars·0 forks

Overview

Wake is a Python framework for developing and testing Solidity smart contracts. It combines pytest-based tests with guided and property-based fuzzing to explore contract behavior and uncover bugs that ordinary test cases may miss.

It also includes static-analysis detectors, code printers, a Solidity language server, and tools for deployments and mainnet interactions. It is aimed at Solidity developers and auditors who want testing and analysis in a Python-centered workflow, rather than only a compiler or deployment tool.

Key Features

  • Write contract tests using a pytest-based framework.
  • Fuzz contract behavior with generated inputs, sequences, and invariants, while allowing manually guided test flows.
  • Run built-in vulnerability and code-quality detectors, or extend the static-analysis framework with custom detectors.
  • Use printers to extract information about Solidity code.
  • Connect tests to Anvil, Hardhat, or Ganache environments and interact with deployed contracts.
  • Use the Solidity language server and VS Code extension for editor feedback, references, and hints.
  • Manage Solidity compiler versions with the included solc version manager.
  • Add detector runs to CI with Wake's GitHub Actions.

Use Cases

  • Solidity developers can add invariant and fuzz tests when example-based tests do not cover enough contract state transitions.
  • Smart-contract security teams can run detectors and targeted fuzz tests during audits or before deployment.
  • Python teams building Ethereum applications can use familiar pytest-style testing alongside Solidity contract code.
  • Maintainers can add Wake detector runs to CI to check contract changes as part of their development workflow.

What you need

Detected in the repository

  • Python (from pyproject.toml)
  • A Dockerfile, so it can run in a container
  • A test suite and automated checks on GitHub Actions

License in plain words

ISCpermissive

  • Commercial use: yes
  • Modify and redistribute: yes
  • You must keep: the copyright and license notice
  • Share your changes: no

A summary, not legal advice: the LICENSE file is what applies.

Getting Started

Install Wake with pip:

pip3 install eth-wake

See the README and documentation for setup and usage details.

Alternatives

  • trident: Trident fuzzes Solana programs in Rust, while Wake tests and fuzzes Solidity contracts on Ethereum.
ProjectLanguageLicenseStarsStatus
wakePythonISC376Quiet
tridentRustMIT407Quiet

Considerations

The project is marked quiet: it has had no commits in the measured recent period, despite publishing releases during the past year. Most contributions come from one person, and the measured period also shows no closed issues or merged pull requests. Teams adopting it should assess whether this maintenance pattern suits their support expectations.

Wake requires Python. The README also notes that Rosetta must be enabled on Apple Silicon Macs. The repository is licensed under ISC, so review the license terms for your distribution and compliance needs.

Found this useful?

Share it with someone who would like wake.

Comparisons