agentwallet-mcp 1.13.6 → 1.13.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/build/index.js +10 -3
  2. package/package.json +2 -2
package/build/index.js CHANGED
@@ -579,7 +579,7 @@ function resolveChainId(network) {
579
579
  const AddressSchema = z.string().regex(/^(0x[a-fA-F0-9]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})$/, 'Must be a 0x-prefixed 40-hex EVM address or a base58 Solana address');
580
580
  const server = new McpServer({
581
581
  name: 'agentwallet',
582
- version: '1.13.6',
582
+ version: '1.13.7',
583
583
  }, {
584
584
  instructions: `AgentWallet gives AI agents their own blockchain wallets. ${anyLocalMode()
585
585
  ? 'This server runs in LOCAL (self-custody) mode: the operator supplied the key, signing happens in this process, and the only spend guards are the AGENTWALLET_MAX_TX_* environment caps. There is no server-side pause, daily limit or approval email; pause_wallet, unpause_wallet and delete_wallet are refused.'
@@ -1712,10 +1712,17 @@ server.tool('get_chains', 'List all supported chains (EVM + Solana) with their c
1712
1712
  });
1713
1713
  // ─── Tool: delete_wallet ─────────────────────────────────────────
1714
1714
  server.tool('delete_wallet', 'Delete (soft-delete) a wallet. The wallet will no longer appear in listings ' +
1715
- 'and cannot be used for transactions.', {
1715
+ 'and cannot be used for transactions. The wallet is read first and the delete names its address, ' +
1716
+ 'so a wallet that cannot be read is never deleted.', {
1716
1717
  wallet_id: z.number().int().describe('Wallet ID to delete'),
1717
1718
  }, async ({ wallet_id }) => {
1718
- const data = await api(`/wallets/${wallet_id}`, 'DELETE');
1719
+ // The server asks the caller to name the wallet it means to delete, so a
1720
+ // leaked API key alone cannot destroy a key (2026-10-04 audit, server 1.7.1).
1721
+ const w = (await api(`/wallets/${wallet_id}`, 'GET', undefined, { 'X-AGW-SKIP-X402': 'true' }));
1722
+ const address = String(w?.address || w?.wallet_address || '');
1723
+ if (!address)
1724
+ throw new Error(`Wallet ${wallet_id} could not be read (${serverText(w?.error) || 'no address in the response'}); nothing was deleted.`);
1725
+ const data = await api(`/wallets/${wallet_id}`, 'DELETE', { confirm: address });
1719
1726
  return jsonResponse(data);
1720
1727
  });
1721
1728
  // ─── Tool: create_paywall ────────────────────────────────────────
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "agentwallet-mcp",
3
3
  "mcpName": "io.github.hifriendbot/agentwallet",
4
- "version": "1.13.6",
4
+ "version": "1.13.7",
5
5
  "description": "MCP server for AgentWallet: self-custody local signing on EVM and Solana, or hosted wallets. Sign, broadcast, pay x402 invoices, and accept x402 payments.",
6
6
  "type": "module",
7
7
  "main": "build/index.js",
@@ -16,7 +16,7 @@
16
16
  "scripts": {
17
17
  "build": "tsc",
18
18
  "start": "node build/index.js",
19
- "test": "node test/x402-payment.test.mjs && node test/eip3009.test.mjs && node test/permit2-risk.test.mjs && node test/token-cap.test.mjs && node test/spl-cap.test.mjs && node test/unknown-decimals-cap.test.mjs && node test/decimals-range-cap.test.mjs && node test/local-mode.test.mjs && node test/ssrf-guard.test.mjs && node test/x402-policy.test.mjs && node test/local-guard-shape.test.mjs && node test/allowance-total-cap.test.mjs && node test/autopay-scheme.test.mjs && node test/spl-recipient-guard.test.mjs && node test/approval-binding.test.mjs && node test/ata-rent-size.test.mjs && node test/final-url-guard.test.mjs && node test/audit-1135.test.mjs && node test/local-no-autopay.test.mjs && node test/audit-1136.test.mjs",
19
+ "test": "node test/x402-payment.test.mjs && node test/eip3009.test.mjs && node test/permit2-risk.test.mjs && node test/token-cap.test.mjs && node test/spl-cap.test.mjs && node test/unknown-decimals-cap.test.mjs && node test/decimals-range-cap.test.mjs && node test/local-mode.test.mjs && node test/ssrf-guard.test.mjs && node test/x402-policy.test.mjs && node test/local-guard-shape.test.mjs && node test/allowance-total-cap.test.mjs && node test/autopay-scheme.test.mjs && node test/spl-recipient-guard.test.mjs && node test/approval-binding.test.mjs && node test/ata-rent-size.test.mjs && node test/final-url-guard.test.mjs && node test/audit-1135.test.mjs && node test/local-no-autopay.test.mjs && node test/audit-1136.test.mjs && node test/delete-confirm.test.mjs",
20
20
  "prepublishOnly": "npm run build"
21
21
  },
22
22
  "keywords": [