.. _resources:
Resources and Learning Material
===============================
web3.py and the Ethereum Python ecosystem have an active community of developers and educators.
Here you'll find libraries, tutorials, examples, courses and other learning material.
.. warning ::
Links on this page are community submissions and are not vetted by the team that maintains
web3.py. As always, DYOR (Do Your Own Research).
First Steps
-----------
Resources for those brand new to Ethereum:
- `A Developer's Guide to Ethereum, Pt. 1 `__
- `Ethereum Python Ecosystem Tour `__
Courses
-------
- `freeCodeCamp Solidity and Python Course (2022) `__
- `Blockchain Python Programming Tutorial (2019) `__
Tutorials
---------
- Intro to `Ape development framework `__
- Intro to `websockets `__ and web3.py
- Intro to `asynchronous web3.py `__
- Intro to `threaded web3.py `__
- Sign `typed data messages `__ (EIP 712)
- Look up offchain data via `CCIP Read `__
- Configure and `customize web3.py `__
- `Decode a signed transaction `__
- Find a historical contract `revert reason `__
- Generate a `vanity address `__
- Simulate transactions with `call state overrides `__
- Configure web3 for `JSON-RPC fallback and MEV blocker providers `__
Conference Presentations and Videos
-----------------------------------
- `Web3.Py - Now And Near Future by Marc Garreau (2022, 15 mins) `__
- `Python and DeFi by Curve Finance (2022, 15 mins) `__
- `Working with MetaMask in Python by Rishab Kattimani (2022, 15 mins) `__
Smart Contract Programming Languages
------------------------------------
- `Vyper `__ - Contract-oriented, pythonic programming language that targets EVM
Frameworks and Tooling
----------------------
- `Ape `__ - The Ethereum development framework for Python Developers, Data Scientists, and Security Professionals
- `Titanoboa `__ - A Vyper interpreter and testing framework
- `Wake `__ - A Python-based development and testing framework for Solidity
- `Brownie `__ - [No longer actively maintained] A Python-based development and testing framework for smart contracts targeting EVM
Libraries
---------
- `Web3 Ethereum DeFi `__ - Library for DeFi trading and protocols (Uniswap, PancakeSwap, Sushi, Aave, Chainlink)
- `lighter-v1-python `__ - Lighter.xyz DEX client for Python
- `uniswap-python `__ - Library lets you easily retrieve prices and make trades on all Uniswap versions.
- `pyWalletConnect `__ - WalletConnect implementation for wallets in Python
- `dydx-v3-python `__ - Python client for dYdX v3
- `Lido Python SDK `__ - Library with which you can get all Lido validator's signatures and check their validity
Applications
------------
- `Curve Finance `__
- `Yearn Finance `__
- `StakeWise Oracle `__
Hackathon Helpers
-----------------
- `ape-hackathon-kit `__ - Ape project template with a web front-end (Next.js, Tailwind, RainbowKit, wagmi)
- `eth-flogger `__ - Sample web app utilizing async web3.py, Flask, SQLite, Sourcify
- `Temo `__ - Sample terminal app utilizing async web3py, Textual, Anvil
- `web3py-discord-bot `__ - Sample Discord bot utilizing websockets, ``eth_subscribe``, and discord.py
- `py-signer `__ - Demo of typed data message signing (EIP-712) with eth-account and Ape