Official server.json
{
"name": "io.github.Fizzl13/presign-guard-wallet",
"title": "presign-guard wallet",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"version": "0.19.0",
"packages": [
{
"version": "0.19.0",
"transport": {
"type": "stdio"
},
"identifier": "presign-guard-wallet-mcp",
"registryType": "npm",
"environmentVariables": [
{
"name": "AGENT_KEY",
"isSecret": true,
"isRequired": true,
"description": "Private key of the agent's own wallet (a separate wallet holding only what the agent may spend)"
},
{
"name": "LIMIT_USDC_PER_TX",
"description": "Most USDC per payment or transfer without asking you, e.g. 5"
},
{
"name": "LIMIT_USDC_PER_DAY",
"description": "Daily USDC budget, e.g. 20"
},
{
"name": "TELEGRAM_BOT_TOKEN",
"isSecret": true,
"description": "Telegram bot that asks you to approve anything over a limit"
},
{
"name": "TELEGRAM_CHAT_ID",
"description": "Your Telegram chat id (approvals go only there)"
},
{
"name": "AC2_OWNER",
"description": "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)"
},
{
"name": "WALLET_SERVER_URL",
"description": "Instead of LIMIT_* and TELEGRAM_*: a wallet server keeping one budget for all your agents"
},
{
"name": "WALLET_SERVER_KEY",
"isSecret": true,
"description": "The agent key (awk_…) from the wallet server's dashboard"
},
{
"name": "CHAIN",
"description": "base (default), ethereum, optimism, arbitrum, polygon or bsc"
},
{
"name": "MAX_PAYMENT_USD",
"description": "Most a single x402 API call may cost, in dollars (default 1)"
},
{
"name": "ALLOW_LIST",
"description": "Optional: only pay or sign for these addresses (0x, XRPL r… or Algorand, comma-separated); anything else needs approval. Not with a wallet server"
},
{
"name": "PRESIGN_CREDIT_KEY",
"isSecret": true,
"description": "Optional presign-guard credit key (pgc_…) to pay the $0.01 checks from prepaid credits"
},
{
"name": "RPC_URL",
"description": "Optional RPC URL for the chain"
},
{
"name": "TEMPO",
"description": "off to never pay MPP charges on Tempo (default on: paid in USDC.e on Tempo from the same address)"
},
{
"name": "TEMPO_CHAIN",
"description": "4217 (Tempo, default) or 42431 (Moderato testnet)"
},
{
"name": "TEMPO_RPC_URL",
"description": "Optional Tempo RPC URL"
},
{
"name": "MPP_SESSION_DEPOSIT",
"description": "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"
},
{
"name": "SOLANA_PRIVATE_KEY",
"isSecret": true,
"description": "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)"
},
{
"name": "SOLANA_NETWORK",
"description": "mainnet (default) or devnet"
},
{
"name": "SOLANA_RPC_URL",
"description": "Optional Solana RPC URL"
},
{
"name": "ALGORAND_MNEMONIC",
"isSecret": true,
"description": "Optional: the agent's own Algorand account (25 words); pays x402 offers in USDC on Algorand (counted toward the USDC limits)"
},
{
"name": "ALGORAND_NETWORK",
"description": "mainnet (default) or testnet"
},
{
"name": "XRPL_SEED",
"isSecret": true,
"description": "Optional: the agent's own XRPL account seed; pays x402 offers in RLUSD on the XRP Ledger (counted toward the USDC limits)"
},
{
"name": "XRPL_NETWORK",
"description": "mainnet (default) or testnet"
},
{
"name": "XRPL_WS_URL",
"description": "Optional XRPL node websocket URL"
}
]
}
],
"repository": {
"url": "https://github.com/Fizzl13/x402-examples",
"source": "github",
"subfolder": "wallet-mcp"
},
"websiteUrl": "https://wallet.fizzl.eu/demo",
"description": "Agent wallet with limits: pays x402/MPP on Base, Solana, Tempo, XRPL and Algorand; phone approval."
}