All MCP Servers
Dev Tools & GitMCP RegistrynpmB · 75

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.

Source 0GitHub stars

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

  1. Add the server

    bash
    claude 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-mcp
  2. 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.

  3. Verify it's connected

    bash
    claude mcp list
  4. Sharing 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).

  5. Use it in a session

    Ask Claude to use the tools this server exposes. It discovers them automatically.

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 variable

    Private key of the agent's own wallet (a separate wallet holding only what the agent may spend)

  • LIMIT_USDC_PER_TXoptionalEnvironment variable

    Most USDC per payment or transfer without asking you, e.g. 5

  • LIMIT_USDC_PER_DAYoptionalEnvironment variable

    Daily USDC budget, e.g. 20

  • TELEGRAM_BOT_TOKENoptionalsecretEnvironment variable

    Telegram bot that asks you to approve anything over a limit

  • TELEGRAM_CHAT_IDoptionalEnvironment variable

    Your Telegram chat id (approvals go only there)

  • AC2_OWNERoptionalEnvironment variable

    Instead 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 variable

    Instead of LIMIT_* and TELEGRAM_*: a wallet server keeping one budget for all your agents

  • WALLET_SERVER_KEYoptionalsecretEnvironment variable

    The agent key (awk_…) from the wallet server's dashboard

  • CHAINoptionalEnvironment variable

    base (default), ethereum, optimism, arbitrum, polygon or bsc

  • MAX_PAYMENT_USDoptionalEnvironment variable

    Most a single x402 API call may cost, in dollars (default 1)

  • ALLOW_LISToptionalEnvironment variable

    Optional: 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 variable

    Optional presign-guard credit key (pgc_…) to pay the $0.01 checks from prepaid credits

  • RPC_URLoptionalEnvironment variable

    Optional RPC URL for the chain

  • TEMPOoptionalEnvironment variable

    off to never pay MPP charges on Tempo (default on: paid in USDC.e on Tempo from the same address)

  • TEMPO_CHAINoptionalEnvironment variable

    4217 (Tempo, default) or 42431 (Moderato testnet)

  • TEMPO_RPC_URLoptionalEnvironment variable

    Optional Tempo RPC URL

  • MPP_SESSION_DEPOSIToptionalEnvironment variable

    Optional: 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 variable

    Optional: 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 variable

    mainnet (default) or devnet

  • SOLANA_RPC_URLoptionalEnvironment variable

    Optional Solana RPC URL

  • ALGORAND_MNEMONICoptionalsecretEnvironment variable

    Optional: the agent's own Algorand account (25 words); pays x402 offers in USDC on Algorand (counted toward the USDC limits)

  • ALGORAND_NETWORKoptionalEnvironment variable

    mainnet (default) or testnet

  • XRPL_SEEDoptionalsecretEnvironment variable

    Optional: the agent's own XRPL account seed; pays x402 offers in RLUSD on the XRP Ledger (counted toward the USDC limits)

  • XRPL_NETWORKoptionalEnvironment variable

    mainnet (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

Claude Code: NativeClaude Desktop: NativeCursor: NativeCodex CLI: NativeWindsurf: NativeCline: NativeVS Code: Native

Health score

B · 75

Maintenance, 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 README

x402 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.

js
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.

Maintain presign-guard wallet? Add a badge to your README

Shows its health grade, and links readers to install steps for every client.

markdown
[![presign-guard wallet on MCP Skills Hub](https://mcp-skills-hub.vercel.app/badge/io-github-fizzl13-presign-guard-wallet)](https://mcp-skills-hub.vercel.app/mcps/io-github-fizzl13-presign-guard-wallet)

Catalog data refreshed . Something wrong? Report it.