Ethereum for Python Developers
Page last update: September 12, 2025
Use Ethereum to create decentralized applications (or "dapps") that utilize the benefits of cryptocurrency and blockchain technology. These dapps can be trustworthy, meaning that once they are deployed to Ethereum, they will always run as programmed. They can control digital assets in order to create new kinds of financial applications. They can be decentralized, meaning that no single entity or person controls them and are nearly impossible to censor.
Getting started with smart contracts and the Solidity language
Take your first steps to integrating Python with Ethereum
Need a more basic primer first? Check out ethereum.org/learn or ethereum.org/developers.
- Blockchain Explainedopens in a new tab
- Understanding Smart Contractsopens in a new tab
- Write your First Smart Contractopens in a new tab
- Learn How to Compile and Deploy Solidityopens in a new tab
- The state of Python in blockchain 2023 reportopens in a new tab
Beginner articles
- web3.py Overviewopens in a new tab
- Ethereum Python Ecosystem Touropens in a new tab
- A (Python) Developer's Guide to Ethereumopens in a new tab
- Prize-Worthy: An Ethereum Python Hackathon Guideopens in a new tab
- An Introduction to Smart Contracts with Vyperopens in a new tab
- How to develop Ethereum contract using Python Flask?opens in a new tab
- Intro to Web3.py · Ethereum For Python Developersopens in a new tab
- How to call a Smart Contract function using Python and web3.pyopens in a new tab
Intermediate articles
- Friends of web3.py: Intro to Apeopens in a new tab
- Dapp Development for Python Programmersopens in a new tab
- Creating a Python Ethereum Interface: Part 1opens in a new tab
- Ethereum Smart Contracts in Python: a comprehensive(ish) guideopens in a new tab
Advanced use patterns
- web3.py Patterns: Real-Time Event Subscriptionsopens in a new tab
- web3.py Patterns: WebSocketProvideropens in a new tab
- Compiling, deploying and calling Ethereum smartcontract using Pythonopens in a new tab
- Analyze Solidity Smart Contracts with Slitheropens in a new tab
- Blockchain Fintech Tutorial: Lending and Borrowing With Pythonopens in a new tab
Archived articles
- Deploy your own ERC20 Token with Python and Brownieopens in a new tab
- Using Brownie and Python to deploy Smart Contractsopens in a new tab
- Creating NFTs on OpenSea with Brownieopens in a new tab
Python projects and tools
Active:
- Web3.pyopens in a new tab - Python library for interacting with Ethereum
- Vyperopens in a new tab - Pythonic Smart Contract Language for the EVM
- Apeopens in a new tab - The smart contract development tool for Pythonistas, Data Scientists, and Security Professionals
- py-evmopens in a new tab - implementation of the Ethereum Virtual Machine
- eth-testeropens in a new tab - tools for testing Ethereum-based applications
- eth-utilsopens in a new tab - utility functions for working with Ethereum related codebases
- py-solc-xopens in a new tab - Python wrapper around the solc solidity compiler with 0.5.x support
- pymakeropens in a new tab - Python API for Maker contracts
- siweopens in a new tab - Sign in with Ethereum (siwe) for Python
- Web3 DeFi for Ethereum integrationsopens in a new tab - A Python package with ready integrations for ERC-20, Uniswap and other popular projects
- Wakeopens in a new tab - All-in-one Python framework for contracts testing, fuzzing, deployment, vulnerability scanning and code navigation (language server - Tools for Solidityopens in a new tab)
Archived / No longer maintained:
- Trinityopens in a new tab - Ethereum Python client
- Mambaopens in a new tab - framework to write, compile, and deploy smart contracts written in Vyper language
- Brownieopens in a new tab - Python framework for deploying, testing and interacting with Ethereum smart contracts
- pydevp2popens in a new tab - implementation of the Ethereum P2P stack
- py-wasmopens in a new tab - Python implementation of the web assembly interpreter
Looking for more resources? Check out ethereum.org/developers.
Projects using Python tooling
The following Ethereum-based projects use tools mentioned on this page. The related open-source repositories serve as a good reference for example code and best practices.
- Yearn Financeopens in a new tab and Yearn Vault Contracts repositoryopens in a new tab
- Curveopens in a new tab and Curve smart contracts repositoryopens in a new tab
- BadgerDAOopens in a new tab and smart contracts using Brownie toolchainopens in a new tab
- Sushiopens in a new tab uses Python in managing and deploying their vesting contractsopens in a new tab
- Alpha Financeopens in a new tab, of Alpha Homora fame, uses Brownie to test and deploy smart contractsopens in a new tab
Python Community discussion
- Ethereum Python Community Discordopens in a new tab for Web3.py and other Python framework discussion
- Vyper Discordopens in a new tab for Vyper smart contract programming discussion
Other aggregated lists
The Vyper wiki has an incredible list of resources for Vyperopens in a new tab