- CLI
- Python SDK or TypeScript SDK
- Add a framework or MCP layer only after that first run works
Component overview
Platform responsibilities
| Platform | Primary role |
|---|---|
CLI (caw) | Create wallets, execute transactions, generate pairing codes, submit pacts — the program-native interface |
| Cobo Agentic Wallet app | Pair agents, manage owner guardrails, approve pacts and over-limit transactions, freeze/revoke, review activity, back up keys |
Cobo Agentic Wallet Service
The Cobo Agentic Wallet service is the single source of truth for all wallet, identity, delegation, policy, and audit state.Modules
| Module | Responsibility |
|---|---|
| Identity | Principal CRUD, API key issuance and verification, scope enforcement |
| Wallets | Wallet + address lifecycle; executing on-chain transactions |
| Transactions | Transfer and contract call submission; fee estimation; WaaS webhook handling |
| Delegations | Owner → Operator scoped permission grants with expiry and freeze/unfreeze |
| Pact | Pact lifecycle management — runtimes submit pacts, owners approve them, system creates delegations and API keys automatically on approval |
| Policy Engine | Three-stage gate: ① permission check → ② policy rule evaluation → ③ counter limits |
| Audit Pipeline | Logs every allow/deny/approval decision; delivers events via webhook outbox |
Authentication
| Method | Header | Who uses it | Scope |
|---|---|---|---|
| API Key | X-API-Key | Owners, Operators, SDK, CLI, MCP | All business operations |
SDK & integrations
From a developer perspective, CAW splits into two layers:- a control layer you call from your program
- an owner layer that handles pairing, approvals, and guardrails
| Layer | What it is |
|---|---|
WalletAPIClient (Python) | Async HTTP client — direct access to all Cobo Agentic Wallet service endpoints |
WalletAPIClient (TypeScript) | Promise-based HTTP client with full TypeScript types — same endpoint coverage as the Python client |
AgentWalletToolkit | 20 canonical runtime tools covering wallet discovery, pact flows, transfers, contract calls, signing, payments, fee estimation, transaction tracking, audit, and delegation |
| Framework adapters | LangChain, OpenAI Agents, Agno, CrewAI — each wraps the toolkit in the framework’s tool format |
CLI (caw) | Shell command interface for developers and AI coding assistants |
cobo-agentic-wallet[mcp]) is a separate stdio server that exposes the same wallet tools to any MCP-compatible client (Claude Desktop, Cursor, etc.).
Integration modes
For nearly all developers in these docs, the only mode that matters is Agent Mode. In Agent Mode, your runtime integrates with the CAW service and Cobo provides the owner-facing controls, pairing flow, policy management, and approval UX.| Mode | You build | Cobo provides | Status |
|---|---|---|---|
| Agent Mode | Your runtime, CLI usage, SDK usage, MCP integration, or framework integration | Cobo Agentic Wallet app, owner approvals, policy management, wallet control surfaces | Available now |
| Core Mode | Your full custom stack, including your own owner-facing control surface | Core engine APIs only | Available upon request |
| Owner Mode | Your own owner-facing interface | Agent-side framework abstractions | Available upon request |
Human Interface
A separate service that provides the owner-facing experience.| Primary channel | Cobo Agentic Wallet app — iOS / Android |
| Owner tools | Pair agent, manage owner guardrails, approve/reject pacts, approve/reject over-limit transactions, freeze/unfreeze, review activity |
| Push notifications | Delivered to the Cobo Agentic Wallet app for pact approvals and over-limit transaction reviews |
Security architecture
Signing layer is isolated from the AI layer
Your program interacts with the Cobo Agentic Wallet service through the REST API using an API key. The API key grants permission to submit transaction requests — it does not give the runtime access to private key material. Signing happens inside the Cobo Agentic Wallet service using Multi-Party Computation, which requires cooperation from multiple independent parties. The LLM component of your agent, if you have one, never sees, holds, or derives private keys.Policy engine as a structural guard
Every transaction request passes through a three-stage policy gate before anything executes on-chain:- Permission check — does this API key have permission to perform this operation type?
- Policy rule evaluation — does this operation satisfy the owner’s configured rules?
- Counter check — does this operation stay within rolling spend limits?