x402-proxy 0.7.0 → 0.7.1
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/CHANGELOG.md +7 -1
- package/README.md +2 -2
- package/dist/bin/cli.js +7 -5
- package/dist/openclaw/plugin.js +1 -1
- package/package.json +1 -1
- package/skills/SKILL.md +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.7.1] - 2026-03-20
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- Non-402 server errors (500, 503, etc.) now indicate whether payment was attempted, helping users distinguish "server down" from "payment failed"
|
|
14
|
+
|
|
10
15
|
## [0.7.0] - 2026-03-20
|
|
11
16
|
|
|
12
17
|
### Added
|
|
@@ -186,7 +191,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
186
191
|
- `appendHistory` / `readHistory` / `calcSpend` - JSONL transaction history
|
|
187
192
|
- Re-exports from `@x402/fetch`, `@x402/svm`, `@x402/evm`
|
|
188
193
|
|
|
189
|
-
[Unreleased]: https://github.com/cascade-protocol/x402-proxy/compare/v0.7.
|
|
194
|
+
[Unreleased]: https://github.com/cascade-protocol/x402-proxy/compare/v0.7.1...HEAD
|
|
195
|
+
[0.7.1]: https://github.com/cascade-protocol/x402-proxy/compare/v0.7.0...v0.7.1
|
|
190
196
|
[0.7.0]: https://github.com/cascade-protocol/x402-proxy/compare/v0.6.0...v0.7.0
|
|
191
197
|
[0.6.0]: https://github.com/cascade-protocol/x402-proxy/compare/v0.5.2...v0.6.0
|
|
192
198
|
[0.5.2]: https://github.com/cascade-protocol/x402-proxy/compare/v0.5.1...v0.5.2
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# x402-proxy
|
|
2
2
|
|
|
3
|
-
`curl` for [x402](https://www.x402.org/) paid APIs. Auto-pays HTTP 402 responses with USDC on Base, Solana, and Tempo - zero crypto code on the buyer side. Supports
|
|
3
|
+
`curl` for [x402](https://www.x402.org/) and [MPP](https://mpp.dev/) paid APIs. Auto-pays HTTP 402 responses with USDC on Base, Solana, and [Tempo](https://tempo.xyz/) - zero crypto code on the buyer side. Supports one-time payments (x402, MPP charge) and pay-per-token streaming (MPP sessions).
|
|
4
4
|
|
|
5
5
|
## Quick Start
|
|
6
6
|
|
|
@@ -30,7 +30,7 @@ Let your AI agent consume any paid MCP server. Configure in Claude, Cursor, or a
|
|
|
30
30
|
}
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
The proxy sits between your agent and the remote server, intercepting 402 responses, paying automatically, and forwarding the result. Your agent never touches crypto.
|
|
33
|
+
The proxy sits between your agent and the remote server, intercepting 402 responses, paying automatically, and forwarding the result. Supports both x402 and MPP protocols. Your agent never touches crypto.
|
|
34
34
|
|
|
35
35
|
## HTTP Requests
|
|
36
36
|
|
package/dist/bin/cli.js
CHANGED
|
@@ -431,6 +431,8 @@ Examples:
|
|
|
431
431
|
const txSig = extractTxSignature(response);
|
|
432
432
|
verbose(`protocol used: ${usedProtocol ?? "none"}`);
|
|
433
433
|
for (const [k, v] of response.headers) if (/payment|auth|www|x-pay/i.test(k)) verbose(`header ${k}: ${v.slice(0, 200)}`);
|
|
434
|
+
if (!response.ok && response.status !== 402 && isTTY()) if (!payment) dim(" Server returned error before payment was attempted.");
|
|
435
|
+
else dim(" Payment was processed but server returned an error.");
|
|
434
436
|
if (response.status === 402 && isTTY()) {
|
|
435
437
|
const detected = detectProtocols(response);
|
|
436
438
|
const prHeader = response.headers.get("PAYMENT-REQUIRED") ?? response.headers.get("X-PAYMENT-REQUIRED");
|
|
@@ -662,7 +664,7 @@ Add to your MCP client config (Claude, Cursor, etc.):
|
|
|
662
664
|
const { x402MCPClient } = await import("@x402/mcp");
|
|
663
665
|
const remoteClient = new Client({
|
|
664
666
|
name: "x402-proxy",
|
|
665
|
-
version: "0.7.
|
|
667
|
+
version: "0.7.1"
|
|
666
668
|
});
|
|
667
669
|
const x402Mcp = new x402MCPClient(remoteClient, x402PaymentClient, {
|
|
668
670
|
autoPayment: true,
|
|
@@ -701,7 +703,7 @@ Add to your MCP client config (Claude, Cursor, etc.):
|
|
|
701
703
|
}
|
|
702
704
|
const localServer = new Server({
|
|
703
705
|
name: "x402-proxy",
|
|
704
|
-
version: "0.7.
|
|
706
|
+
version: "0.7.1"
|
|
705
707
|
}, { capabilities: {
|
|
706
708
|
tools: tools.length > 0 ? {} : void 0,
|
|
707
709
|
resources: remoteResources.length > 0 ? {} : void 0
|
|
@@ -767,7 +769,7 @@ Add to your MCP client config (Claude, Cursor, etc.):
|
|
|
767
769
|
const maxDeposit = config?.mppSessionBudget ?? "1";
|
|
768
770
|
const remoteClient = new Client({
|
|
769
771
|
name: "x402-proxy",
|
|
770
|
-
version: "0.7.
|
|
772
|
+
version: "0.7.1"
|
|
771
773
|
});
|
|
772
774
|
await connectTransport(remoteClient);
|
|
773
775
|
const mppClient = McpClient.wrap(remoteClient, { methods: [tempo({
|
|
@@ -785,7 +787,7 @@ Add to your MCP client config (Claude, Cursor, etc.):
|
|
|
785
787
|
}
|
|
786
788
|
const localServer = new Server({
|
|
787
789
|
name: "x402-proxy",
|
|
788
|
-
version: "0.7.
|
|
790
|
+
version: "0.7.1"
|
|
789
791
|
}, { capabilities: {
|
|
790
792
|
tools: tools.length > 0 ? {} : void 0,
|
|
791
793
|
resources: remoteResources.length > 0 ? {} : void 0
|
|
@@ -985,7 +987,7 @@ const routes = buildRouteMap({
|
|
|
985
987
|
});
|
|
986
988
|
const app = buildApplication(routes, {
|
|
987
989
|
name: "x402-proxy",
|
|
988
|
-
versionInfo: { currentVersion: "0.7.
|
|
990
|
+
versionInfo: { currentVersion: "0.7.1" },
|
|
989
991
|
scanner: { caseStyle: "allow-kebab-for-camel" }
|
|
990
992
|
});
|
|
991
993
|
|
package/dist/openclaw/plugin.js
CHANGED
|
@@ -724,7 +724,7 @@ function createWalletCommand(ctx) {
|
|
|
724
724
|
try {
|
|
725
725
|
const snap = await getWalletSnapshot(ctx.rpcUrl, walletAddress, ctx.historyPath);
|
|
726
726
|
const solscanUrl = `https://solscan.io/account/${walletAddress}`;
|
|
727
|
-
const lines = [`x402-proxy v0.7.
|
|
727
|
+
const lines = [`x402-proxy v0.7.1`];
|
|
728
728
|
const defaultModel = ctx.allModels[0];
|
|
729
729
|
if (defaultModel) lines.push("", `**Model** - ${defaultModel.name} (${defaultModel.provider})`);
|
|
730
730
|
lines.push("", `**[Wallet](${solscanUrl})**`, `\`${walletAddress}\``);
|
package/package.json
CHANGED
package/skills/SKILL.md
CHANGED
|
@@ -5,7 +5,7 @@ description: Use x402-proxy CLI for consuming and debugging x402 and MPP paid AP
|
|
|
5
5
|
|
|
6
6
|
# x402-proxy
|
|
7
7
|
|
|
8
|
-
`curl` for x402 paid APIs. Auto-pays HTTP 402 responses with USDC on Base, Solana, and Tempo (
|
|
8
|
+
`curl` for x402 and MPP paid APIs. Auto-pays HTTP 402 responses with USDC on Base, Solana, and [Tempo](https://tempo.xyz/). Supports one-time payments (x402, MPP charge) and pay-per-token streaming (MPP sessions).
|
|
9
9
|
|
|
10
10
|
## Quick start
|
|
11
11
|
|