Skip to content

Brownie

Brownie is a Python framework for compiling, testing and operating Solidity and Vyper contracts with pytest. It continues publishing releases; selection or migration depends on compatibility, tests and team needs. Projects retain compiler versions, artifacts and network configuration to reproduce tests and reconstruct deployments. Python test models can compare calculated allocations with actual contract behaviour.

Written by Isaac GonzálezUpdated October 11, 2026

Key takeaways

  • Brownie connects EVM contracts to a Python-based development workflow.
  • Its pytest integration supports teams already using that testing stack.
  • Maintenance should assess dependencies and the scope of a possible migration.

What is Brownie?

Brownie is a Python framework for developing and testing EVM contracts. It combines Solidity and Vyper compilation, pytest tests and contract interaction scripts. It can fit teams maintaining calculation models, analysis or operational processes in Python and connecting them with on-chain behaviour.

The project published releases during 2026 and should not be described as abandoned. Ape is a Python ecosystem alternative with a different architecture; its existence does not establish that Brownie was officially replaced or that every existing project needs to migrate to another framework.

How it works

Projects organise contracts, tests, scripts and network settings. Compiled artifacts support deployment and interaction from Python. Tests can use fixtures and pytest tooling to prepare accounts, execute scenarios and compare outcomes with a reference model of the intended business rules.

Local networks and fork capabilities depend on configuration and tools compatible with the selected version. Pin Python, Brownie, compilers and dependencies, then verify the same environment in continuous integration. Documentation for an older release does not establish compatibility of a new installation or its dependencies.

What Brownie offers

For a distribution contract, tests can calculate allocations in Python and compare them with contract execution. This helps check rounding, limits and amount conservation without manually duplicating every scenario. Test data should also include boundary values and participants lacking the required authorisation.

Maintenance scripts can inspect permissions, reconstruct events or prepare administrative operations. Delivery records retain networks, addresses and parameters. Keys stay outside the repository, and state-changing actions must be distinguished from simulations and queries even when they share helper functions or run within the same environment.

Limitations and selection criteria

Choosing between Brownie, Ape, Hardhat and Foundry depends on existing code, team experience and testing needs. Migration may resolve a troublesome dependency or simplify maintenance, but should not rest on an incorrect statement about the project's maintenance status.

Before migration, reproduce the current suite and compare artifacts, events and results in the destination environment. Moving away from Python can require rewriting models and scripts. Estimate from that inventory rather than promise a fixed duration or automatic compatibility between frameworks with different APIs and configuration models.

Also known as

  • eth-brownie
  • Brownie framework
Development at Metlabs

How we approach a project with Brownie

Development capabilities and use cases to assess how Brownie fits your product.

What we build with Brownie at Metlabs

  • Python-first projects

    Contract maintenance in environments where the main stack is already Python.

  • Tests with pytest

    Integration with pytest for teams already using this testing suite.

  • Python deployment scripting

    We automate deployments and on-chain interaction in Python for teams whose data tooling already lives in that language.

  • Use case

    Quant protocol maintenance

    Quant teams preferring Python that need to maintain existing smart contracts.

  • Use case

    Backtesting and on-chain analysis

    Quant teams that test strategies against chain data and prefer to keep the whole flow in Python.

Related content

Go deeper on Brownie

Other Metlabs pages that expand on this entry.

Building with Brownie?

We analyze your case, pick the right stack and ship a production-ready solution.

Tell us about your project

As featured in

CointelegraphInvesting.comEl EspañolEmprendedoresEl ObservadorCriptoNoticias