EVM

Send native-token transfers on an EIP-1559-compatible chain using an RPC URL and private key.

Use an Agno agent to submit native-token transfers on a chain that supports EIP-1559 fees.

Prerequisites

  1. Set your environment variables:

    export EVM_PRIVATE_KEY=0x<your-private-key>
    export EVM_RPC_URL=https://your-rpc-endpoint
    export OPENAI_API_KEY=<your-openai-key>
  2. Or pass them directly to the EvmTools constructor

  3. Install dependencies: uv pip install agno openai web3


from agno.agent import Agent
from agno.tools.evm import EvmTools

# ---------------------------------------------------------------------------
# Create Agent
# ---------------------------------------------------------------------------


# Option 1: Use environment variables (recommended)
agent = Agent(
    tools=[EvmTools()],  # Will use EVM_PRIVATE_KEY and EVM_RPC_URL from env
)

# Option 2: Pass credentials directly (for testing only)
# private_key = "0x<private-key>"
# rpc_url = "https://0xrpc.io/sep"  # Sepolia testnet
# agent = Agent(
#     tools=[
#         EvmTools(
#             private_key=private_key,
#             rpc_url=rpc_url,
#         )
#     ],
# )

# Convert 0.001 ETH to wei (1 ETH = 10^18 wei)
# 0.001 ETH = 1,000,000,000,000,000 wei

# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
    agent.print_response(
        "Send 0.001 eth (which is 1000000000000000 wei) to address 0x3Dfc53E3C77bb4e30Ce333Be1a66Ce62558bE395"
    )

Configure a test transfer

Use a test-network RPC, a test account funded for the transfer and gas, and replace the recipient address in the prompt with your own test address. The tool signs and broadcasts a real transaction on the configured chain and waits for its receipt.

The implementation requires baseFeePerGas, submits a type-2 transaction with a fixed gas limit of 21,000, and transfers the chain's native currency. It is not an ERC-20 transfer tool or a general contract-call interface. On Ethereum, 1000000000000000 wei is 0.001 ETH.

Run the Example

# Clone and setup repo
git clone https://github.com/agno-agi/agno.git
cd agno
git checkout d703c34f3abf3c41275d3fb2da6e0518a8881f24

# Create and activate virtual environment
./scripts/demo_setup.sh
source .venvs/demo/bin/activate
uv pip install -U web3

python cookbook/91_tools/evm_tools.py

For details, see EVM cookbook.