presign-guard-wallet-mcp
An MCP server providing an agent wallet with spending limits and phone approvals for AI agents. It allows agents to pay for x402 APIs and send USDC on networks like Base, Solana, Algorand, and XRPL within user-defined budgets, while checking every signature against drainers and sanctioned addresses via presign-guard.
Package and access
Local package with source-attributed installation metadata. Koskamo does not execute packages during review.
What you can do with it
- Pay for x402 APIs within spending limits
- Send USDC on Base, Solana, Algorand, or XRPL
- Approve transactions above limits via phone or Telegram
- Check signatures against drainers and sanctions
Source and maintenance
- Maintenance checked
Packages and installation
Source-provided package data. Koskamo has not executed or live-probed this package.
presign-guard-wallet-mcp 0.30.0
{
"version": "0.30.0",
"transport": "stdio",
"identifier": "presign-guard-wallet-mcp",
"registryType": "npm",
"environmentVariables": [
{
"name": "AGENT_KEY",
"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",
"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",
"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",
"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",
"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",
"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",
"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"
}
]
}Tools
Reported by the attributed source; not independently observed by Koskamo.
Connect from your client
Each snippet configures the same source-provided package; replace placeholders before use.
Cursor
{
"mcpServers": {
"presign-guard-wallet-mcp": {
"command": "npx",
"args": [
"-y",
"presign-guard-wallet-mcp@0.30.0"
],
"env": {
"AGENT_KEY": "<YOUR_AGENT_KEY>",
"LIMIT_USDC_PER_TX": "<YOUR_LIMIT_USDC_PER_TX>",
"LIMIT_USDC_PER_DAY": "<YOUR_LIMIT_USDC_PER_DAY>",
"TELEGRAM_BOT_TOKEN": "<YOUR_TELEGRAM_BOT_TOKEN>",
"TELEGRAM_CHAT_ID": "<YOUR_TELEGRAM_CHAT_ID>",
"AC2_OWNER": "<YOUR_AC2_OWNER>",
"WALLET_SERVER_URL": "<YOUR_WALLET_SERVER_URL>",
"WALLET_SERVER_KEY": "<YOUR_WALLET_SERVER_KEY>",
"CHAIN": "<YOUR_CHAIN>",
"MAX_PAYMENT_USD": "<YOUR_MAX_PAYMENT_USD>",
"ALLOW_LIST": "<YOUR_ALLOW_LIST>",
"PRESIGN_CREDIT_KEY": "<YOUR_PRESIGN_CREDIT_KEY>",
"RPC_URL": "<YOUR_RPC_URL>",
"TEMPO": "<YOUR_TEMPO>",
"TEMPO_CHAIN": "<YOUR_TEMPO_CHAIN>",
"TEMPO_RPC_URL": "<YOUR_TEMPO_RPC_URL>",
"MPP_SESSION_DEPOSIT": "<YOUR_MPP_SESSION_DEPOSIT>",
"SOLANA_PRIVATE_KEY": "<YOUR_SOLANA_PRIVATE_KEY>",
"SOLANA_NETWORK": "<YOUR_SOLANA_NETWORK>",
"SOLANA_RPC_URL": "<YOUR_SOLANA_RPC_URL>",
"ALGORAND_MNEMONIC": "<YOUR_ALGORAND_MNEMONIC>",
"ALGORAND_NETWORK": "<YOUR_ALGORAND_NETWORK>",
"XRPL_SEED": "<YOUR_XRPL_SEED>",
"XRPL_NETWORK": "<YOUR_XRPL_NETWORK>",
"XRPL_WS_URL": "<YOUR_XRPL_WS_URL>"
}
}
}
}Cline
{
"mcpServers": {
"presign-guard-wallet-mcp": {
"command": "npx",
"args": [
"-y",
"presign-guard-wallet-mcp@0.30.0"
],
"env": {
"AGENT_KEY": "<YOUR_AGENT_KEY>",
"LIMIT_USDC_PER_TX": "<YOUR_LIMIT_USDC_PER_TX>",
"LIMIT_USDC_PER_DAY": "<YOUR_LIMIT_USDC_PER_DAY>",
"TELEGRAM_BOT_TOKEN": "<YOUR_TELEGRAM_BOT_TOKEN>",
"TELEGRAM_CHAT_ID": "<YOUR_TELEGRAM_CHAT_ID>",
"AC2_OWNER": "<YOUR_AC2_OWNER>",
"WALLET_SERVER_URL": "<YOUR_WALLET_SERVER_URL>",
"WALLET_SERVER_KEY": "<YOUR_WALLET_SERVER_KEY>",
"CHAIN": "<YOUR_CHAIN>",
"MAX_PAYMENT_USD": "<YOUR_MAX_PAYMENT_USD>",
"ALLOW_LIST": "<YOUR_ALLOW_LIST>",
"PRESIGN_CREDIT_KEY": "<YOUR_PRESIGN_CREDIT_KEY>",
"RPC_URL": "<YOUR_RPC_URL>",
"TEMPO": "<YOUR_TEMPO>",
"TEMPO_CHAIN": "<YOUR_TEMPO_CHAIN>",
"TEMPO_RPC_URL": "<YOUR_TEMPO_RPC_URL>",
"MPP_SESSION_DEPOSIT": "<YOUR_MPP_SESSION_DEPOSIT>",
"SOLANA_PRIVATE_KEY": "<YOUR_SOLANA_PRIVATE_KEY>",
"SOLANA_NETWORK": "<YOUR_SOLANA_NETWORK>",
"SOLANA_RPC_URL": "<YOUR_SOLANA_RPC_URL>",
"ALGORAND_MNEMONIC": "<YOUR_ALGORAND_MNEMONIC>",
"ALGORAND_NETWORK": "<YOUR_ALGORAND_NETWORK>",
"XRPL_SEED": "<YOUR_XRPL_SEED>",
"XRPL_NETWORK": "<YOUR_XRPL_NETWORK>",
"XRPL_WS_URL": "<YOUR_XRPL_WS_URL>"
}
}
}
}VS Code
{
"servers": {
"presign-guard-wallet-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"presign-guard-wallet-mcp@0.30.0"
],
"env": {
"AGENT_KEY": "<YOUR_AGENT_KEY>",
"LIMIT_USDC_PER_TX": "<YOUR_LIMIT_USDC_PER_TX>",
"LIMIT_USDC_PER_DAY": "<YOUR_LIMIT_USDC_PER_DAY>",
"TELEGRAM_BOT_TOKEN": "<YOUR_TELEGRAM_BOT_TOKEN>",
"TELEGRAM_CHAT_ID": "<YOUR_TELEGRAM_CHAT_ID>",
"AC2_OWNER": "<YOUR_AC2_OWNER>",
"WALLET_SERVER_URL": "<YOUR_WALLET_SERVER_URL>",
"WALLET_SERVER_KEY": "<YOUR_WALLET_SERVER_KEY>",
"CHAIN": "<YOUR_CHAIN>",
"MAX_PAYMENT_USD": "<YOUR_MAX_PAYMENT_USD>",
"ALLOW_LIST": "<YOUR_ALLOW_LIST>",
"PRESIGN_CREDIT_KEY": "<YOUR_PRESIGN_CREDIT_KEY>",
"RPC_URL": "<YOUR_RPC_URL>",
"TEMPO": "<YOUR_TEMPO>",
"TEMPO_CHAIN": "<YOUR_TEMPO_CHAIN>",
"TEMPO_RPC_URL": "<YOUR_TEMPO_RPC_URL>",
"MPP_SESSION_DEPOSIT": "<YOUR_MPP_SESSION_DEPOSIT>",
"SOLANA_PRIVATE_KEY": "<YOUR_SOLANA_PRIVATE_KEY>",
"SOLANA_NETWORK": "<YOUR_SOLANA_NETWORK>",
"SOLANA_RPC_URL": "<YOUR_SOLANA_RPC_URL>",
"ALGORAND_MNEMONIC": "<YOUR_ALGORAND_MNEMONIC>",
"ALGORAND_NETWORK": "<YOUR_ALGORAND_NETWORK>",
"XRPL_SEED": "<YOUR_XRPL_SEED>",
"XRPL_NETWORK": "<YOUR_XRPL_NETWORK>",
"XRPL_WS_URL": "<YOUR_XRPL_WS_URL>"
}
}
}
}Claude Desktop
{
"mcpServers": {
"presign-guard-wallet-mcp": {
"command": "npx",
"args": [
"-y",
"presign-guard-wallet-mcp@0.30.0"
],
"env": {
"AGENT_KEY": "<YOUR_AGENT_KEY>",
"LIMIT_USDC_PER_TX": "<YOUR_LIMIT_USDC_PER_TX>",
"LIMIT_USDC_PER_DAY": "<YOUR_LIMIT_USDC_PER_DAY>",
"TELEGRAM_BOT_TOKEN": "<YOUR_TELEGRAM_BOT_TOKEN>",
"TELEGRAM_CHAT_ID": "<YOUR_TELEGRAM_CHAT_ID>",
"AC2_OWNER": "<YOUR_AC2_OWNER>",
"WALLET_SERVER_URL": "<YOUR_WALLET_SERVER_URL>",
"WALLET_SERVER_KEY": "<YOUR_WALLET_SERVER_KEY>",
"CHAIN": "<YOUR_CHAIN>",
"MAX_PAYMENT_USD": "<YOUR_MAX_PAYMENT_USD>",
"ALLOW_LIST": "<YOUR_ALLOW_LIST>",
"PRESIGN_CREDIT_KEY": "<YOUR_PRESIGN_CREDIT_KEY>",
"RPC_URL": "<YOUR_RPC_URL>",
"TEMPO": "<YOUR_TEMPO>",
"TEMPO_CHAIN": "<YOUR_TEMPO_CHAIN>",
"TEMPO_RPC_URL": "<YOUR_TEMPO_RPC_URL>",
"MPP_SESSION_DEPOSIT": "<YOUR_MPP_SESSION_DEPOSIT>",
"SOLANA_PRIVATE_KEY": "<YOUR_SOLANA_PRIVATE_KEY>",
"SOLANA_NETWORK": "<YOUR_SOLANA_NETWORK>",
"SOLANA_RPC_URL": "<YOUR_SOLANA_RPC_URL>",
"ALGORAND_MNEMONIC": "<YOUR_ALGORAND_MNEMONIC>",
"ALGORAND_NETWORK": "<YOUR_ALGORAND_NETWORK>",
"XRPL_SEED": "<YOUR_XRPL_SEED>",
"XRPL_NETWORK": "<YOUR_XRPL_NETWORK>",
"XRPL_WS_URL": "<YOUR_XRPL_WS_URL>"
}
}
}
}Let your agent find its tools
Find servers like presign-guard-wallet-mcp from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.