DEV Community

Byaigo
Byaigo

Posted on

Building a Real-Time Ethereum Gas Tracker in Python with Web3.py

Why Monitor Gas Prices?

Gas prices on Ethereum fluctuate wildly. Whether you are deploying contracts or swapping tokens, timing matters. In this guide, we build a lightweight real-time gas tracker using Python and Web3.py.

The Stack

  • Python 3.10+ — async support and type hints
  • Web3.py — the leading Ethereum library for Python
  • Infura / Alchemy — free RPC endpoints
  • Rich — beautiful terminal tables

Core Implementation

from web3 import Web3
import asyncio

INFURA_URL = "https://mainnet.infura.io/v3/YOUR_KEY"
w3 = Web3(Web3.HTTPProvider(INFURA_URL))

async def fetch_gas():
    base_fee = w3.eth.fee_history(1, "latest")["baseFeePerGas"][-1]
    priority = w3.eth.max_priority_fee
    return {
        "low": base_fee + priority,
        "avg": base_fee + priority * 2,
        "high": base_fee + priority * 3
    }
Enter fullscreen mode Exit fullscreen mode

What You Will Learn

  • Connecting to Ethereum nodes via HTTP
  • Reading on-chain fee data in real time
  • Formatting output with the Rich library
  • Setting up a continuous polling loop

Full source code and more examples available at github.com/Byaigo.


Support Open Source

If this helped you, consider supporting:

ETH: 0x18da907cb9d981bc798acb87ac27b03a2dc3cbb7

Every contribution helps keep the tutorials coming. Happy building! 🚀

Top comments (0)