mcpField
M
MCP Agentic Wallet — open-source session management for x402

MCP Agentic Wallet — open-source session management for x402

Local
github.com/MCPVOTFinance0Updated 13w ago

About MCP Agentic Wallet — open-source session management for x402

MCP Agentic Wallet is an open-source library and reference implementation for session-based USDC payments by AI agents. It uses one-time EIP-2612 Permit authorization and on-chain settlement on Base.

Key features

  1. 01Create wallet-authorized sessions
  2. 02Verify EIP-2612 Permit signatures
  3. 03Settle USDC calls on Base
  4. 04Apply allowance and deadline caps
  5. 05Revoke sessions and limit rates

Use cases

  1. 01Add paid tool calls to an MCP server
  2. 02Authorize agent payments with a wallet session
  3. 03Settle MCP usage in USDC on Base

MCP support

The core library integrates with MCP servers to authenticate session tokens and settle paid tool calls. It is designed to work with any MCP server.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

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.

License: MIT TypeScript viem Base MCP

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

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.