Which integration is right for you?
Mandate offers 11 integration paths. The right one depends on your agent framework, how much control you need, and whether you want automatic transaction interception or explicit validation calls. This guide walks you through the decision.Integration methods at a glance
| Method | Best for | Setup effort | Key features |
|---|---|---|---|
| Claude Code Plugin | Claude Code users | 1 command | Auto-intercepts transactions, two-phase enforcement, codebase scanner |
| OpenClaw Plugin | OpenClaw agents | Plugin install | 3 tools (register, validate, status), safety-net hook |
| TypeScript SDK | Custom agents, full control | npm install | MandateClient (low-level) + MandateWallet (high-level with signing) |
| CLI | Scripts, testing, CI | npx | All operations via command line, MCP server mode |
| GOAT Plugin | GOAT framework agents | npm install | @Tool() decorated mandate_transfer + x402_pay |
| AgentKit Provider | Coinbase AgentKit agents | npm install | WalletProvider + ActionProvider pattern |
| ElizaOS Plugin | ElizaOS agents | npm install | 3 actions (transfer, x402, sendEth) + wallet provider |
| GAME Plugin | Virtuals Protocol agents | npm/pip install | TypeScript + Python, worker functions |
| ACP Plugin | ACP protocol agents | npm install | MandateAcpClient for job payments |
| MCP Server | AI assistants (Claude Desktop, Codex) | wrangler deploy | Search + execute tools on Cloudflare Workers |
| REST API | Any language, custom integration | None | Direct HTTP calls to app.mandate.md/api |
How to decide
Follow these steps in order. Stop at the first match.1. Are you using Claude Code?
Use the Claude Code Plugin. It installs with a single command and auto-intercepts Bash transactions through aPreToolUse hook. Two-phase enforcement (preflight gate, then validate) runs without any changes to your agent code. The built-in codebase scanner detects financial tool calls automatically.
2. Are you using OpenClaw?
Use the OpenClaw Plugin. It exposes three tools:mandate_register, mandate_validate, and mandate_status. A safety-net hook prevents your agent from making unvalidated financial calls. Install the plugin and your agent gets Mandate enforcement out of the box.
3. Are you using an agent framework?
Pick the plugin that matches your framework:| Framework | Integration | Link |
|---|---|---|
| GOAT SDK | GOAT Plugin | Get started |
| Coinbase AgentKit | AgentKit Provider | Get started |
| ElizaOS | ElizaOS Plugin | Get started |
| Virtuals GAME | GAME Plugin | Get started |
| Virtuals ACP | ACP Plugin | Get started |
4. Are you building a custom TypeScript agent?
Use the TypeScript SDK. You get two levels of abstraction:MandateWallet: High-level. Handles the full validate, sign, broadcast, and event flow. Pass a viem wallet client, and it manages gas estimation, intent hash computation, and envelope verification. Start here.MandateClient: Low-level. Direct API wrapper for/validate,/events,/status. Use this when you need custom signing logic or work with a non-viem signer.
5. Do you need a CLI for testing or CI?
Use the CLI. Runmandate validate in shell scripts, CI pipelines, or ad-hoc testing. The --mcp flag starts the CLI as an MCP server, which lets AI assistants like Claude Desktop or Codex call Mandate tools directly.
6. Are you using another language or need raw HTTP?
Use the REST API. Call the HTTP endpoints directly from Python, Go, Rust, or any language with an HTTP client. The API supports registration, validation, event reporting, and status polling. No SDK required.Hook-based vs SDK-based architecture
Mandate integrations follow one of two patterns. Understanding the difference helps you pick the right approach for your agent.Hook-based (Claude Code, OpenClaw)
The plugin intercepts transactions automatically. You write your agent code as you normally would, making transfer calls, contract interactions, or payment requests. The hook catches these calls before execution and gates them through Mandate’s policy engine. If validation fails, the transaction never executes. This pattern requires less code and zero changes to your agent’s core logic. The tradeoff: you rely on the hook to detect financial operations. The plugin defines which tool calls and shell commands it intercepts.SDK-based (all other integrations)
You callvalidate() explicitly in your agent code before every transaction. Your code controls when and how validation happens. You see the policy engine response, handle errors, manage approval workflows, and decide how to proceed.
This pattern gives you full control over the validation flow. You can add custom logic between validation and signing, implement retries, or branch on specific block reasons. The tradeoff: you must call validate() yourself. Forgetting a call means an unvalidated transaction.
Next Steps
Claude Code Plugin
Install in one command. Auto-intercepts transactions with two-phase enforcement.
OpenClaw Plugin
Three tools and a safety-net hook for OpenClaw agents.
TypeScript SDK
Full control with MandateWallet (high-level) or MandateClient (low-level).
CLI
Command-line validation for scripts, testing, and CI pipelines.
REST API
Direct HTTP calls from any language. No SDK required.
All Integrations
Full list of framework plugins, providers, and tools.