Quick Start
Prerequisites
Section titled “Prerequisites”- Node.js >= 18
- pnpm >= 8
- Docker (for Intermezzo / Vault signing services)
- Akita mobile app (to approve agent installation)
1. Clone and Install
Section titled “1. Clone and Install”git clone https://github.com/AkitaInu/agent-wallet.gitcd agent-walletpnpm installpnpm build2. Run Setup
Section titled “2. Run Setup”pnpm setupThe setup wizard will:
- Start Intermezzo services — Spins up HashiCorp Vault and Pawn in Docker
- Prompt for configuration — Agent name, network (mainnet/testnet/localnet), plugins, and spending allowance
- Generate an agent key — Creates an ed25519 key in Vault for signing transactions
- Display a QR code — Scan with your Akita app to connect
- Send install request — The app creates the escrow, installs plugins, and approves the agent
- Write config files — Generates
.env, MCP config, and Claude Code skill file
3. Connect to Your AI Agent
Section titled “3. Connect to Your AI Agent”Claude Desktop (MCP)
Section titled “Claude Desktop (MCP)”Add the output MCP config to your claude_desktop_config.json:
{ "mcpServers": { "akita-agent-wallet": { "command": "npx", "args": ["@akta/agent-wallet-mcp"], "env": { "ENV_FILE": "/absolute/path/to/.env" } } }}Claude Code
Section titled “Claude Code”The setup wizard generates a SKILL.md file automatically. Place it in your .claude/ directory and Claude Code discovers it as a slash command.
Other Agents
Section titled “Other Agents”Use the core SDK directly:
import { AlgorandClient } from '@algorandfoundation/algokit-utils'import { AgentKit, IntermezzoWalletProvider, PayActionProvider, WalletInfoActionProvider,} from '@akta/agent-wallet'
const walletProvider = new IntermezzoWalletProvider({ apiUrl: 'http://localhost:3100', vaultUrl: 'http://localhost:8200', roleId: process.env.INTERMEZZO_ROLE_ID!, secretId: process.env.INTERMEZZO_SECRET_ID!, keyName: process.env.INTERMEZZO_KEY_NAME!,})
const algorand = AlgorandClient.testNet()
const agentKit = await AgentKit.from({ walletAppId: BigInt(process.env.WALLET_APP_ID!), escrowName: process.env.ESCROW_NAME!, walletProvider, algorand, actionProviders: [ new WalletInfoActionProvider(), new PayActionProvider(), ],})
// Execute an actionconst result = await agentKit.executeAction('send_payment', { receiver: 'RECIPIENT_ADDRESS', amount: 1_000_000,})Environment Variables
Section titled “Environment Variables”Generated by the setup wizard:
| Variable | Description |
|---|---|
INTERMEZZO_API_URL | Pawn API base URL (default: http://localhost:3100) |
INTERMEZZO_VAULT_URL | Vault API base URL (default: http://localhost:8200) |
INTERMEZZO_ROLE_ID | Vault AppRole role ID |
INTERMEZZO_SECRET_ID | Vault AppRole secret ID |
INTERMEZZO_KEY_NAME | Agent key name in Vault |
WALLET_APP_ID | ARC-58 wallet application ID |
ESCROW_NAME | Escrow name (e.g. agent:My AI Agent) |
ALGORAND_NETWORK | Network: mainnet, testnet, or localnet |
ALGOD_SERVER | Algod node URL |
ALGOD_TOKEN | Algod auth token (localnet only) |
The MCP server and CLI resolve the env file in this order:
--env-fileflag (CLI only)ENV_FILEenvironment variable./.envin the current directory