Open Agent Wallet
One authority. Any chain. Any venue.
Vendor-neutral wallet infrastructure for AI agents as economic actors — one agent authority, plug-and-play venue binding, cross-chain funding, and prompt-injection-safe execution. Built on Privy, enriched by Virtuals.
const intent = await oaw.intent.classify(userMessage); // reasoning, not keywords
if (intent?.isAction)
await oaw.venues.bind(user, intent.venue!, {}, { allowAutoCreate: true });
const plan = await oaw.funding.resolve({ user, venue: "polymarket", amountUsd: 50 });
const res = await oaw.venues.execute(user, "polymarket",
{ kind: "trade", side: "YES", market, amountUsd: 50 }, { execute: confirmed });
// → receipted · policy-gated · the LLM never held a key👤 ▋
Architecture
The brain plans. The backend signs.
A deliberate security boundary: the LLM never holds a key, so prompt injection can't move money. Five layers run between intent and execution.
Plug-and-play venues
Add a venue with data + one adapter
No core changes. Seven ship today — EVM and non-EVM — including the ACP-native Mode B path through the Virtuals sidecar. Virtuals.io supports three chains; OAW does not limit you.
The decisive question, resolved
Two real authorities. One convergence ask.
Virtuals ACP agent wallets are not headlessly creatable today — the real client operates an existing agent, it cannot mint one. OAW ships the two verified paths and asks the vendors for the convergence path.
Provider-managed Privy agent wallet
Fully programmatic. Any user, instantly autonomous from chat. Both OAW and Virtuals run on Privy, so the signer path is uniform.
- ✓ ensure_agent_wallet — idempotent, no user setup
- ✓ provider_agent_wallet execution route
- ✓ Works on every non-ACP venue immediately
Link an existing Virtuals wallet
Operate the user's Virtuals EconomyOS wallet via the ACP sidecar. Inherits native spending caps, agentmail, Stripe card, ACP identity, tokenization.
- ✓ verify_identity · verify_authority_proof
- ✓ virtuals_acp_sidecar execution route
- ✓ ACP-native venues (Virtuals, DegenClaw) unlocked
Register a Privy wallet into EconomyOS
The highest-leverage convergence path: register an existing Privy wallet into Virtuals' EconomyOS so Mode A wallets inherit Virtuals' native envelope — no new signer infra needed.
- ✓ Single highest-leverage upstream ask
- ✓ Virtuals already runs on Privy
- ✓ Makes 'use Virtuals wallet infra' true for every Mode A
The reference SDK is honest: the unverified Mode C/D paths throw rather than pretend. See the evidence and full mode table →
Grounded in real code
Not a dead end — the precise thing to fix
The shipped ACP client operates an existing agent. It has no create_agent surface. That's not a blocker; it's the exact ask OAW makes of Virtuals — and the honest boundary the reference enforces.
verify_identity()existssigner_status()existsverify_authority_proof()existscreate_job()existsfund_job()existscomplete_job()existsdgclaw_join()existscreate_agent()missingcreate_agent_wallet()missingZero install
Run it now — Node 22
Native TypeScript type-stripping. No build step, no dependencies to install for tests.
git clone https://github.com/Abelhubprog/open-agent-wallet.git && cd open-agent-wallet
node --test --experimental-strip-types --no-warnings "test/**/*.test.ts" # 61 tests
node --experimental-strip-types examples/north-star.ts # demoReleased under the Apache-2.0 License · Built on Privy · Enriched by Virtuals