agensai
agensai is a starter POC for ENS-named agent wallets on JAW. Every agent has a real ENS subname, an ERC-4337 smart account, and an ERC-7715 spend permission. You drive the fleet from your AI IDE (Claude Desktop, Claude Code, Cursor, Windsurf, Zed, anything that speaks MCP).
Instead of 0x7a3b9c…, your agent is my-agent.agensai.eth. Resolvable anywhere on the web via JustaName CCIP-Read. Revocable onchain by the orchestrator. Readable in every block explorer, every wallet, every audit log.
JAW is the foundation: passkey root, ERC-4337 smart accounts, ERC-7715 permissions, ENS issuance, USDC gas. agensai is one thin POC layer that wires JAW into your chat. The whole repo is small enough to read end to end and rewrite in an afternoon. One opinion of many. Fork it and ship a different one.
adrian-main.agensai.eth ← you, hardware-protected by passkey
└── adrian-orc.agensai.eth ← your orchestrator, on your device
├── dca-bot.agensai.eth ← agent: 50 USDC/day on Uniswap, 30 days
├── alice.agensai.eth ← agent: research, read-only
└── service-payer.agensai ← agent: pays Anthropic + OpenAI invoicesEvery line above is a real wallet. Every agent is bounded onchain by ERC-7715 permissions; calls outside the scope revert. Revoke from chat in seconds. Lose your device, recover the whole fleet from any device with your passkey.
npx agensai pair <token-from-app.agensai.xyz>Then in Claude Desktop, Cursor, or Claude Code:
"Spin up an agent called my-agent that can spend up to 50 USDC per week on Uniswap."
my-agent.agensai.eth is live. Named, scoped onchain, autonomous.
What you actually do
- Sign up at app.agensai.xyz with a passkey. Around 5 seconds.
- Click Create orchestrator in the dashboard. You get a pair command.
- Paste
npx agensai pair <token>in your IDE chat (Claude Desktop, Cursor, or Codex). - Click Add to my account on the banner that appears in the dashboard. One passkey signature registers the orchestrator on your ENS name.
- Back in chat: "create alice with 50 USDC per day on Uniswap". Agent exists, on chain, in seconds.
From there, every agent action is zero biometric. Your IDE talks to the MCP server on your device. The server signs with your orchestrator's local key. Limits are enforced by the smart account validator, not by your code.
Why it's built this way
- Built on JAW. JAW provides the wallet primitives: passkey-rooted ERC-4337 accounts, ERC-7715 permissions, EIP-7702 upgrades, ENS issuance, USDC gas. agensai is the thin layer that wires JAW into your chat.
- Zero agensai server in the agent execution path. No signing servers, no custody, no key holding. The dashboard is a static site; the MCP server is an npm package. Both compose
@jaw.id/coredirectly from your device. - Hardware-protected at the top. Passkey-rooted main account. Recoverable from any device via
keys.jaw.id. - Per-agent SA at the leaf. Each agent has its own smart account with the orchestrator installed as a co-owner. The ERC-7715 permission lives on the agent SA. Orchestrator can revoke or drain via cross-SA
executecalls. - Scoped on chain. Every agent is bounded by an ERC-7715 grant. Calls, spends, expiry, rates, all enforced by the validator.
- Fleet manifest lives on ENS. Orchestrator list and agent metadata live as text records on your own subname. Any ENS-aware tool can read them.
- Forkable in an afternoon. The repo is small enough to read end to end. Rebrand it, change every opinion, ship your own.
JAW is signed by JustaLab; that's the security layer. agensai on top is one opinion among many.
Pages
- Quickstart: sign up, pair, first agent.
- Concepts: three-tier identity model, permissions, ENS as state, funding.
- MCP setup: Claude Desktop, Cursor, Codex wiring.
- MCP lifecycle: how
pair,serve, anddisconnectwork. - MCP tools: the tools the chat can call.
- Build your own: fork the examples, compose the JAW SDK directly.
- Recovery: what happens when you lose a device.
- Security: threat model, storage, on-chain bounds.
- FAQ: common errors and what to do about them.
- Reference: internal lib pointer, JAW SDK references.
