autogen-ext-agentwallet
Non-custodial wallet extension for AutoGen agents.
Give your AutoGen agents a real wallet: check balances, send tokens, bridge across 17 chains via CCTP, handle HTTP 402 micropayments, and enforce on-chain spend limits — all without ever handing over custody of your keys.
Features
- EVM balance checks — native ETH and any ERC-20 token
- Token transfers — sign and broadcast transactions directly from the agent
- 17-chain CCTP bridge — USDC bridging via Circle's Cross-Chain Transfer Protocol (Ethereum, Base, Arbitrum, Optimism, Polygon, Avalanche, and more)
- x402 payments — automatic handling of HTTP 402 Payment Required flows
- On-chain spend limits — query AgentAccountV2 contract limits before spending
Installation
pip install autogen-ext-agentwallet
Configuration
Set these environment variables (or pass directly to the toolkit):
WALLET_ADDRESS=0xYourAgentWalletAddress
PRIVATE_KEY=0xYourPrivateKey
RPC_URL=https://mainnet.base.org
CHAIN_ID=8453
Security: Never hardcode your private key. Use
.envfiles or a secrets manager.
Quick Start
import asyncio
from autogen_agentchat.agents import AssistantAgent
from autogen_ext.models.openai import OpenAIChatCompletionClient
from autogen_ext_agentwallet import AgentWalletToolkit
# Initialize the toolkit
toolkit = AgentWalletToolkit(
wallet_address="0xYourAgentWalletAddress",
private_key="0xYourPrivateKey",
chain_id=8453, # Base mainnet
rpc_url="https://mainnet.base.org",
)
tools = toolkit.get_tools()
# Create an AutoGen agent with wallet capabilities
agent = AssistantAgent(
name="wallet_agent",
model_client=OpenAIChatCompletionClient(model="gpt-4o"),
tools=tools,
system_message=(
"You are an autonomous agent with a non-custodial wallet. "
"You can check balances, send tokens, bridge assets, and pay for services."
),
)
async def main():
result = await agent.run(task="Check my ETH balance on Base")
print(result)
asyncio.run(main())
Available Tools
WalletBalanceTool
Check native or ERC-20 token balance.
from autogen_ext_agentwallet import WalletBalanceTool
tool = WalletBalanceTool(rpc_url="https://mainnet.base.org", wallet_address="0x...")
# Used automatically by the agent, or call directly:
# result = await tool.run(BalanceInput(address="0x...", token="0xUSDC..."))
WalletTransferTool
Sign and send ETH or ERC-20 tokens.
The agent will construct a transaction, sign it locally (non-custodial), and broadcast it.
WalletBridgeTool
Bridge USDC across chains using Circle's CCTP.
Supported chains: Ethereum (1), Base (8453), Arbitrum (42161),
Optimism (10), Polygon (137), Avalanche (43114), and more.
X402PaymentTool
Handle HTTP 402 payment flows automatically. The agent will:
- Detect the 402 response
- Parse payment requirements from headers
- Sign a micropayment (if within
max_amount_usd) - Retry the request with the payment header
GetSpendLimitsTool
Query on-chain spend limits from an AgentAccountV2 contract.
Using Individual Tools
from autogen_ext_agentwallet import WalletBalanceTool, WalletTransferTool, GetSpendLimitsTool
balance_tool = WalletBalanceTool(
rpc_url="https://mainnet.base.org",
wallet_address="0x...",
)
transfer_tool = WalletTransferTool(
rpc_url="https://mainnet.base.org",
wallet_address="0x...",
private_key="0x...",
chain_id=8453,
)
spend_tool = GetSpendLimitsTool(rpc_url="https://mainnet.base.org")
Supported Chains
| Chain | Chain ID | CCTP Domain |
|---|---|---|
| Ethereum | 1 | 0 |
| Avalanche | 43114 | 1 |
| Optimism | 10 | 2 |
| Arbitrum | 42161 | 3 |
| Base | 8453 | 6 |
| Polygon | 137 | 7 |
License
MIT — see LICENSE
Links
Metadata
Release files for autogen-ext-agentwallet 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| autogen_ext_agentwallet-1.0.0.tar.gz | 8.7 kB | Without provenance | Details for autogen_ext_agentwallet-1.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| autogen_ext_agentwallet-1.0.0-py3-none-any.whl | Python 3 | none | any | Details for autogen_ext_agentwallet-1.0.0-py3-none-any.whl |
Total release size: 16.2 kB
Release files / autogen_ext_agentwallet-1.0.0.tar.gz
| Download URL | autogen_ext_agentwallet-1.0.0.tar.gz |
|---|---|
| Size | 8.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
42856adc95fd08ce1bd69f5c159c6f5b102fbf040becf1e93122bd6e2746ad42
|
|
BLAKE2b-256 checksum How to use checksums |
5c6d7b348b749091e7bd2763c9914f9dc523ea6ac4640af7d532a8412bccf1c9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Release files / autogen_ext_agentwallet-1.0.0-py3-none-any.whl
| Download URL | autogen_ext_agentwallet-1.0.0-py3-none-any.whl |
|---|---|
| Size | 7.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a556744300eb93f477e49f9a679eb4201fffedb5822df65d5abb7edd4dbf97a8
|
|
BLAKE2b-256 checksum How to use checksums |
a0aa2a3f549b3ca94456d214ae9785dc928cc1bdc482e7acb8acde44edf156f6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Security for autogen-ext-agentwallet 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.