MCP Agentic Wallet — open-source session management for x402

السجل الرسمي المالية والمدفوعات

Open-source EIP-2612 Permit-based wallet sessions for AI agents using MCP.

ماذا يمكنك أن تفعل مع MCP Agentic Wallet — open-source session management for x402؟

  • Host creates event — deploys an escrow smart contract on Base with entry fee + prize pool
  • Drivers connect wallet — sign EIP-2612 Permit via this library, get a session token
  • Drivers pay entry fee — transferFrom settles the entry to the escrow contract
  • Race happens in iRacing — server polls iRacing Data API for finish order
  • Smart contract auto-disburses — verified winners receive USDC/SOL from the prize pool

التثبيت

خطوات التثبيت موجودة في التوثيق أدناه. التوثيق

التوثيق

مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.

المحتويات
  1. MCP Agentic Wallet
  2. What This Is
  3. Quick Start
  4. How It Works
  5. Core Library (@mcp-agentic-wallet/core)
  6. Security
  7. Documentation
  8. Tech Stack
  9. Use Case: iRacing + Blockchain
  10. Configuration
  11. License

MCP Agentic Wallet

Open-source EIP-2612 Permit-based wallet sessions for AI agents. The reference implementation for paid MCP servers — verify signatures, manage sessions, settle on-chain. No API keys. No recurring charges.

What This Is

A human connects their crypto wallet, signs a one-time EIP-2612 Permit (gasless — no transaction fee), and receives a session token. AI agents use this token in MCP requests to pay for tool calls with USDC on Base. The server settles each call on-chain via transferFrom.

No API keys. No recurring charges. No per-call wallet signatures. The permit is the policy.

This is the reference implementation used by mcpvot.xyz — an x402 payment facilitator for MCP servers. The open-source core (@mcp-agentic-wallet/core) is framework-agnostic and works with any MCP server or Next.js app.

Quick Start

1. Install the core library
npm install @mcp-agentic-wallet/core viem
2. Use in your MCP server
import { InMemoryStore, settleCall } from '@mcp-agentic-wallet/core';

const store = new InMemoryStore();

// In your MCP tool handler:
const token = req.headers.get('Session-Token');
const session = store.getSession(token);
if (!session) return new Response('Payment required', { status: 402 });

// Consume budget ($0.005 = 5000 atomic USDC units)
const result = store.consumeBudget(token, 5000n);
if (!result.ok) return new Response('Insufficient budget', { status: 402 });

// Settle on-chain
await settleCall(session.humanAddress, 5000n, {
  treasuryAddress: process.env.TREASURY_ADDRESS!,
  hotWalletKey: process.env.HOT_WALLET_PRIVATE_KEY,
});

return Response.json({ result: 'your data' });
3. Run the reference server
git clone https://github.com/MCPVOT/mcp-agentic-wallet.git
cd mcp-agentic-wallet
npm install
cp .env.example .env.local  # Configure your treasury + hot wallet key
npm run dev

Visit http://localhost:3000/wallet to connect a wallet and authorize a session.

How It Works

Human                          Server                        Agent
  │                              │                              │
  │── connect wallet ──────────►│                              │
  │── sign EIP-2612 Permit ───►│                              │
  │   (gasless, 1-time)           │── verify signature ──────►│ (on-chain)
  │                              │── submit permit() ────────►│ (on-chain, gas)
  │                              │── create session ──────────┐│
  │◄─ return session token ─────│◄───────────────────────────┘│
  │                              │                              │
  │                              │◄── Session-Token header ────│
  │                              │── consume budget ───────────┐│
  │                              │── transferFrom() ──────────►││ (on-chain, gas)
  │                              │── return tool data ─────────┘│
  │                              │◄──────────────────────────────│

Core Library (@mcp-agentic-wallet/core)

Class/FunctionDescription
InMemoryStoreSession store (in-memory, pluggable for KV/Redis)
verifyPermit()Verifies EIP-712 Permit signature on-chain via viem
settleCall()Executes transferFrom(human, treasury, amount) on Base
submitPermit()Submits the permit() transaction to USDC contract
checkAllowance()Reads on-chain USDC allowance for an owner→spender pair
checkRateLimit()Simple rate limiter (per-wallet)
toSessionInfo()Converts session to safe client-facing info (no permit signature)

Security

See SECURITY.md for the full threat model.

Key features:

  • EIP-712 signature verification — server verifies every permit signature on-chain before creating a session
  • Allowance cap — max $100 USDC per session (configurable)
  • Deadline cap — max 30 days
  • Rate limiting — 5 authorizations per wallet per hour
  • Session revocation — humans can revoke anytime
  • Settlement debt tracking — sessions suspended after 3 failed settlements
  • Spender verification — EIP-712 verification inherently checks spender === treasury

Documentation

Tech Stack

  • EIP-2612 (Permit) — gasless approval via typed data signature
  • EIP-712 — typed data signing and verification
  • USDC (FiatTokenV2) on Base Mainnet (chainId 8453)
  • viem — TypeScript Ethereum library
  • Next.js — reference server implementation
  • Model Context Protocol — MCP 2025-11-25 spec

Use Case: iRacing + Blockchain

MCPVOT uses this wallet to power on-chain sim-racing events:

  1. Host creates event — deploys an escrow smart contract on Base with entry fee + prize pool
  2. Drivers connect wallet — sign EIP-2612 Permit via this library, get a session token
  3. Drivers pay entry fee — transferFrom settles the entry to the escrow contract
  4. Race happens in iRacing — server polls iRacing Data API for finish order
  5. Smart contract auto-disburses — verified winners receive USDC/SOL from the prize pool

The iRacing MCP tools (get_race_results, lookup_driver, search_hosted_races) are available at mcpvot.xyz and use the same session-token flow for payment.

Configuration

Env VarRequiredDefaultDescription
TREASURY_ADDRESSYes—Address that receives USDC payments
HOT_WALLET_PRIVATE_KEYYes—EOA private key for gas (never commit to git!)
BASE_RPC_URLNohttps://mainnet.base.orgBase Mainnet RPC
NEXT_PUBLIC_TREASURY_ADDRESSYes—Treasury shown in wallet UI

License

MIT — see LICENSE

الأسئلة الشائعة

ما هو MCP Agentic Wallet — open-source session management for x402؟

Open-source EIP-2612 Permit-based wallet sessions for AI agents using MCP.

كيف أثبّت MCP Agentic Wallet — open-source session management for x402؟

اتبع خطوات التثبيت في توثيقه المعروض في هذه الصفحة وفي مستودعه.

هل MCP Agentic Wallet — open-source session management for x402 مفتوح المصدر؟

نعم. شيفرته متاحة على GitHub بترخيص MIT.

من يصون MCP Agentic Wallet — open-source session management for x402؟

ينشره MCPVOT. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.

من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.