402-mcp 3.15.3 → 4.0.0
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.
- package/README.md +9 -6
- package/build/config.js +47 -3
- package/build/config.js.map +1 -1
- package/build/index.js +7 -1
- package/build/index.js.map +1 -1
- package/build/l402/bolt11.js +13 -14
- package/build/l402/bolt11.js.map +1 -1
- package/build/tools/buy-credits.d.ts +2 -0
- package/build/tools/buy-credits.js +33 -1
- package/build/tools/buy-credits.js.map +1 -1
- package/build/tools/fetch.d.ts +2 -0
- package/build/tools/fetch.js +45 -6
- package/build/tools/fetch.js.map +1 -1
- package/build/tools/pay.d.ts +1 -7
- package/build/tools/pay.js +26 -6
- package/build/tools/pay.js.map +1 -1
- package/build/wallet/nwc.d.ts +6 -3
- package/build/wallet/nwc.js +50 -106
- package/build/wallet/nwc.js.map +1 -1
- package/build/wallet/types.d.ts +2 -0
- package/llms-full.txt +8 -6
- package/llms.txt +6 -6
- package/package.json +15 -10
package/README.md
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
[](https://nodejs.org/)
|
|
8
8
|
[](./docs/security.md)
|
|
9
9
|
[](https://primal.net/p/npub1mgvlrnf5hm9yf0n5mf9nqmvarhvxkc6remu5ec3vf8r0txqkuk7su0e7q2)
|
|
10
|
+
[](https://github.com/sponsors/TheCryptoDonkey)
|
|
10
11
|
|
|
11
12
|
L402 + x402 client MCP that gives AI agents economic agency. Discover, pay for, and consume any payment-gated API — no human registration, no API keys, no middlemen.
|
|
12
13
|
|
|
@@ -35,6 +36,8 @@ Ask Claude: *"Search for paid joke APIs using l402-search"* — no wallet needed
|
|
|
35
36
|
|
|
36
37
|
Ready to make paid calls? See the [full quickstart guide](./docs/quickstart.md) to set up a wallet and watch your agent pay for its first API call.
|
|
37
38
|
|
|
39
|
+
Requires Node.js 22 or newer.
|
|
40
|
+
|
|
38
41
|
## How it works
|
|
39
42
|
|
|
40
43
|
```mermaid
|
|
@@ -73,7 +76,7 @@ For detailed architecture and payment flow diagrams, see [docs/architecture.md](
|
|
|
73
76
|
|
|
74
77
|
| Variable | Default | Description |
|
|
75
78
|
|----------|---------|-------------|
|
|
76
|
-
| `
|
|
79
|
+
| `NWC_URI_FILE` | - | Path to a private `0600` file containing the NWC bearer URI |
|
|
77
80
|
| `CASHU_TOKENS` | - | Path to Cashu token store file |
|
|
78
81
|
| `MAX_AUTO_PAY_SATS` | 1000 | Safety cap; payments above this require human confirmation |
|
|
79
82
|
| `CREDENTIAL_STORE` | `~/.402-mcp/credentials.json` | Persistent macaroon/credential storage |
|
|
@@ -118,7 +121,7 @@ Services can announce multiple endpoints for the **same service** (same pricing,
|
|
|
118
121
|
|
|
119
122
|
## Payment methods
|
|
120
123
|
|
|
121
|
-
Three
|
|
124
|
+
Three payer methods, tried in priority order:
|
|
122
125
|
|
|
123
126
|
1. **NWC** (Nostr Wallet Connect) — fully autonomous; pays from your connected wallet
|
|
124
127
|
2. **Cashu** — fully autonomous; melts ecash tokens to pay invoices
|
|
@@ -149,19 +152,19 @@ Browse live L402 services at [402.pub](https://402.pub) — the decentralised ma
|
|
|
149
152
|
|
|
150
153
|
| Project | Role |
|
|
151
154
|
|---------|------|
|
|
152
|
-
| [toll-booth](https://github.com/forgesworn/toll-booth) | Payment-
|
|
155
|
+
| [toll-booth](https://github.com/forgesworn/toll-booth) | Payment-backend agnostic HTTP 402 middleware |
|
|
153
156
|
| [satgate](https://github.com/forgesworn/satgate) | Pay-per-token AI inference proxy (built on toll-booth) |
|
|
154
157
|
| **[402-mcp](https://github.com/forgesworn/402-mcp)** | **MCP client — AI agents discover, pay, and consume L402 + x402 APIs** |
|
|
155
158
|
| [402-announce](https://github.com/forgesworn/402-announce) | Publish L402 services on Nostr for decentralised discovery |
|
|
156
159
|
|
|
157
|
-
402-mcp is the **
|
|
160
|
+
402-mcp is the **wallet-provider agnostic** alternative to Lightning Labs' [lightning-agent-tools](https://github.com/lightninglabs/lightning-agent-tools) and Coinbase's x402 — no Lightning node required, multiple wallets, encrypted credentials.
|
|
158
161
|
|
|
159
162
|
<details>
|
|
160
163
|
<summary>Full comparison</summary>
|
|
161
164
|
|
|
162
165
|
| | 402-mcp | Lightning Labs agent tools |
|
|
163
166
|
|---|---|---|
|
|
164
|
-
| **
|
|
167
|
+
| **Payer methods** | NWC + Cashu + human fallback | Lightning only |
|
|
165
168
|
| **Node required?** | No — connects to any NWC wallet | Yes — runs LND |
|
|
166
169
|
| **Server compatibility** | Any L402 server | Aperture-focused |
|
|
167
170
|
| **Spend safety** | Per-payment cap + rolling 60s window | Per-call max-cost |
|
|
@@ -178,7 +181,7 @@ See [CONTRIBUTING.md](./CONTRIBUTING.md) for development setup and guidelines.
|
|
|
178
181
|
|
|
179
182
|
Built by [@forgesworn](https://github.com/forgesworn).
|
|
180
183
|
|
|
181
|
-
- Lightning tips: `
|
|
184
|
+
- Lightning tips: `profusemeat89@walletofsatoshi.com`
|
|
182
185
|
- Nostr: `npub1mgvlrnf5hm9yf0n5mf9nqmvarhvxkc6remu5ec3vf8r0txqkuk7su0e7q2`
|
|
183
186
|
|
|
184
187
|
---
|
package/build/config.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { resolve } from 'node:path';
|
|
2
2
|
import { homedir } from 'node:os';
|
|
3
|
+
import { closeSync, fstatSync, openSync, readSync } from 'node:fs';
|
|
4
|
+
import { inspectNwcConnection } from '@forgesworn/nwc-kit';
|
|
3
5
|
function assertNonNegativeInt(name, value) {
|
|
4
6
|
if (!Number.isFinite(value) || value < 0 || !Number.isInteger(value)) {
|
|
5
7
|
throw new Error(`${name} must be a positive integer or zero; got ${value}`);
|
|
@@ -15,13 +17,55 @@ function assertRange(name, value, min, max) {
|
|
|
15
17
|
throw new Error(`${name} must be an integer between ${min} and ${max}; got ${value}`);
|
|
16
18
|
}
|
|
17
19
|
}
|
|
20
|
+
function readNwcUriFile(filePath) {
|
|
21
|
+
const resolvedPath = resolve(filePath);
|
|
22
|
+
const descriptor = openSync(resolvedPath, 'r');
|
|
23
|
+
let bytes;
|
|
24
|
+
try {
|
|
25
|
+
const stats = fstatSync(descriptor);
|
|
26
|
+
if (!stats.isFile() || stats.size === 0 || stats.size > 8192) {
|
|
27
|
+
throw new Error('NWC_URI_FILE must be a non-empty regular file no larger than 8192 bytes');
|
|
28
|
+
}
|
|
29
|
+
if (process.platform !== 'win32' && (stats.mode & 0o077) !== 0) {
|
|
30
|
+
throw new Error('NWC_URI_FILE permissions are too broad; run chmod 600 on the file');
|
|
31
|
+
}
|
|
32
|
+
bytes = Buffer.allocUnsafe(stats.size);
|
|
33
|
+
let offset = 0;
|
|
34
|
+
while (offset < bytes.length) {
|
|
35
|
+
const count = readSync(descriptor, bytes, offset, bytes.length - offset, null);
|
|
36
|
+
if (count === 0)
|
|
37
|
+
throw new Error('NWC_URI_FILE changed while it was being read');
|
|
38
|
+
offset += count;
|
|
39
|
+
}
|
|
40
|
+
const extra = Buffer.allocUnsafe(1);
|
|
41
|
+
try {
|
|
42
|
+
if (readSync(descriptor, extra, 0, 1, null) !== 0) {
|
|
43
|
+
throw new Error('NWC_URI_FILE changed while it was being read');
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
finally {
|
|
47
|
+
extra.fill(0);
|
|
48
|
+
}
|
|
49
|
+
const uri = bytes.toString('utf-8').trim();
|
|
50
|
+
inspectNwcConnection(uri);
|
|
51
|
+
return uri;
|
|
52
|
+
}
|
|
53
|
+
finally {
|
|
54
|
+
bytes?.fill(0);
|
|
55
|
+
closeSync(descriptor);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
18
58
|
/** Loads and validates configuration from environment variables, applying defaults. */
|
|
19
59
|
export function loadConfig() {
|
|
20
60
|
const defaultCredentialStore = resolve(homedir(), '.402-mcp', 'credentials.json');
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
61
|
+
const rawNwcUri = process.env.NWC_URI;
|
|
62
|
+
const nwcUriFile = process.env.NWC_URI_FILE;
|
|
63
|
+
delete process.env.NWC_URI;
|
|
64
|
+
delete process.env.NWC_URI_FILE;
|
|
65
|
+
if (rawNwcUri !== undefined) {
|
|
66
|
+
throw new Error('NWC_URI is disabled because bearer wallet credentials must not be stored in environment variables; use NWC_URI_FILE');
|
|
24
67
|
}
|
|
68
|
+
const nwcUri = nwcUriFile ? readNwcUriFile(nwcUriFile) : undefined;
|
|
25
69
|
const transport = process.env.TRANSPORT ?? 'stdio';
|
|
26
70
|
if (transport !== 'stdio' && transport !== 'http') {
|
|
27
71
|
throw new Error(`TRANSPORT must be 'stdio' or 'http'; got '${transport}'`);
|
package/build/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/build/index.js
CHANGED
|
@@ -100,7 +100,13 @@ async function payInvoice(invoice, options) {
|
|
|
100
100
|
if (!wallet)
|
|
101
101
|
return { paid: false, method: 'none' };
|
|
102
102
|
const result = await wallet.payInvoice(invoice, { serverOrigin: options?.serverOrigin });
|
|
103
|
-
return {
|
|
103
|
+
return {
|
|
104
|
+
paid: result.paid,
|
|
105
|
+
preimage: result.preimage,
|
|
106
|
+
method: result.method,
|
|
107
|
+
...(result.outcome ? { outcome: result.outcome } : {}),
|
|
108
|
+
...(result.reason ? { reason: result.reason } : {}),
|
|
109
|
+
};
|
|
104
110
|
}
|
|
105
111
|
// Helper: store credential — validates preimage and macaroon to prevent credential poisoning
|
|
106
112
|
const HEX_RE = /^[0-9a-fA-F]+$/;
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/build/l402/bolt11.js
CHANGED
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
const require = createRequire(import.meta.url);
|
|
3
|
-
const bolt11Lib = require('bolt11');
|
|
1
|
+
import { decode } from 'light-bolt11-decoder';
|
|
4
2
|
/** Decodes a BOLT-11 Lightning invoice to extract amount, payment hash, and expiry. */
|
|
5
3
|
export function decodeBolt11(invoice) {
|
|
6
4
|
try {
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const
|
|
17
|
-
|
|
5
|
+
const { sections } = decode(invoice);
|
|
6
|
+
const amountSection = sections.find(s => s.name === 'amount');
|
|
7
|
+
const costSats = amountSection && 'value' in amountSection
|
|
8
|
+
? Math.floor(Number(amountSection.value) / 1000)
|
|
9
|
+
: null;
|
|
10
|
+
const hashSection = sections.find(s => s.name === 'payment_hash');
|
|
11
|
+
const paymentHash = hashSection && 'value' in hashSection
|
|
12
|
+
? hashSection.value
|
|
13
|
+
: null;
|
|
14
|
+
const expirySection = sections.find(s => s.name === 'expiry');
|
|
15
|
+
const expiry = expirySection && 'value' in expirySection
|
|
16
|
+
? expirySection.value
|
|
18
17
|
: 3600;
|
|
19
18
|
return { costSats, paymentHash, expiry };
|
|
20
19
|
}
|
package/build/l402/bolt11.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bolt11.js","sourceRoot":"","sources":["../../src/l402/bolt11.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bolt11.js","sourceRoot":"","sources":["../../src/l402/bolt11.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAQ7C,uFAAuF;AACvF,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;QAEpC,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAA;QAC7D,MAAM,QAAQ,GAAG,aAAa,IAAI,OAAO,IAAI,aAAa;YACxD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;YAChD,CAAC,CAAC,IAAI,CAAA;QAER,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAA;QACjE,MAAM,WAAW,GAAG,WAAW,IAAI,OAAO,IAAI,WAAW;YACvD,CAAC,CAAE,WAAW,CAAC,KAAgB;YAC/B,CAAC,CAAC,IAAI,CAAA;QAER,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAA;QAC7D,MAAM,MAAM,GAAG,aAAa,IAAI,OAAO,IAAI,aAAa;YACtD,CAAC,CAAE,aAAa,CAAC,KAAgB;YACjC,CAAC,CAAC,IAAI,CAAA;QAER,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAA;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IAC5D,CAAC;AACH,CAAC"}
|
|
@@ -12,6 +12,8 @@ export interface BuyCreditsDeps {
|
|
|
12
12
|
paid: boolean;
|
|
13
13
|
preimage?: string;
|
|
14
14
|
method: string;
|
|
15
|
+
outcome?: 'unknown';
|
|
16
|
+
reason?: string;
|
|
15
17
|
}>;
|
|
16
18
|
storeCredential: (origin: string, macaroon: string, preimage: string, paymentHash: string) => boolean;
|
|
17
19
|
decodeBolt11: (invoice: string) => DecodedInvoice;
|
|
@@ -108,9 +108,25 @@ export async function handleBuyCredits(args, deps) {
|
|
|
108
108
|
}
|
|
109
109
|
const payResult = await deps.payInvoice(invoice, { method: args.method, serverOrigin: origin });
|
|
110
110
|
// Roll back spend-limit reservation if payment failed
|
|
111
|
-
if (!payResult.paid
|
|
111
|
+
if (!payResult.paid && payResult.outcome !== 'unknown') {
|
|
112
112
|
deps.spendTracker.unrecord(spendAmount);
|
|
113
113
|
}
|
|
114
|
+
if (payResult.outcome === 'unknown') {
|
|
115
|
+
return {
|
|
116
|
+
content: [{
|
|
117
|
+
type: 'text',
|
|
118
|
+
text: JSON.stringify({
|
|
119
|
+
paid: false,
|
|
120
|
+
paymentState: 'unknown',
|
|
121
|
+
amountSats: args.amountSats,
|
|
122
|
+
paymentHash: decoded.paymentHash,
|
|
123
|
+
method: payResult.method,
|
|
124
|
+
message: payResult.reason ?? 'Payment may have executed. Reconcile this invoice before retrying.',
|
|
125
|
+
}, null, 2),
|
|
126
|
+
}],
|
|
127
|
+
isError: true,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
114
130
|
if (payResult.paid && payResult.preimage) {
|
|
115
131
|
const stored = deps.storeCredential(origin, macaroon, payResult.preimage, decoded.paymentHash ?? '');
|
|
116
132
|
return {
|
|
@@ -128,6 +144,22 @@ export async function handleBuyCredits(args, deps) {
|
|
|
128
144
|
...(stored ? {} : { isError: true }),
|
|
129
145
|
};
|
|
130
146
|
}
|
|
147
|
+
if (payResult.paid) {
|
|
148
|
+
return {
|
|
149
|
+
content: [{
|
|
150
|
+
type: 'text',
|
|
151
|
+
text: JSON.stringify({
|
|
152
|
+
paid: false,
|
|
153
|
+
paymentState: 'unknown',
|
|
154
|
+
amountSats: args.amountSats,
|
|
155
|
+
paymentHash: decoded.paymentHash,
|
|
156
|
+
method: payResult.method,
|
|
157
|
+
message: 'The wallet reported payment without a settlement preimage. Reconcile the original invoice before retrying.',
|
|
158
|
+
}, null, 2),
|
|
159
|
+
}],
|
|
160
|
+
isError: true,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
131
163
|
// Human wallet timed out — return QR so user can pay manually
|
|
132
164
|
if (payResult.method === 'human') {
|
|
133
165
|
let qrText;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buy-credits.js","sourceRoot":"","sources":["../../src/tools/buy-credits.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"buy-credits.js","sourceRoot":"","sources":["../../src/tools/buy-credits.ts"],"names":[],"mappings":"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"}
|
package/build/tools/fetch.d.ts
CHANGED
package/build/tools/fetch.js
CHANGED
|
@@ -149,14 +149,34 @@ export async function handleFetch(args, deps) {
|
|
|
149
149
|
const ietfWithinLimit = deps.spendTracker.tryRecord(ietfChallenge.amountSats, deps.maxSpendPerMinuteSats);
|
|
150
150
|
if (ietfWithinLimit) {
|
|
151
151
|
const ietfPayResult = await deps.payInvoice(ietfChallenge.invoice, { serverOrigin: origin });
|
|
152
|
-
if (!ietfPayResult.paid
|
|
152
|
+
if (!ietfPayResult.paid && ietfPayResult.outcome !== 'unknown') {
|
|
153
153
|
deps.spendTracker.unrecord(ietfChallenge.amountSats);
|
|
154
154
|
}
|
|
155
|
+
if (ietfPayResult.outcome === 'unknown') {
|
|
156
|
+
return {
|
|
157
|
+
content: [{
|
|
158
|
+
type: 'text',
|
|
159
|
+
text: JSON.stringify({
|
|
160
|
+
status: 402,
|
|
161
|
+
protocol: 'ietf-payment',
|
|
162
|
+
paymentState: 'unknown',
|
|
163
|
+
costSats: ietfChallenge.amountSats,
|
|
164
|
+
paymentHash: ietfChallenge.paymentHash,
|
|
165
|
+
message: ietfPayResult.reason ?? 'Payment may have executed. Reconcile this invoice before retrying.',
|
|
166
|
+
}, null, 2),
|
|
167
|
+
}],
|
|
168
|
+
isError: true,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
155
171
|
if (ietfPayResult.paid && ietfPayResult.preimage) {
|
|
156
172
|
if (!HEX_RE.test(ietfPayResult.preimage) || ietfPayResult.preimage.length !== 64) {
|
|
157
|
-
deps.spendTracker.unrecord(ietfChallenge.amountSats);
|
|
158
173
|
return {
|
|
159
|
-
content: [{ type: 'text', text: JSON.stringify({
|
|
174
|
+
content: [{ type: 'text', text: JSON.stringify({
|
|
175
|
+
error: 'Payment was reported but the settlement preimage contains invalid characters — refusing to send it',
|
|
176
|
+
paymentState: 'unknown',
|
|
177
|
+
paymentHash: ietfChallenge.paymentHash,
|
|
178
|
+
message: 'Reconcile the original invoice before retrying.',
|
|
179
|
+
}) }],
|
|
160
180
|
isError: true,
|
|
161
181
|
};
|
|
162
182
|
}
|
|
@@ -298,18 +318,37 @@ export async function handleFetch(args, deps) {
|
|
|
298
318
|
}
|
|
299
319
|
const payResult = await deps.payInvoice(challenge.invoice, { serverOrigin: origin });
|
|
300
320
|
// Roll back spend-limit reservation if payment failed
|
|
301
|
-
if (!payResult.paid
|
|
321
|
+
if (!payResult.paid && payResult.outcome !== 'unknown') {
|
|
302
322
|
deps.spendTracker.unrecord(decoded.costSats);
|
|
303
323
|
}
|
|
324
|
+
if (payResult.outcome === 'unknown') {
|
|
325
|
+
return {
|
|
326
|
+
content: [{
|
|
327
|
+
type: 'text',
|
|
328
|
+
text: JSON.stringify({
|
|
329
|
+
status: 402,
|
|
330
|
+
paymentState: 'unknown',
|
|
331
|
+
costSats: decoded.costSats,
|
|
332
|
+
paymentHash: decoded.paymentHash,
|
|
333
|
+
message: payResult.reason ?? 'Payment may have executed. Reconcile this invoice before retrying.',
|
|
334
|
+
}, null, 2),
|
|
335
|
+
}],
|
|
336
|
+
isError: true,
|
|
337
|
+
};
|
|
338
|
+
}
|
|
304
339
|
if (payResult.paid && payResult.preimage) {
|
|
305
340
|
// Validate preimage (hex) and macaroon (base64-safe) before storage
|
|
306
341
|
// to prevent header injection via Authorization: L402 {macaroon}:{preimage}
|
|
307
342
|
if (!HEX_RE.test(payResult.preimage) || payResult.preimage.length !== 64 || !MACAROON_RE.test(challenge.macaroon)) {
|
|
308
|
-
deps.spendTracker.unrecord(decoded.costSats);
|
|
309
343
|
return {
|
|
310
344
|
content: [{
|
|
311
345
|
type: 'text',
|
|
312
|
-
text: JSON.stringify({
|
|
346
|
+
text: JSON.stringify({
|
|
347
|
+
error: 'Payment was reported but the credential contains invalid characters — refusing to store it',
|
|
348
|
+
paymentState: 'unknown',
|
|
349
|
+
paymentHash: decoded.paymentHash,
|
|
350
|
+
message: 'Reconcile the original invoice before retrying.',
|
|
351
|
+
}),
|
|
313
352
|
}],
|
|
314
353
|
isError: true,
|
|
315
354
|
};
|
package/build/tools/fetch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/tools/fetch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/tools/fetch.ts"],"names":[],"mappings":"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"}
|
package/build/tools/pay.d.ts
CHANGED
|
@@ -21,17 +21,11 @@ export declare function handlePay(args: {
|
|
|
21
21
|
paymentHash?: string;
|
|
22
22
|
method?: WalletMethod;
|
|
23
23
|
}, deps: PayDeps): Promise<{
|
|
24
|
+
isError?: true | undefined;
|
|
24
25
|
content: {
|
|
25
26
|
type: "text";
|
|
26
27
|
text: string;
|
|
27
28
|
}[];
|
|
28
|
-
isError: true;
|
|
29
|
-
} | {
|
|
30
|
-
content: {
|
|
31
|
-
type: "text";
|
|
32
|
-
text: string;
|
|
33
|
-
}[];
|
|
34
|
-
isError?: undefined;
|
|
35
29
|
}>;
|
|
36
30
|
/** Registers the l402-pay tool with the MCP server. */
|
|
37
31
|
export declare function registerPayTool(server: McpServer, deps: PayDeps): void;
|
package/build/tools/pay.js
CHANGED
|
@@ -123,13 +123,13 @@ export async function handlePay(args, deps) {
|
|
|
123
123
|
await new Promise(resolve => setTimeout(resolve, Math.min(intervalMs, remaining)));
|
|
124
124
|
intervalMs = Math.min(intervalMs * 1.5, 5000);
|
|
125
125
|
}
|
|
126
|
-
deps.spendTracker.unrecord(costSats);
|
|
127
126
|
return {
|
|
128
127
|
content: [{
|
|
129
128
|
type: 'text',
|
|
130
129
|
text: JSON.stringify({
|
|
131
130
|
paid: false,
|
|
132
|
-
|
|
131
|
+
paymentState: 'unknown',
|
|
132
|
+
reason: 'Payment not confirmed after 120s. It may still have settled; reconcile this payment before retrying. If you selected a different tier on the payment page, paste the L402 token here.',
|
|
133
133
|
paymentUrl: cachedPaymentUrl,
|
|
134
134
|
}),
|
|
135
135
|
}],
|
|
@@ -138,9 +138,24 @@ export async function handlePay(args, deps) {
|
|
|
138
138
|
}
|
|
139
139
|
const result = await wallet.payInvoice(invoice, { serverOrigin: origin });
|
|
140
140
|
// Roll back spend-limit reservation if payment failed
|
|
141
|
-
if (!result.paid
|
|
141
|
+
if (!result.paid && result.outcome !== 'unknown') {
|
|
142
142
|
deps.spendTracker.unrecord(costSats);
|
|
143
143
|
}
|
|
144
|
+
if (result.paid && !result.preimage) {
|
|
145
|
+
return {
|
|
146
|
+
content: [{
|
|
147
|
+
type: 'text',
|
|
148
|
+
text: JSON.stringify({
|
|
149
|
+
paid: false,
|
|
150
|
+
paymentState: 'unknown',
|
|
151
|
+
credentialsStored: false,
|
|
152
|
+
method: result.method,
|
|
153
|
+
reason: 'The wallet reported payment without a settlement preimage. Reconcile the original invoice before retrying.',
|
|
154
|
+
}, null, 2),
|
|
155
|
+
}],
|
|
156
|
+
isError: true,
|
|
157
|
+
};
|
|
158
|
+
}
|
|
144
159
|
let credentialsStored = false;
|
|
145
160
|
if (result.paid && result.preimage) {
|
|
146
161
|
const storeOrigin = cachedUrl ? new URL(cachedUrl).origin : '';
|
|
@@ -156,19 +171,24 @@ export async function handlePay(args, deps) {
|
|
|
156
171
|
type: 'text',
|
|
157
172
|
text: JSON.stringify({
|
|
158
173
|
paid: result.paid,
|
|
174
|
+
paymentState: result.outcome ?? (result.paid ? 'paid' : 'failed'),
|
|
159
175
|
credentialsStored,
|
|
160
176
|
method: result.method,
|
|
177
|
+
...(result.reason ? { reason: result.reason } : {}),
|
|
161
178
|
}, null, 2),
|
|
162
179
|
}],
|
|
180
|
+
...(result.outcome === 'unknown' ? { isError: true } : {}),
|
|
163
181
|
};
|
|
164
182
|
}
|
|
165
183
|
catch (err) {
|
|
166
|
-
// Roll back spend reservation on exception (payment may not have completed)
|
|
167
|
-
deps.spendTracker.unrecord(costSats);
|
|
168
184
|
return {
|
|
169
185
|
content: [{
|
|
170
186
|
type: 'text',
|
|
171
|
-
text: JSON.stringify({
|
|
187
|
+
text: JSON.stringify({
|
|
188
|
+
error: safeErrorMessage(err),
|
|
189
|
+
paymentState: 'unknown',
|
|
190
|
+
message: 'The payment attempt threw after budget reservation. Reconcile the original invoice before retrying.',
|
|
191
|
+
}),
|
|
172
192
|
}],
|
|
173
193
|
isError: true,
|
|
174
194
|
};
|
package/build/tools/pay.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pay.js","sourceRoot":"","sources":["../../src/tools/pay.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pay.js","sourceRoot":"","sources":["../../src/tools/pay.ts"],"names":[],"mappings":"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"}
|
package/build/wallet/nwc.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import type { NwcClientOptions } from '@forgesworn/nwc-kit';
|
|
1
2
|
import type { WalletProvider } from './types.js';
|
|
2
|
-
/**
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Creates a Nostr Wallet Connect provider that reports success only after an
|
|
5
|
+
* authenticated wallet response and independent BOLT-11 settlement proof.
|
|
6
|
+
*/
|
|
7
|
+
export declare function createNwcWallet(nwcUri: string, clientOptions?: NwcClientOptions): WalletProvider;
|
package/build/wallet/nwc.js
CHANGED
|
@@ -1,121 +1,65 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { NwcClient, NwcError, inspectNwcConnection } from '@forgesworn/nwc-kit';
|
|
2
|
+
import { tryDecodeBolt11, verifyPreimage } from 'farrier-kit';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a Nostr Wallet Connect provider that reports success only after an
|
|
5
|
+
* authenticated wallet response and independent BOLT-11 settlement proof.
|
|
6
|
+
*/
|
|
7
|
+
export function createNwcWallet(nwcUri, clientOptions = {}) {
|
|
8
|
+
// Fail during configuration instead of advertising a wallet that can never
|
|
9
|
+
// pay. Public inspection does not return the bearer secret.
|
|
10
|
+
inspectNwcConnection(nwcUri);
|
|
3
11
|
return {
|
|
4
12
|
method: 'nwc',
|
|
5
13
|
available: true,
|
|
6
14
|
async payInvoice(invoice, _options) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const relay = url.searchParams.get('relay');
|
|
11
|
-
const secret = url.searchParams.get('secret');
|
|
12
|
-
if (!relay || !secret) {
|
|
13
|
-
return { paid: false, method: 'nwc', reason: 'Invalid NWC URI: missing relay or secret' };
|
|
15
|
+
const decoded = tryDecodeBolt11(invoice);
|
|
16
|
+
if (!decoded) {
|
|
17
|
+
return { paid: false, method: 'nwc', reason: 'Invalid BOLT-11 invoice' };
|
|
14
18
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
return { paid: false, method: 'nwc', reason: 'Invalid NWC URI: relay must use ws:// or wss://' };
|
|
19
|
+
if (decoded.amountMsats === null) {
|
|
20
|
+
return { paid: false, method: 'nwc', reason: 'Amountless BOLT-11 invoices require an explicit amount and are refused' };
|
|
18
21
|
}
|
|
19
|
-
let
|
|
20
|
-
let conversationKey;
|
|
22
|
+
let client;
|
|
21
23
|
try {
|
|
22
|
-
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const event = finalizeEvent({
|
|
34
|
-
kind: 23194,
|
|
35
|
-
created_at: Math.floor(Date.now() / 1000),
|
|
36
|
-
tags: [['p', walletPubkey]],
|
|
37
|
-
content: encrypted,
|
|
38
|
-
}, secretBytes);
|
|
39
|
-
// Zeroise secret bytes now that signing is complete
|
|
40
|
-
secretBytes.fill(0);
|
|
41
|
-
secretBytes = undefined;
|
|
42
|
-
const r = await Relay.connect(relay);
|
|
43
|
-
// Capture conversationKey in local const for the closure; clear
|
|
44
|
-
// the outer reference so the finally block doesn't double-zero.
|
|
45
|
-
const ck = conversationKey;
|
|
46
|
-
conversationKey = undefined;
|
|
47
|
-
return new Promise((resolve) => {
|
|
48
|
-
const timeout = setTimeout(() => {
|
|
49
|
-
ck.fill(0);
|
|
50
|
-
r.close();
|
|
51
|
-
resolve({ paid: false, method: 'nwc', reason: 'NWC payment timeout' });
|
|
52
|
-
}, 60_000);
|
|
53
|
-
r.subscribe([{
|
|
54
|
-
kinds: [23195],
|
|
55
|
-
'#e': [event.id],
|
|
56
|
-
authors: [walletPubkey],
|
|
57
|
-
}], {
|
|
58
|
-
onevent: (responseEvent) => {
|
|
59
|
-
clearTimeout(timeout);
|
|
60
|
-
try {
|
|
61
|
-
// Verify the event is from the expected wallet — relay-side
|
|
62
|
-
// filtering is advisory; a compromised relay could inject
|
|
63
|
-
// events from a different pubkey.
|
|
64
|
-
if (responseEvent.pubkey !== walletPubkey || !verifyEvent(responseEvent)) {
|
|
65
|
-
ck.fill(0);
|
|
66
|
-
r.close();
|
|
67
|
-
resolve({ paid: false, method: 'nwc', reason: 'NWC response signature verification failed' });
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
const decrypted = decrypt(responseEvent.content, ck);
|
|
71
|
-
const response = JSON.parse(decrypted);
|
|
72
|
-
const preimage = response.result?.preimage;
|
|
73
|
-
if (typeof preimage === 'string' && preimage && /^[0-9a-fA-F]{64}$/.test(preimage)) {
|
|
74
|
-
ck.fill(0);
|
|
75
|
-
r.close();
|
|
76
|
-
resolve({ paid: true, preimage, method: 'nwc' });
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
ck.fill(0);
|
|
80
|
-
r.close();
|
|
81
|
-
resolve({ paid: false, method: 'nwc', reason: response.error?.message ?? 'Payment failed' });
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
catch {
|
|
85
|
-
ck.fill(0);
|
|
86
|
-
r.close();
|
|
87
|
-
resolve({ paid: false, method: 'nwc', reason: 'NWC response decryption failed' });
|
|
88
|
-
}
|
|
89
|
-
},
|
|
90
|
-
});
|
|
91
|
-
void r.publish(event);
|
|
92
|
-
});
|
|
24
|
+
client = new NwcClient(nwcUri, clientOptions);
|
|
25
|
+
const paid = await client.payInvoice({ invoice });
|
|
26
|
+
if (!verifyPreimage(paid.preimage, decoded.paymentHashHex)) {
|
|
27
|
+
return {
|
|
28
|
+
paid: false,
|
|
29
|
+
method: 'nwc',
|
|
30
|
+
outcome: 'unknown',
|
|
31
|
+
reason: 'NWC wallet responded but settlement could not be proven. Reconcile the original invoice before retrying.',
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
return { paid: true, preimage: paid.preimage, method: 'nwc' };
|
|
93
35
|
}
|
|
94
|
-
catch {
|
|
95
|
-
|
|
96
|
-
|
|
36
|
+
catch (error) {
|
|
37
|
+
if (error instanceof NwcError) {
|
|
38
|
+
if (error.code === 'WALLET_ERROR') {
|
|
39
|
+
return { paid: false, method: 'nwc', reason: error.message };
|
|
40
|
+
}
|
|
41
|
+
if (['PUBLISH_FAILED', 'RESPONSE_TIMEOUT', 'REQUEST_ABORTED', 'CLIENT_CLOSED', 'INVALID_RESPONSE'].includes(error.code)) {
|
|
42
|
+
return {
|
|
43
|
+
paid: false,
|
|
44
|
+
method: 'nwc',
|
|
45
|
+
outcome: 'unknown',
|
|
46
|
+
reason: 'NWC payment outcome is unknown. Reconcile the original invoice before retrying.',
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
// Connection URIs are bearer credentials. Never surface raw errors,
|
|
51
|
+
// relay diagnostics, or exception strings that could contain one.
|
|
52
|
+
return {
|
|
53
|
+
paid: false,
|
|
54
|
+
method: 'nwc',
|
|
55
|
+
outcome: 'unknown',
|
|
56
|
+
reason: 'NWC payment outcome is unknown. Reconcile the original invoice before retrying.',
|
|
57
|
+
};
|
|
97
58
|
}
|
|
98
59
|
finally {
|
|
99
|
-
|
|
100
|
-
if (secretBytes)
|
|
101
|
-
secretBytes.fill(0);
|
|
102
|
-
if (conversationKey)
|
|
103
|
-
conversationKey.fill(0);
|
|
60
|
+
client?.close();
|
|
104
61
|
}
|
|
105
62
|
},
|
|
106
63
|
};
|
|
107
64
|
}
|
|
108
|
-
export function hexToBytes(hex) {
|
|
109
|
-
if (hex.length === 0 || hex.length % 2 !== 0) {
|
|
110
|
-
throw new TypeError(`Hex string must have even length (got ${hex.length})`);
|
|
111
|
-
}
|
|
112
|
-
if (!/^[0-9a-fA-F]+$/.test(hex)) {
|
|
113
|
-
throw new TypeError('String contains non-hex characters');
|
|
114
|
-
}
|
|
115
|
-
const bytes = new Uint8Array(hex.length / 2);
|
|
116
|
-
for (let i = 0; i < hex.length; i += 2) {
|
|
117
|
-
bytes[i / 2] = parseInt(hex.substring(i, i + 2), 16);
|
|
118
|
-
}
|
|
119
|
-
return bytes;
|
|
120
|
-
}
|
|
121
65
|
//# sourceMappingURL=nwc.js.map
|
package/build/wallet/nwc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nwc.js","sourceRoot":"","sources":["../../src/wallet/nwc.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nwc.js","sourceRoot":"","sources":["../../src/wallet/nwc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE/E,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAG7D;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,gBAAkC,EAAE;IAClF,2EAA2E;IAC3E,4DAA4D;IAC5D,oBAAoB,CAAC,MAAM,CAAC,CAAA;IAC5B,OAAO;QACL,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,IAAI;QAEf,KAAK,CAAC,UAAU,CAAC,OAAe,EAAE,QAA4B;YAC5D,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;YACxC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAA;YAC1E,CAAC;YACD,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;gBACjC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,wEAAwE,EAAE,CAAA;YACzH,CAAC;YAED,IAAI,MAA6B,CAAA;YACjC,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;gBAC7C,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;gBACjD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC3D,OAAO;wBACL,IAAI,EAAE,KAAK;wBACX,MAAM,EAAE,KAAK;wBACb,OAAO,EAAE,SAAS;wBAClB,MAAM,EAAE,0GAA0G;qBACnH,CAAA;gBACH,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;YAC/D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;oBAC9B,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;wBAClC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;oBAC9D,CAAC;oBACD,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;wBACxH,OAAO;4BACL,IAAI,EAAE,KAAK;4BACX,MAAM,EAAE,KAAK;4BACb,OAAO,EAAE,SAAS;4BAClB,MAAM,EAAE,iFAAiF;yBAC1F,CAAA;oBACH,CAAC;gBACH,CAAC;gBACD,oEAAoE;gBACpE,kEAAkE;gBAClE,OAAO;oBACL,IAAI,EAAE,KAAK;oBACX,MAAM,EAAE,KAAK;oBACb,OAAO,EAAE,SAAS;oBAClB,MAAM,EAAE,iFAAiF;iBAC1F,CAAA;YACH,CAAC;oBAAS,CAAC;gBACT,MAAM,EAAE,KAAK,EAAE,CAAA;YACjB,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC"}
|
package/build/wallet/types.d.ts
CHANGED
package/llms-full.txt
CHANGED
|
@@ -71,7 +71,7 @@ src/
|
|
|
71
71
|
wallet/
|
|
72
72
|
types.ts # WalletProvider interface
|
|
73
73
|
resolve.ts # Priority-ordered wallet resolution
|
|
74
|
-
nwc.ts #
|
|
74
|
+
nwc.ts # @forgesworn/nwc-kit adapter + farrier proof check
|
|
75
75
|
cashu.ts # Cashu ecash melt implementation
|
|
76
76
|
human.ts # Human-in-the-loop (QR code + polling)
|
|
77
77
|
l402/
|
|
@@ -149,7 +149,7 @@ tests/ # Mirrors src/ structure
|
|
|
149
149
|
- `method` (string, optional) — HTTP method (default: GET)
|
|
150
150
|
- `headers` (object, optional) — additional headers
|
|
151
151
|
- `body` (string, optional) — request body
|
|
152
|
-
- `paymentMethod` (string, optional) — force a specific
|
|
152
|
+
- `paymentMethod` (string, optional) — force a specific payer method
|
|
153
153
|
|
|
154
154
|
**Behaviour:**
|
|
155
155
|
1. Checks for existing credential for the origin
|
|
@@ -169,7 +169,7 @@ tests/ # Mirrors src/ structure
|
|
|
169
169
|
|
|
170
170
|
**Parameters:**
|
|
171
171
|
- `invoice` (string, required) — BOLT11 invoice to pay
|
|
172
|
-
- `paymentMethod` (string, optional) — force a specific
|
|
172
|
+
- `paymentMethod` (string, optional) — force a specific payer method
|
|
173
173
|
- `challengeId` (string, optional) — ID from a previous `l402-discover` to associate the payment
|
|
174
174
|
|
|
175
175
|
**Returns:**
|
|
@@ -241,7 +241,7 @@ tests/ # Mirrors src/ structure
|
|
|
241
241
|
**Parameters:**
|
|
242
242
|
- `url` (string, required) — toll-booth server URL
|
|
243
243
|
- `amountSats` (number, optional) — specific tier to purchase
|
|
244
|
-
- `paymentMethod` (string, optional) — force a specific
|
|
244
|
+
- `paymentMethod` (string, optional) — force a specific payer method
|
|
245
245
|
|
|
246
246
|
**Behaviour:** Fetches available tiers, purchases the specified tier, stores the credential with the credit balance.
|
|
247
247
|
|
|
@@ -294,7 +294,7 @@ Wallets are tried in order: NWC → Cashu → Human. The first wallet that succe
|
|
|
294
294
|
|
|
295
295
|
| Wallet | Autonomy | Requirements | Speed |
|
|
296
296
|
|--------|----------|-------------|-------|
|
|
297
|
-
| NWC | Fully autonomous | `
|
|
297
|
+
| NWC | Fully autonomous | `NWC_URI_FILE` pointing to a private 0600 bearer file | ~2-5 seconds |
|
|
298
298
|
| Cashu | Fully autonomous | `CASHU_TOKENS` file with ecash tokens | ~3-8 seconds |
|
|
299
299
|
| Human | Requires human | None — always available as fallback | Minutes |
|
|
300
300
|
|
|
@@ -328,6 +328,8 @@ All outbound HTTP requests pass through an SSRF guard:
|
|
|
328
328
|
- Credentials encrypted with AES-256-GCM
|
|
329
329
|
- Encryption key stored in OS keychain (macOS Keychain, Windows Credential Vault, Linux Secret Service) when available
|
|
330
330
|
- Falls back to file-based key at `~/.402-mcp/encryption.key` with a console warning
|
|
331
|
+
- NWC capability and response events authenticated with NIP-44 v2 and signatures
|
|
332
|
+
- Returned NWC preimages verified against the challenged BOLT11 payment hash
|
|
331
333
|
- Preimages validated as hex before storage to prevent header injection
|
|
332
334
|
- Credential store path must be within the home directory (path traversal protection)
|
|
333
335
|
|
|
@@ -360,7 +362,7 @@ HTTP transport includes:
|
|
|
360
362
|
|
|
361
363
|
| Variable | Default | Description |
|
|
362
364
|
|----------|---------|-------------|
|
|
363
|
-
| `
|
|
365
|
+
| `NWC_URI_FILE` | — | Path to a private 0600 file containing the NWC bearer URI. Raw NWC_URI is refused. |
|
|
364
366
|
| `CASHU_TOKENS` | — | Path to Cashu token store file. Must be within home directory. |
|
|
365
367
|
| `MAX_AUTO_PAY_SATS` | 1000 | Per-payment safety cap (satoshis). 0 disables autonomous payments. |
|
|
366
368
|
| `MAX_SPEND_PER_MINUTE_SATS` | 10000 | Rolling 60-second spend cap (satoshis). |
|
package/llms.txt
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> 402-mcp is an MCP server that gives AI agents economic agency — the ability to discover, pay for, and consume any L402 or x402 payment-gated API without human registration, API keys, or middlemen. It speaks the L402 protocol natively, carries its own payment methods, and makes autonomous purchasing decisions within human-set safety limits.
|
|
4
4
|
|
|
5
|
-
402-mcp is protocol-loyal: it works with any L402-compliant server (toll-booth, Aperture, or any conforming implementation), not just a specific vendor's stack. Bonus features activate automatically when talking to a toll-booth server. Three
|
|
5
|
+
402-mcp is protocol-loyal: it works with any L402-compliant server (toll-booth, Aperture, or any conforming implementation), not just a specific vendor's stack. Bonus features activate automatically when talking to a toll-booth server. Three payer methods are supported — NWC (Nostr Wallet Connect), Cashu ecash, and human-in-the-loop — tried in that priority order so the agent picks the most autonomous option available.
|
|
6
6
|
|
|
7
7
|
Agents can also discover paid APIs without knowing URLs upfront. The `l402-search` tool queries Nostr relays for kind 31402 service announcements — a decentralised registry of L402-enabled services. Discovered services may advertise multiple transport endpoints (clearnet HTTPS, Tor .onion, Handshake HNS domains). The agent automatically selects the best available transport and falls back through alternatives on connection failure — enabling censorship-resistant API access without any client-side configuration.
|
|
8
8
|
|
|
@@ -31,7 +31,7 @@ Add to your MCP configuration:
|
|
|
31
31
|
"command": "npx",
|
|
32
32
|
"args": ["402-mcp"],
|
|
33
33
|
"env": {
|
|
34
|
-
"
|
|
34
|
+
"NWC_URI_FILE": "/absolute/path/to/402-mcp.nwc",
|
|
35
35
|
"MAX_AUTO_PAY_SATS": "1000"
|
|
36
36
|
}
|
|
37
37
|
}
|
|
@@ -43,7 +43,7 @@ Add to your MCP configuration:
|
|
|
43
43
|
|
|
44
44
|
| Variable | Default | Description |
|
|
45
45
|
|----------|---------|-------------|
|
|
46
|
-
| `
|
|
46
|
+
| `NWC_URI_FILE` | — | Private 0600 file containing the Nostr Wallet Connect bearer URI |
|
|
47
47
|
| `CASHU_TOKENS` | — | Path to Cashu token store file |
|
|
48
48
|
| `MAX_AUTO_PAY_SATS` | 1000 | Safety cap; payments above this require human confirmation |
|
|
49
49
|
| `MAX_SPEND_PER_MINUTE_SATS` | 10000 | Rolling 60-second spend cap across all payments |
|
|
@@ -110,9 +110,9 @@ Redeem Cashu ecash tokens directly with the toll-booth server, bypassing the Lig
|
|
|
110
110
|
|
|
111
111
|
## Payment Methods
|
|
112
112
|
|
|
113
|
-
Three
|
|
113
|
+
Three payer methods are tried in priority order:
|
|
114
114
|
|
|
115
|
-
1. **NWC (Nostr Wallet Connect)** — fully autonomous. The agent pays invoices directly from a connected Lightning wallet via the NWC protocol. Configure with `
|
|
115
|
+
1. **NWC (Nostr Wallet Connect)** — fully autonomous. The agent pays invoices directly from a connected Lightning wallet via the NWC protocol. Configure with `NWC_URI_FILE`; raw bearer values are refused. No human interaction required.
|
|
116
116
|
|
|
117
117
|
2. **Cashu** — fully autonomous. The agent melts ecash tokens to pay invoices. Configure with `CASHU_TOKENS` pointing to a token store file. No Lightning node required on the agent side.
|
|
118
118
|
|
|
@@ -140,7 +140,7 @@ The human stays in control of three things: the safety caps, which payment metho
|
|
|
140
140
|
|
|
141
141
|
- **SSRF protection** — all outbound requests pass through an SSRF guard that blocks private/internal IP ranges by default. Handshake names are resolved via DNS-over-HTTPS with the resolved IP validated against blocked ranges. .onion addresses bypass DNS and route through the configured SOCKS proxy. Set `SSRF_ALLOW_PRIVATE=true` only for local development.
|
|
142
142
|
- **Credential encryption** — stored credentials are encrypted with AES-256-GCM. The encryption key is stored in the OS keychain when available, falling back to a file-based key with a warning.
|
|
143
|
-
- **
|
|
143
|
+
- **Settlement proof** — NWC responses are authenticated with NIP-44 v2 and signed events, then the returned preimage is verified against the challenged BOLT-11 payment hash before storage.
|
|
144
144
|
- **Spend tracking** — atomic `tryRecord()` prevents TOCTOU race conditions in concurrent spend checks.
|
|
145
145
|
- **HTTP transport hardening** — rate limiting (100 req/60s per IP), security headers (CSP, X-Frame-Options, nosniff), and loopback-only binding by default.
|
|
146
146
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "402-mcp",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"mcpName": "dev.forgesworn/402-mcp",
|
|
5
5
|
"description": "L402 + x402 client MCP - AI agents discover, pay for, and consume any payment-gated API",
|
|
6
6
|
"type": "module",
|
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
"./tools/*": "./build/tools/*.js",
|
|
14
14
|
"./l402/*": "./build/l402/*.js",
|
|
15
15
|
"./x402/*": "./build/x402/*.js",
|
|
16
|
+
"./xcashu/*": "./build/xcashu/*.js",
|
|
17
|
+
"./ietf-payment/*": "./build/ietf-payment/*.js",
|
|
16
18
|
"./store/*": "./build/store/*.js",
|
|
17
19
|
"./fetch/*": "./build/fetch/*.js",
|
|
18
20
|
"./spend-tracker": "./build/spend-tracker.js"
|
|
@@ -21,6 +23,8 @@
|
|
|
21
23
|
"build:widgets": "node src/widgets/build.mjs",
|
|
22
24
|
"build": "npm run build:widgets && tsc",
|
|
23
25
|
"test": "vitest run",
|
|
26
|
+
"test:release": "npm run check:publish-dependencies && npm test",
|
|
27
|
+
"check:publish-dependencies": "node scripts/check-publish-dependencies.mjs",
|
|
24
28
|
"test:watch": "vitest",
|
|
25
29
|
"test:coverage": "vitest run --coverage",
|
|
26
30
|
"typecheck": "tsc --noEmit",
|
|
@@ -28,15 +32,17 @@
|
|
|
28
32
|
"lint:fix": "eslint src/ --fix",
|
|
29
33
|
"start": "node build/index.js",
|
|
30
34
|
"start:http": "TRANSPORT=http node build/index.js",
|
|
31
|
-
"prepublishOnly": "npm run typecheck && npm run build && npm test -- --exclude 'tests/e2e/l402-flow.integration.test.ts'"
|
|
35
|
+
"prepublishOnly": "npm run check:publish-dependencies && npm run typecheck && npm run build && npm test -- --exclude 'tests/e2e/l402-flow.integration.test.ts'"
|
|
32
36
|
},
|
|
33
37
|
"dependencies": {
|
|
34
38
|
"@cashu/cashu-ts": "^3.6.1",
|
|
39
|
+
"@forgesworn/nwc-kit": "0.1.1",
|
|
35
40
|
"@modelcontextprotocol/ext-apps": "^1.3.1",
|
|
36
41
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
37
|
-
"bolt11": "^1.4.1",
|
|
38
42
|
"cors": "^2.8.5",
|
|
39
43
|
"express": "^5.2.1",
|
|
44
|
+
"farrier-kit": "1.1.2",
|
|
45
|
+
"light-bolt11-decoder": "3.2.0",
|
|
40
46
|
"nostr-tools": "^2.12.0",
|
|
41
47
|
"qrcode": "^1.5.4",
|
|
42
48
|
"zod": "^4.3.6"
|
|
@@ -46,17 +52,13 @@
|
|
|
46
52
|
},
|
|
47
53
|
"devDependencies": {
|
|
48
54
|
"@eslint/js": "^10.0.1",
|
|
49
|
-
"@forgesworn/toll-booth": "
|
|
50
|
-
"@semantic-release/changelog": "^6.0.3",
|
|
51
|
-
"@semantic-release/git": "^10.0.1",
|
|
52
|
-
"@semantic-release/github": "^12.0.6",
|
|
55
|
+
"@forgesworn/toll-booth": "6.0.1",
|
|
53
56
|
"@types/cors": "^2.8.17",
|
|
54
57
|
"@types/express": "^5.0.0",
|
|
55
58
|
"@types/node": "^24.12.0",
|
|
56
59
|
"@types/qrcode": "^1.5.5",
|
|
57
60
|
"@vitest/coverage-v8": "^4.1.0",
|
|
58
61
|
"eslint": "^10.0.3",
|
|
59
|
-
"semantic-release": "^25.0.3",
|
|
60
62
|
"typescript": "^5.7.0",
|
|
61
63
|
"typescript-eslint": "^8.57.1",
|
|
62
64
|
"vitest": "^4.0.18"
|
|
@@ -88,7 +90,7 @@
|
|
|
88
90
|
"url": "https://github.com/forgesworn/402-mcp.git"
|
|
89
91
|
},
|
|
90
92
|
"engines": {
|
|
91
|
-
"node": ">=
|
|
93
|
+
"node": ">=22"
|
|
92
94
|
},
|
|
93
95
|
"files": [
|
|
94
96
|
"build",
|
|
@@ -99,8 +101,11 @@
|
|
|
99
101
|
"llms-full.txt"
|
|
100
102
|
],
|
|
101
103
|
"license": "MIT",
|
|
104
|
+
"publishConfig": {
|
|
105
|
+
"provenance": true
|
|
106
|
+
},
|
|
102
107
|
"funding": {
|
|
103
108
|
"type": "lightning",
|
|
104
|
-
"url": "lightning:
|
|
109
|
+
"url": "lightning:profusemeat89@walletofsatoshi.com"
|
|
105
110
|
}
|
|
106
111
|
}
|