Catalog PyPI
Back to packageRELEASE DETAILS

1.0.0

PyPI

agentwallet-crewai-tool

Non-custodial wallet tools for CrewAI agents — EVM + Solana, spend limits, x402 micropayments, CCTP bridge

agentcctpcrewaievmnon-custodialsolanawalletx402
Published4 Mar 2026
Direct dependencies5
Transitive dependenciesNot calculated

README

Version 1.0.0 documentation

agentwallet-crewai-tool

Non-custodial wallet tools for CrewAI agents. Give your crew members real on-chain wallets with spend limits — so no single agent can drain the treasury without owner sign-off.

Built on agentwallet-sdk.

What you get

Five CrewAI tools, one toolset class:

ToolWhat it does
agent_wallet_balanceCheck token balances + remaining autonomous spend budget
agent_wallet_transferSend ERC-20 or native tokens (auto-queues if over spend limit)
agent_wallet_swapSwap tokens via SmartSwapRouter (Uniswap V3 on Base)
agent_wallet_bridgeMove USDC cross-chain via CCTP V2 (17 chains)
agent_wallet_x402_payPay HTTP 402 endpoints via x402 micropayments

Every transfer respects the spend policy set by the wallet owner. If an agent tries to send more than the per-tx or period cap, the transaction is queued for owner approval rather than reverting. Agents can't go rogue.

Install

pip install agentwallet-crewai-tool

You also need Node.js ≥18 installed (the tools shell out to the TypeScript SDK via a CLI wrapper):

node --version  # should be v18+
npm install -g agentwallet-sdk

Quick start

from crewai import Agent, Task, Crew
from agentwallet_crewai import AgentWalletToolset

# One toolset per agent identity
wallet_tools = AgentWalletToolset(
    private_key="0x...",          # agent's signing key
    account_address="0x...",      # deployed AgentAccountV2 contract
    chain="base",                 # base | ethereum | arbitrum | optimism | polygon | solana
).get_tools()

payment_agent = Agent(
    role="Payment Processor",
    goal="Handle all payment operations for the crew",
    backstory="Specialist in on-chain payments and cross-chain asset management.",
    tools=wallet_tools,
    verbose=True,
)

task = Task(
    description="Check our USDC balance and send 10 USDC to 0xRecipient...",
    expected_output="Confirmation of balance check and transfer hash",
    agent=payment_agent,
)

crew = Crew(agents=[payment_agent], tasks=[task])
result = crew.kickoff()

Architecture

CrewAI is Python. The wallet SDK is TypeScript. This package bridges them:

CrewAI Agent
    │
    └─ Python tool (_run method)
            │
            └─ subprocess → wallet_cli.js (Node.js)
                    │
                    └─ agentwallet-sdk
                            │
                            └─ EVM/Solana RPC

The CLI wrapper takes a JSON payload on stdin, runs the SDK operation, and returns JSON on stdout. Clean separation — the SDK stays as the single source of truth for signing and chain interactions.

Spend limits

The wallet contract enforces spend limits at the smart contract level:

# Set limits via the SDK directly (TypeScript) or via the contract owner
# Per-tx max: 50 USDC
# Period max: 500 USDC/day
# After that, transactions are queued — not rejected

The agent_wallet_transfer tool tells the agent when a transfer was queued vs executed, so it can inform the user and wait for owner approval.

Chains

EVM: Base, Ethereum, Arbitrum, Optimism, Polygon, Base Sepolia
Solana: mainnet (bridge only — for full Solana wallet, use SolanaWallet from the SDK directly)

Configuration

ParamTypeDescription
private_keystrAgent's 0x-prefixed hex private key
account_addressstrDeployed AgentAccountV2 contract address
chainstrChain name (default: "base")
rpc_urlstrCustom RPC URL (optional — uses public RPCs if omitted)
node_binarystrPath to node binary (auto-detected)

Running tests

pip install -e ".[dev]"
pytest tests/ -v

Tests mock the CLI subprocess — no Node.js or live RPC needed to run them.

License

MIT

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 5

Native requirements
5 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
crewai
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
crewai>=0.28.0runtime
pydantic
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
pydantic>=2.0.0runtime
pytest
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
pytest>=7.0.0; extra == "dev"runtime
pytest-asyncio
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
pytest-asyncio>=0.21.0; extra == "dev"runtime
pytest-mock
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.10",
  "evaluation": "NOT_EVALUATED"
}
pytest-mock>=3.10.0; extra == "dev"runtime

Distribution files

2 collected
agentwallet_crewai_tool-1.0.0-py3-none-any.whl

bdist_wheel · 8.2 KB · Python py3

Source file
agentwallet_crewai_tool-1.0.0.tar.gz

sdist · 10.36 KB · Python source

Source file

Repository

PENDING
agentwallet-sdk/agentwallet-crewai-tool

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 21 Oct, 08:55 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:9dfacce4768cfe45725781f1599ec4ebecab839b4bb3b1ffc8b18cea8a54148f

Other collected versions

View all collected versions →