presign-guard wallet MCP server
io.github.Fizzl13 · Updated
Agent wallet with limits: pays x402/MPP on Base, Solana, Tempo, XRPL and Algorand; phone approval.
At a glance
presign-guard wallet is an MCP server in the Dev Tools & Git category. It runs locally over stdio via `npx -y presign-guard-wallet-mcp`, and needs AGENT_KEY, TELEGRAM_BOT_TOKEN, WALLET_SERVER_KEY, PRESIGN_CREDIT_KEY, SOLANA_PRIVATE_KEY, ALGORAND_MNEMONIC and XRPL_SEED. It scores B (75/100) on the MCP Skills Hub health score as of Oct 28, 2026.
One-click install
Opens your editor and pre-fills the config. Your editor will ask before adding it.
How to install presign-guard wallet in your AI client
Setup for Claude Code, Claude Desktop, Cursor, Codex, Windsurf, Cline and VS Code — copy-paste ready.
How to install presign-guard wallet in Claude CodeAnthropic's agentic CLI
Add the server
bashclaude mcp add presign-guard-wallet -e 'AGENT_KEY=<AGENT_KEY>' -e 'TELEGRAM_BOT_TOKEN=<TELEGRAM_BOT_TOKEN>' -e 'WALLET_SERVER_KEY=<WALLET_SERVER_KEY>' -e 'PRESIGN_CREDIT_KEY=<PRESIGN_CREDIT_KEY>' -e 'SOLANA_PRIVATE_KEY=<SOLANA_PRIVATE_KEY>' -e 'ALGORAND_MNEMONIC=<ALGORAND_MNEMONIC>' -e 'XRPL_SEED=<XRPL_SEED>' -- npx -y presign-guard-wallet-mcpFill in your credentials
Replace <AGENT_KEY>, <TELEGRAM_BOT_TOKEN>, <WALLET_SERVER_KEY>, <PRESIGN_CREDIT_KEY>, <SOLANA_PRIVATE_KEY>, <ALGORAND_MNEMONIC>, <XRPL_SEED> with your real values. Keep secrets out of any config file you commit.
Verify it's connected
bashclaude mcp listSharing it with your team?
Add `--scope project` to write it to .mcp.json in the repository root, which you can commit (with the secrets left as environment variables).
Use it in a session
Ask Claude to use the tools this server exposes. It discovers them automatically.
How to install presign-guard wallet in Claude DesktopDesktop app (MCP config)
Open your MCP config
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json · Windows: %APPDATA%\Claude\claude_desktop_config.json
Add this server
json{ "mcpServers": { "presign-guard-wallet": { "command": "npx", "args": [ "-y", "presign-guard-wallet-mcp" ], "env": { "AGENT_KEY": "<AGENT_KEY>", "TELEGRAM_BOT_TOKEN": "<TELEGRAM_BOT_TOKEN>", "WALLET_SERVER_KEY": "<WALLET_SERVER_KEY>", "PRESIGN_CREDIT_KEY": "<PRESIGN_CREDIT_KEY>", "SOLANA_PRIVATE_KEY": "<SOLANA_PRIVATE_KEY>", "ALGORAND_MNEMONIC": "<ALGORAND_MNEMONIC>", "XRPL_SEED": "<XRPL_SEED>" } } } }Fill in your credentials
Replace <AGENT_KEY>, <TELEGRAM_BOT_TOKEN>, <WALLET_SERVER_KEY>, <PRESIGN_CREDIT_KEY>, <SOLANA_PRIVATE_KEY>, <ALGORAND_MNEMONIC>, <XRPL_SEED> with your real values. Keep secrets out of any config file you commit.
Restart Claude Desktop
The tools appear under the 🔌 menu once the app reloads.
How to install presign-guard wallet in CursorAI-first code editor
Create / edit .cursor/mcp.json in your project
json{ "mcpServers": { "presign-guard-wallet": { "command": "npx", "args": [ "-y", "presign-guard-wallet-mcp" ], "env": { "AGENT_KEY": "<AGENT_KEY>", "TELEGRAM_BOT_TOKEN": "<TELEGRAM_BOT_TOKEN>", "WALLET_SERVER_KEY": "<WALLET_SERVER_KEY>", "PRESIGN_CREDIT_KEY": "<PRESIGN_CREDIT_KEY>", "SOLANA_PRIVATE_KEY": "<SOLANA_PRIVATE_KEY>", "ALGORAND_MNEMONIC": "<ALGORAND_MNEMONIC>", "XRPL_SEED": "<XRPL_SEED>" } } } }Fill in your credentials
Replace <AGENT_KEY>, <TELEGRAM_BOT_TOKEN>, <WALLET_SERVER_KEY>, <PRESIGN_CREDIT_KEY>, <SOLANA_PRIVATE_KEY>, <ALGORAND_MNEMONIC>, <XRPL_SEED> with your real values. Keep secrets out of any config file you commit.
Enable it
Cursor Settings → MCP → toggle the server on. Tools become available to the Composer/Agent.
How to install presign-guard wallet in Codex CLIOpenAI coding agent
Add to ~/.codex/config.toml
toml[mcp_servers.presign-guard-wallet] command = "npx" args = ["-y", "presign-guard-wallet-mcp"] env = { AGENT_KEY = "<AGENT_KEY>", TELEGRAM_BOT_TOKEN = "<TELEGRAM_BOT_TOKEN>", WALLET_SERVER_KEY = "<WALLET_SERVER_KEY>", PRESIGN_CREDIT_KEY = "<PRESIGN_CREDIT_KEY>", SOLANA_PRIVATE_KEY = "<SOLANA_PRIVATE_KEY>", ALGORAND_MNEMONIC = "<ALGORAND_MNEMONIC>", XRPL_SEED = "<XRPL_SEED>" }Fill in your credentials
Replace <AGENT_KEY>, <TELEGRAM_BOT_TOKEN>, <WALLET_SERVER_KEY>, <PRESIGN_CREDIT_KEY>, <SOLANA_PRIVATE_KEY>, <ALGORAND_MNEMONIC>, <XRPL_SEED> with your real values. Keep secrets out of any config file you commit.
Run Codex
Codex loads MCP servers from config.toml on startup and exposes their tools to the agent.
How to install presign-guard wallet in WindsurfCodeium's agentic IDE
Edit ~/.codeium/windsurf/mcp_config.json
json{ "mcpServers": { "presign-guard-wallet": { "command": "npx", "args": [ "-y", "presign-guard-wallet-mcp" ], "env": { "AGENT_KEY": "<AGENT_KEY>", "TELEGRAM_BOT_TOKEN": "<TELEGRAM_BOT_TOKEN>", "WALLET_SERVER_KEY": "<WALLET_SERVER_KEY>", "PRESIGN_CREDIT_KEY": "<PRESIGN_CREDIT_KEY>", "SOLANA_PRIVATE_KEY": "<SOLANA_PRIVATE_KEY>", "ALGORAND_MNEMONIC": "<ALGORAND_MNEMONIC>", "XRPL_SEED": "<XRPL_SEED>" } } } }Fill in your credentials
Replace <AGENT_KEY>, <TELEGRAM_BOT_TOKEN>, <WALLET_SERVER_KEY>, <PRESIGN_CREDIT_KEY>, <SOLANA_PRIVATE_KEY>, <ALGORAND_MNEMONIC>, <XRPL_SEED> with your real values. Keep secrets out of any config file you commit.
Reload
Windsurf → Cascade → refresh MCP servers. Cascade can now call the tools.
How to install presign-guard wallet in ClineVS Code autonomous agent
Open Cline → MCP Servers → Configure
Adds to cline_mcp_settings.json.
Add the server
json{ "mcpServers": { "presign-guard-wallet": { "command": "npx", "args": [ "-y", "presign-guard-wallet-mcp" ], "env": { "AGENT_KEY": "<AGENT_KEY>", "TELEGRAM_BOT_TOKEN": "<TELEGRAM_BOT_TOKEN>", "WALLET_SERVER_KEY": "<WALLET_SERVER_KEY>", "PRESIGN_CREDIT_KEY": "<PRESIGN_CREDIT_KEY>", "SOLANA_PRIVATE_KEY": "<SOLANA_PRIVATE_KEY>", "ALGORAND_MNEMONIC": "<ALGORAND_MNEMONIC>", "XRPL_SEED": "<XRPL_SEED>" } } } }Fill in your credentials
Replace <AGENT_KEY>, <TELEGRAM_BOT_TOKEN>, <WALLET_SERVER_KEY>, <PRESIGN_CREDIT_KEY>, <SOLANA_PRIVATE_KEY>, <ALGORAND_MNEMONIC>, <XRPL_SEED> with your real values. Keep secrets out of any config file you commit.
How to install presign-guard wallet in VS CodeCopilot / MCP support
Create .vscode/mcp.json
json{ "servers": { "presign-guard-wallet": { "type": "stdio", "command": "npx", "args": [ "-y", "presign-guard-wallet-mcp" ], "env": { "AGENT_KEY": "<AGENT_KEY>", "TELEGRAM_BOT_TOKEN": "<TELEGRAM_BOT_TOKEN>", "WALLET_SERVER_KEY": "<WALLET_SERVER_KEY>", "PRESIGN_CREDIT_KEY": "<PRESIGN_CREDIT_KEY>", "SOLANA_PRIVATE_KEY": "<SOLANA_PRIVATE_KEY>", "ALGORAND_MNEMONIC": "<ALGORAND_MNEMONIC>", "XRPL_SEED": "<XRPL_SEED>" } } } }Fill in your credentials
Replace <AGENT_KEY>, <TELEGRAM_BOT_TOKEN>, <WALLET_SERVER_KEY>, <PRESIGN_CREDIT_KEY>, <SOLANA_PRIVATE_KEY>, <ALGORAND_MNEMONIC>, <XRPL_SEED> with your real values. Keep secrets out of any config file you commit.
Start it
VS Code shows a ▶ Start action above the server entry. Agent mode (Copilot Chat) can then use the tools.
What does presign-guard wallet need from you?
API key — Private key of the agent's own wallet (a separate wallet holding only what the agent may spend)
AGENT_KEYrequiredsecretEnvironment variablePrivate key of the agent's own wallet (a separate wallet holding only what the agent may spend)
LIMIT_USDC_PER_TXoptionalEnvironment variableMost USDC per payment or transfer without asking you, e.g. 5
LIMIT_USDC_PER_DAYoptionalEnvironment variableDaily USDC budget, e.g. 20
TELEGRAM_BOT_TOKENoptionalsecretEnvironment variableTelegram bot that asks you to approve anything over a limit
TELEGRAM_CHAT_IDoptionalEnvironment variableYour Telegram chat id (approvals go only there)
AC2_OWNERoptionalEnvironment variableInstead of Telegram: your Algorand address; approvals are signed in your own wallet over AC2 (needs the AC2 service, ac2-cli, paired with your wallet)
WALLET_SERVER_URLoptionalEnvironment variableInstead of LIMIT_* and TELEGRAM_*: a wallet server keeping one budget for all your agents
WALLET_SERVER_KEYoptionalsecretEnvironment variableThe agent key (awk_…) from the wallet server's dashboard
CHAINoptionalEnvironment variablebase (default), ethereum, optimism, arbitrum, polygon or bsc
MAX_PAYMENT_USDoptionalEnvironment variableMost a single x402 API call may cost, in dollars (default 1)
ALLOW_LISToptionalEnvironment variableOptional: only pay or sign for these addresses (0x, XRPL r… or Algorand, comma-separated); anything else needs approval. Not with a wallet server
PRESIGN_CREDIT_KEYoptionalsecretEnvironment variableOptional presign-guard credit key (pgc_…) to pay the $0.01 checks from prepaid credits
RPC_URLoptionalEnvironment variableOptional RPC URL for the chain
TEMPOoptionalEnvironment variableoff to never pay MPP charges on Tempo (default on: paid in USDC.e on Tempo from the same address)
TEMPO_CHAINoptionalEnvironment variable4217 (Tempo, default) or 42431 (Moderato testnet)
TEMPO_RPC_URLoptionalEnvironment variableOptional Tempo RPC URL
MPP_SESSION_DEPOSIToptionalEnvironment variableOptional: pay MPP sessions on Tempo; the USDC.e each channel deposit or top-up puts in (counted toward the USDC limits); then each call is a signed voucher
SOLANA_PRIVATE_KEYoptionalsecretEnvironment variableOptional: the agent's own Solana secret key (base58 or solana-keygen byte array); pays x402 offers in USDC on Solana (checked by presign-guard, counted toward the USDC limits)
SOLANA_NETWORKoptionalEnvironment variablemainnet (default) or devnet
SOLANA_RPC_URLoptionalEnvironment variableOptional Solana RPC URL
ALGORAND_MNEMONICoptionalsecretEnvironment variableOptional: the agent's own Algorand account (25 words); pays x402 offers in USDC on Algorand (counted toward the USDC limits)
ALGORAND_NETWORKoptionalEnvironment variablemainnet (default) or testnet
XRPL_SEEDoptionalsecretEnvironment variableOptional: the agent's own XRPL account seed; pays x402 offers in RLUSD on the XRP Ledger (counted toward the USDC limits)
XRPL_NETWORKoptionalEnvironment variablemainnet (default) or testnet
Pass secrets through your shell environment rather than committing them into a config file.
What tools does presign-guard wallet expose?
This server runs as a local package. We only query remote servers for their tool list — asking this one would mean executing it, so its tools are listed in the documentation below.
What the code can do
Read from the published package source — never executed. Parsed 2 of 2 source files.
This server can read and write files, read your environment variables and read system information.
How it was published
- Published by a verified CI identity (github trusted publishing) rather than a personal token.
- Has a provenance attestation tying this artifact to the commit it was built from.
- 1 npm maintainer — a single point of compromise · last published by GitHub Actions.
Maintainer of this package and think something here is wrong? Tell us and we'll correct it.
Before you install
Signals gathered from the source repo and package registry — not a safety verdict.
What it can reach
- Runs code on your machine — Executes as a local process with your user's permissions, including filesystem access.
- Downloads at launch — The package is fetched from its registry each run unless you pin a version.
- Last commit today — Actively maintained.
- Repository created 1 month ago — Very new project with little track record yet.
- 0 GitHub stars — Very little community usage so far.
Client compatibility
Health score
B · 75Maintenance, adoption, transparency and packaging — not a safety audit. How this is calculated
- Maintenance30%100%
Last commit 0 days ago.
- Adoption20%0%
0 stars.
- Transparency20%75%
3/4: ✓ public source repo, ✓ declared license, ✓ documentation, ✗ discoverable tool list.
- Provenance15%100%
Package and registry entry point at the same repository.
- Packaging15%100%
Publishes a pinned version (0.29.1).
Documentation
Full READMEx402 examples
Spending limits for AI agents, approved from your phone
Give your agents a wallet without giving them a blank cheque:
- [presign-guard-wallet](guard-wallet) (npm): a viem wallet that checks every signature with presign-guard first (drainers, sanctions, unlimited approvals), keeps to your price per purchase and daily budget, and asks you on Telegram for anything above them.
npm i presign-guard-wallet - [fizzl](fizzl-py) (PyPI): the same checks for Python agents, with ready-made LangChain tools.
pip install fizzl - [fizzl-langchain](fizzl-langchain) (npm): the same checks as LangChain.js / LangGraph.js tools, with a free quick check to try them without a wallet.
npm i fizzl-langchain - [presign-guard-ai-sdk](ai-sdk-guard) (npm): safety checks as Vercel AI SDK tools. Before signing, before buying a token and before paying an x402 endpoint, the agent checks first.
npm i presign-guard-ai-sdk - [presign-guard-agentkit](agentkit-guard) (npm): the same for Coinbase AgentKit agents. Wrap the wallet provider in one line, and every transfer, swap, approval, permit and x402 payment is checked and kept to your limits.
npm i presign-guard-agentkit - [presign-guard-solana-agent-kit](solana-agent-kit-guard) (npm): the same for Solana Agent Kit agents (SendAI). Wrap the wallet in one line, and every transfer, swap and token action from every plugin is checked (instructions decoded and simulated) and kept to your SOL and USDC limits.
npm i presign-guard-solana-agent-kit - [presign-guard-wallet-mcp](wallet-mcp) (npm, MCP server): a wallet with spending limits for Claude, Cursor and any MCP client. The agent can pay x402 APIs and send USDC within your budget, and asks you on Telegram above it.
npx -y presign-guard-wallet-mcp@0.29.1 - [presign-guard-payer-screen](payer-screen) (npm): for sellers. Screens who pays your x402 API against the OFAC SDN sanctions list before the payment settles; a listed payer gets 451 and is never charged. EVM, Solana, Algorand, XRP Ledger, no dependencies.
npm i presign-guard-payer-screen - [privy-sanctions-sync](privy-sanctions-sync): for Privy agent wallets. Keeps the condition sets behind Privy's x402 sanctions-screening policy in step with the OFAC SDN list: EVM addresses in both casings, Solana addresses plus their USDC and USDT token accounts, and XRP Ledger addresses, with a ready Privy XRPL policy for x402 payments in RLUSD. It adds before it removes and leaves a set alone when the list is stale.
- [fizzl-paypal-guard](paypal-guard) (npm): for PayPal's Agent Toolkit. Refunds only for the customer in the conversation, never more than was paid, and never on a payment the customer's bank already charged back (PayPal itself lets that refund through). Daily limits on refunds, cancellations and invoices; the owner decides on refunds after the return period and on a customer who keeps asking; an AI check that the action fits what the customer asked; and Approve/Deny on Telegram above the limits.
npm i fizzl-paypal-guard· live demo · video - [fizzl-paypal-guard-mcp](paypal-guard-mcp) (npm, MCP server): PayPal for Claude, Cursor and any MCP client, guarded. The same 47 tools as PayPal's own MCP server, but never more than is left of a payment, no refund while a chargeback is open, your limits on refunds, cancellations and invoices, and Approve/Deny on your phone or in the chat app above them.
npx -y fizzl-paypal-guard-mcp - [wallet-server](wallet-server): one budget and one set of rules for all your agents, a live dashboard, approvals on the dashboard, on your phone (installable app) or Telegram, pause one agent or all, an activity log. It never holds keys or funds: agents still sign and pay themselves.
- [paybox-plugin](paybox-plugin): Fizzl for MoonPay's PayBox. A plugin with the checks (transaction, Solana transaction, token, sanctions, x402 endpoint) and Fizzl Buy, paid per call through PayBox's own x402 approval; two tools are free.
- [agent-allowance](agent-allowance): spending limits kept by the chain. A small contract on Base, no admin: the owner's USDC stays in their own wallet and each agent's wallet is topped up to a small float within a limit a day, so a leaked agent key can take at most that.
[See the dashboard live (demo, example data) →](https://wallet.fizzl.eu/demo)
Agent skills that teach Claude Code, Codex, Cursor and other agents to use the wallet and the Fizzl checks: Fizzl13/fizzl-skills.
import { guardWallet } from "presign-guard-wallet";
const wallet = guardWallet(walletClient, {
pay, // a fetch that pays x402, or creditKey for prepaid presign-guard checks
server: { url: process.env.WALLET_SERVER_URL, key: process.env.WALLET_SERVER_KEY },
});
// Under your price: signs. Above it: you get a request on the dashboard and on Telegram.
// Red verdict: never signed. Server unreachable: stops instead of signing.Try it from your phone: Actions → telegram-demo → Run workflow (a pretend agent, a stub wallet, no money moves).
Research: do AI agents pay safely?
- [agent-safety-bench](agent-safety-bench): an open benchmark of how an AI agent with a wallet handles x402 payments. It checks whether the agent pays honest sellers and refuses the traps: an overcharge, a sanctioned payee, a price over budget, the expensive one of two options, an instruction injected into an API's answer, and a seller that takes the money and asks again. Everything runs offline against simulated sellers with the official x402 client, and nothing is ever paid. It compares agents with and without x402 Doctor's preflight skill.
Paid-API examples
Small, open examples of AI agents combining paid APIs with x402: each call is paid per request in USDC, with no accounts o
…
Excerpt — the full document is on GitHub.
Alternatives to presign-guard wallet
- Agent GuildB · 79See and steer Claude Code, Codex, Antigravity, Grok, Docker Agent and shell sessions in Agent Guild.
- Agent-Native CalendarA · 88Agent-Native Google Calendar - manage events, sync, and public booking
- Vibe Test — Browser Testing AgentA · 88Code-aware browser testing agent — 14 Playwright tools for AI code editors via MCP
- agent-tools (x402 + MCP + A2A directory)B · 78Discover x402 services, MCP servers and A2A agents by intent — agent-tools.cloud directory.
Maintain presign-guard wallet? Add a badge to your README
Shows its health grade, and links readers to install steps for every client.
[](https://mcp-skills-hub.vercel.app/mcps/io-github-fizzl13-presign-guard-wallet)Catalog data refreshed . Something wrong? Report it.