Documentation for eth_defi.chain.install_chain_middleware function.

install_chain_middleware(web3, poa_middleware=None)[source]

Install any chain-specific middleware to Web3 instance.

Mainly this is POA middleware for BNB Chain, Polygon, Avalanche C-chain.


web3 = Web3(HTTPProvider(json_rpc_url))
print(f"Connected to blockchain, chain id is {web3.eth.chain_id}. the latest block is {web3.eth.block_number:,}")

# Read and setup a local private key
private_key = os.environ.get("PRIVATE_KEY")
assert private_key is not None, "You must set PRIVATE_KEY environment variable"
assert private_key.startswith("0x"), "Private key must start with 0x hex prefix"
account: LocalAccount = Account.from_key(private_key)

# Support Polygon, BNG chain

# ... code goes here...z
tx_hash = erc_20.functions.transfer(to_address, raw_amount).transact({"from": account.address})
  • poa_middleware

    If set, force the installation of proof-of-authority GoEthereum middleware.

    Needed e.g. when using forked Polygon with Anvil.

  • web3 (web3.main.Web3) –