.. _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