The payment infrastructure for autonomous AI agents.
Create agent wallets. Simulate payments. Enforce spending controls. Move USDC safely.
OmniClaw is the execution layer for AI-native payments. It sits between raw wallet infrastructure and production payment flows so AI agents and AI-powered apps can move money with better safety, trust, and operator control.
Instead of wiring wallets, payment routing, guardrails, intents, trust checks, and recovery flows by hand, OmniClaw gives you one SDK for:
-
wallet creation and management
-
guarded
pay()execution -
simulate()before funds move -
x402 and direct transfer routing
-
cross-chain USDC flows
-
payment intents with reservation handling
-
ERC-8004-style trust-aware checks
-
Product:
OmniClaw -
Company:
Omnuron AI -
Official site:
omniclaw.ai -
SDK status:
405passing SDK tests intests/ -
Python:
>=3.10 -
Package:
omniclaw
OmniClaw sits between AI applications and wallet/payment infrastructure, adding simulation, routing, guardrails, intents, trust checks, and operational visibility.
- Ship AI payment flows without building your own execution layer from scratch
- Use one SDK across wallets, simulation, execution, guardrails, and trust-aware payments
- Give operators controls before an AI system can spend
- Evaluate identity and trust signals, not just bare wallet addresses
- AI agents that need to pay for tools, services, APIs, or other agents
- AI-powered applications that need embedded payment execution
- Teams building web2 or web3 products where AI systems need to move money
- Builders who want wallet infrastructure plus policy, simulation, trust, and operator controls
pip install omniclaw
omniclaw doctorimport asyncio
from omniclaw import Network, OmniClaw
async def main():
client = OmniClaw(network=Network.ARC_TESTNET)
wallet_set, wallet = await client.create_agent_wallet("research-agent")
simulation = await client.simulate(
wallet_id=wallet.id,
recipient="0x742d35Cc6634C0532925a3b844Bc9e7595f5e4a0",
amount="2.50",
)
if simulation.would_succeed:
await client.pay(
wallet_id=wallet.id,
recipient="0x742d35Cc6634C0532925a3b844Bc9e7595f5e4a0",
amount="2.50",
purpose="agent purchase",
)
asyncio.run(main())Core workflow: verify setup, create a wallet, simulate the payment, then execute safely.
- Create and manage Circle wallet sets and wallets
- Execute
pay()with automatic routing for addresses, URLs, and cross-chain transfers - Enforce guardrails with budget, rate-limit, recipient, single-tx, and confirm guards
- Support authorize/confirm flows with payment intents
- Simulate payments before execution
- Record transaction history in the built-in ledger
- Optionally run ERC-8004 trust verification when an RPC URL is configured
- Raw wallet APIs are not enough. AI systems need policy, simulation, reservations, idempotency, and failure handling before they are allowed to spend.
- x402 is powerful, but it is only one rail. Most production products need one SDK that can handle wallet transfers, x402 endpoints, and cross-chain USDC movement together.
- Payment safety cannot live in ad hoc app code. OmniClaw ships budget guards, rate limits, recipient controls, single-tx limits, confirm thresholds, payment intents, and ledger tracking as first-class primitives.
- Trust matters when one AI system pays another. OmniClaw surfaces ERC-8004-style trust evaluation so developers can make decisions with more context than a bare address.
- Developer adoption matters. The entry point stays simple: initialize
OmniClaw, create a wallet, runsimulate(), then callpay().
- Use Circle for wallet custody and transaction infrastructure.
- Use x402 where pay-per-request HTTP payments make sense.
- Use OmniClaw to orchestrate execution safely across those systems.
That means fewer one-off payment scripts, less duplicated safety code, and a faster path from demo agent to production.
OmniClaw is not trying to replace the wallet or settlement providers already entering this market. It is the layer that makes them usable for AI-native execution.
pay()routes across direct transfers, x402-style URLs, and cross-chain USDC flows.simulate()lets agents and operators know whether a payment would succeed before funds move.- Payment intents provide authorize/confirm/cancel flows with reservation handling.
- Built-in guards give operators programmable spending controls.
omniclaw doctorgives developers and operators one command to verify credential, recovery, and setup state.- ERC-8004 support makes trust and identity part of the product story, not an afterthought.
Most payment SDKs stop at settlement. OmniClaw makes it possible to decide whether to auto-pay, hold, or block a payment with more context than a bare wallet address.
For teams building AI-to-AI commerce, autonomous services, or machine-driven payments, that means better answers to questions like:
- who is this agent?
- what trust signals exist for it?
- should this payment proceed automatically?
- when should a payment be held, confirmed, or blocked?
OmniClaw integrates ERC-8004-style trust evaluation into the SDK so developers can add trust-aware payment logic without building a separate reputation and validation layer first.
pip install omniclawFor local development in this repo:
uv sync --extra devTo build release artifacts with one command:
./build.shMinimum runtime configuration:
CIRCLE_API_KEY=your_circle_api_key
ENTITY_SECRET=your_entity_secret
OMNICLAW_NETWORK=ARC-TESTNETCommon optional settings:
OMNICLAW_STORAGE_BACKEND=redis
OMNICLAW_REDIS_URL=redis://localhost:6379
OMNICLAW_LOG_LEVEL=INFO
OMNICLAW_RPC_URL=https://your-rpc-providerNotes:
OMNICLAW_REDIS_URLis the only Redis URL env used by the SDK.- Trust verification is optional by default.
- If you explicitly request trust verification with
check_trust=True,OMNICLAW_RPC_URLmust be set to a real RPC endpoint.
OmniClaw uses Circle's entity secret model:
ENTITY_SECRETis the signing secret the SDK needs to create wallets and sign transactions.- The Circle recovery file is stored in the user config directory, not in the repo.
- On Linux, that path is
~/.config/omniclaw/.
Current behavior:
- If
ENTITY_SECRETis missing andCIRCLE_API_KEYis present, the SDK can auto-generate and register a new entity secret. - During that flow, the Circle recovery file is written to the user config directory.
- If a local
.envfile exists, the generatedENTITY_SECRETis appended to it.
Important limitation:
- The recovery file is not the same thing as the entity secret.
- OmniClaw reads the active
ENTITY_SECRETfrom constructor arguments or environment. - If a user loses both the entity secret and the recovery file, the account becomes difficult or impossible to recover without Circle-side reset steps.
Check your machine state any time with:
omniclaw doctorThis reports:
- whether
CIRCLE_API_KEYis set - whether
ENTITY_SECRETis available from env - whether OmniClaw has a managed secret stored in
~/.config/omniclaw/ - whether a Circle recovery file exists
First-run check:
omniclaw doctorRun it before sending funds or creating production wallets. A healthy machine should report:
- Circle SDK installed
CIRCLE_API_KEYpresentENTITY_SECRETavailable from env or managed config- managed credential store found in
~/.config/omniclaw/ - Circle recovery file present
For support tooling or automation:
omniclaw doctor --jsonfrom omniclaw import OmniClaw, Network
client = OmniClaw(network=Network.ARC_TESTNET)
wallet_set, wallet = await client.create_agent_wallet("research-agent")
await client.add_budget_guard(wallet.id, daily_limit="100.00", hourly_limit="20.00")
await client.add_recipient_guard(
wallet.id,
mode="whitelist",
domains=["api.openai.com"],
)
result = await client.pay(
wallet_id=wallet.id,
recipient="0x742d35Cc6634C0532925a3b844Bc9e7595f5e4a0",
amount="10.50",
purpose="model usage",
)OmniClaw is not only a payment SDK. It also tries to reduce setup and recovery friction for developers and operators.
omniclaw doctorchecks whether your machine is ready- managed credentials are stored in
~/.config/omniclaw/ - Circle recovery files are surfaced as part of the doctor output
omniclaw doctor --jsonsupports support tooling and automation
wallet_set = await client.create_wallet_set("prod-agents")
wallet = await client.create_wallet(wallet_set_id=wallet_set.id, blockchain=Network.ETH)
balance = await client.get_balance(wallet.id)result = await client.pay(
wallet_id=wallet.id,
recipient="https://api.vendor.com/premium-endpoint",
amount="0.25",
purpose="pay-per-use API call",
)Routing behavior:
- blockchain address -> direct transfer
- URL -> x402 flow
destination_chainset -> cross-chain gateway flow
sim = await client.simulate(
wallet_id=wallet.id,
recipient="0xRecipient",
amount="25.00",
)
if not sim.would_succeed:
print(sim.reason)intent = await client.create_payment_intent(
wallet_id=wallet.id,
recipient="0xRecipient",
amount="250.00",
purpose="approved purchase",
)
result = await client.confirm_payment_intent(intent.id)Guards are the main safety layer in OmniClaw. They run before execution and are integrated with reservation and lock handling.
await client.add_budget_guard(wallet.id, daily_limit="100.00")
await client.add_rate_limit_guard(wallet.id, max_per_minute=5)
await client.add_single_tx_guard(wallet.id, max_amount="25.00")
await client.add_recipient_guard(wallet.id, mode="whitelist", addresses=["0xTrusted"])
await client.add_confirm_guard(wallet.id, threshold="500.00")Available guards:
BudgetGuardRateLimitGuardSingleTxGuardRecipientGuardConfirmGuard
OmniClaw can evaluate ERC-8004 trust data before a payment.
result = await client.pay(
wallet_id=wallet.id,
recipient="0xRecipient",
amount="5.00",
check_trust=True,
)Behavior:
check_trust=None: auto modecheck_trust=True: require trust evaluation and reject if no RPC is configuredcheck_trust=False: skip trust evaluation
Start here:
- Docs Index
- SDK Usage Guide
- API Reference
- Architecture and Features
- Cross-Chain Usage
- ERC-8004 Spec Notes
- Roadmap
uv sync --extra dev
.venv/bin/pytest testsUseful checks:
python3 -m compileall src
.venv/bin/ruff check src tests
./build.shsrc/omniclaw/ SDK source
tests/ SDK test suite
docs/ User and developer documentation
examples/ Example integrations
mcp-server/ Optional MCP server, not required for SDK usage