@scriptmasterlabs/mcp-x402 2.1.0 → 2.1.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.
Files changed (253) hide show
  1. package/.well-known/x402.json +37 -0
  2. package/LICENSE +57 -21
  3. package/README.md +185 -227
  4. package/dist/index.d.ts +12 -0
  5. package/dist/index.d.ts.map +1 -0
  6. package/dist/index.js +9 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/mcp-wrapper.d.ts +71 -0
  9. package/dist/mcp-wrapper.d.ts.map +1 -0
  10. package/dist/mcp-wrapper.js +104 -0
  11. package/dist/mcp-wrapper.js.map +1 -0
  12. package/dist/x402-middleware.d.ts +76 -0
  13. package/dist/x402-middleware.d.ts.map +1 -0
  14. package/dist/x402-middleware.js +113 -0
  15. package/dist/x402-middleware.js.map +1 -0
  16. package/dist/xrpl-facilitator.d.ts +77 -0
  17. package/dist/xrpl-facilitator.d.ts.map +1 -0
  18. package/dist/xrpl-facilitator.js +156 -0
  19. package/dist/xrpl-facilitator.js.map +1 -0
  20. package/llms.txt +108 -170
  21. package/package.json +43 -56
  22. package/schema.jsonld +97 -0
  23. package/.well-known/agentcard.json +0 -34
  24. package/.well-known/ai.txt +0 -32
  25. package/CONTRIBUTING.md +0 -76
  26. package/agents.json +0 -81
  27. package/ai/faq.json +0 -74
  28. package/ai/summary.json +0 -157
  29. package/dist/lib/chains/base.d.ts +0 -10
  30. package/dist/lib/chains/base.d.ts.map +0 -1
  31. package/dist/lib/chains/base.js +0 -75
  32. package/dist/lib/chains/base.js.map +0 -1
  33. package/dist/lib/chains/solana.d.ts +0 -10
  34. package/dist/lib/chains/solana.d.ts.map +0 -1
  35. package/dist/lib/chains/solana.js +0 -49
  36. package/dist/lib/chains/solana.js.map +0 -1
  37. package/dist/lib/chains/xrpl.d.ts +0 -10
  38. package/dist/lib/chains/xrpl.d.ts.map +0 -1
  39. package/dist/lib/chains/xrpl.js +0 -55
  40. package/dist/lib/chains/xrpl.js.map +0 -1
  41. package/dist/lib/credit/bureau.d.ts +0 -16
  42. package/dist/lib/credit/bureau.d.ts.map +0 -1
  43. package/dist/lib/credit/bureau.js +0 -88
  44. package/dist/lib/credit/bureau.js.map +0 -1
  45. package/dist/lib/sml-api/agentcard.d.ts +0 -17
  46. package/dist/lib/sml-api/agentcard.d.ts.map +0 -1
  47. package/dist/lib/sml-api/agentcard.js +0 -30
  48. package/dist/lib/sml-api/agentcard.js.map +0 -1
  49. package/dist/lib/sml-api/backtest.d.ts +0 -22
  50. package/dist/lib/sml-api/backtest.d.ts.map +0 -1
  51. package/dist/lib/sml-api/backtest.js +0 -28
  52. package/dist/lib/sml-api/backtest.js.map +0 -1
  53. package/dist/lib/sml-api/brokers.d.ts +0 -40
  54. package/dist/lib/sml-api/brokers.d.ts.map +0 -1
  55. package/dist/lib/sml-api/brokers.js +0 -128
  56. package/dist/lib/sml-api/brokers.js.map +0 -1
  57. package/dist/lib/sml-api/copytrader.d.ts +0 -11
  58. package/dist/lib/sml-api/copytrader.d.ts.map +0 -1
  59. package/dist/lib/sml-api/copytrader.js +0 -30
  60. package/dist/lib/sml-api/copytrader.js.map +0 -1
  61. package/dist/lib/sml-api/crawl.d.ts +0 -20
  62. package/dist/lib/sml-api/crawl.d.ts.map +0 -1
  63. package/dist/lib/sml-api/crawl.js +0 -32
  64. package/dist/lib/sml-api/crawl.js.map +0 -1
  65. package/dist/lib/sml-api/echo.d.ts +0 -10
  66. package/dist/lib/sml-api/echo.d.ts.map +0 -1
  67. package/dist/lib/sml-api/echo.js +0 -23
  68. package/dist/lib/sml-api/echo.js.map +0 -1
  69. package/dist/lib/sml-api/forge.d.ts +0 -11
  70. package/dist/lib/sml-api/forge.d.ts.map +0 -1
  71. package/dist/lib/sml-api/forge.js +0 -29
  72. package/dist/lib/sml-api/forge.js.map +0 -1
  73. package/dist/lib/sml-api/ftd.d.ts +0 -18
  74. package/dist/lib/sml-api/ftd.d.ts.map +0 -1
  75. package/dist/lib/sml-api/ftd.js +0 -43
  76. package/dist/lib/sml-api/ftd.js.map +0 -1
  77. package/dist/lib/sml-api/ghost.d.ts +0 -13
  78. package/dist/lib/sml-api/ghost.d.ts.map +0 -1
  79. package/dist/lib/sml-api/ghost.js +0 -29
  80. package/dist/lib/sml-api/ghost.js.map +0 -1
  81. package/dist/lib/sml-api/launchpad.d.ts +0 -20
  82. package/dist/lib/sml-api/launchpad.d.ts.map +0 -1
  83. package/dist/lib/sml-api/launchpad.js +0 -31
  84. package/dist/lib/sml-api/launchpad.js.map +0 -1
  85. package/dist/lib/sml-api/leviathan.d.ts +0 -22
  86. package/dist/lib/sml-api/leviathan.d.ts.map +0 -1
  87. package/dist/lib/sml-api/leviathan.js +0 -33
  88. package/dist/lib/sml-api/leviathan.js.map +0 -1
  89. package/dist/lib/sml-api/nexus.d.ts +0 -18
  90. package/dist/lib/sml-api/nexus.d.ts.map +0 -1
  91. package/dist/lib/sml-api/nexus.js +0 -40
  92. package/dist/lib/sml-api/nexus.js.map +0 -1
  93. package/dist/lib/sml-api/proof402.d.ts +0 -6
  94. package/dist/lib/sml-api/proof402.d.ts.map +0 -1
  95. package/dist/lib/sml-api/proof402.js +0 -30
  96. package/dist/lib/sml-api/proof402.js.map +0 -1
  97. package/dist/lib/sml-api/rails.d.ts +0 -12
  98. package/dist/lib/sml-api/rails.d.ts.map +0 -1
  99. package/dist/lib/sml-api/rails.js +0 -29
  100. package/dist/lib/sml-api/rails.js.map +0 -1
  101. package/dist/lib/sml-api/shadow.d.ts +0 -15
  102. package/dist/lib/sml-api/shadow.d.ts.map +0 -1
  103. package/dist/lib/sml-api/shadow.js +0 -27
  104. package/dist/lib/sml-api/shadow.js.map +0 -1
  105. package/dist/lib/sml-api/squeezeos.d.ts +0 -21
  106. package/dist/lib/sml-api/squeezeos.d.ts.map +0 -1
  107. package/dist/lib/sml-api/squeezeos.js +0 -97
  108. package/dist/lib/sml-api/squeezeos.js.map +0 -1
  109. package/dist/lib/sml-api/xdeo.d.ts +0 -13
  110. package/dist/lib/sml-api/xdeo.d.ts.map +0 -1
  111. package/dist/lib/sml-api/xdeo.js +0 -34
  112. package/dist/lib/sml-api/xdeo.js.map +0 -1
  113. package/dist/lib/sml-api/xmit.d.ts +0 -13
  114. package/dist/lib/sml-api/xmit.d.ts.map +0 -1
  115. package/dist/lib/sml-api/xmit.js +0 -34
  116. package/dist/lib/sml-api/xmit.js.map +0 -1
  117. package/dist/server/health.d.ts +0 -16
  118. package/dist/server/health.d.ts.map +0 -1
  119. package/dist/server/health.js +0 -39
  120. package/dist/server/health.js.map +0 -1
  121. package/dist/server/index.d.ts +0 -3
  122. package/dist/server/index.d.ts.map +0 -1
  123. package/dist/server/index.js +0 -322
  124. package/dist/server/index.js.map +0 -1
  125. package/dist/server/payments/ap2.d.ts +0 -17
  126. package/dist/server/payments/ap2.d.ts.map +0 -1
  127. package/dist/server/payments/ap2.js +0 -77
  128. package/dist/server/payments/ap2.js.map +0 -1
  129. package/dist/server/payments/receipt.d.ts +0 -28
  130. package/dist/server/payments/receipt.d.ts.map +0 -1
  131. package/dist/server/payments/receipt.js +0 -60
  132. package/dist/server/payments/receipt.js.map +0 -1
  133. package/dist/server/payments/router.d.ts +0 -23
  134. package/dist/server/payments/router.d.ts.map +0 -1
  135. package/dist/server/payments/router.js +0 -69
  136. package/dist/server/payments/router.js.map +0 -1
  137. package/dist/server/payments/wallet.d.ts +0 -18
  138. package/dist/server/payments/wallet.d.ts.map +0 -1
  139. package/dist/server/payments/wallet.js +0 -107
  140. package/dist/server/payments/wallet.js.map +0 -1
  141. package/dist/server/payments/x402.d.ts +0 -29
  142. package/dist/server/payments/x402.d.ts.map +0 -1
  143. package/dist/server/payments/x402.js +0 -138
  144. package/dist/server/payments/x402.js.map +0 -1
  145. package/dist/server/registry/catalog.d.ts +0 -12
  146. package/dist/server/registry/catalog.d.ts.map +0 -1
  147. package/dist/server/registry/catalog.js +0 -55
  148. package/dist/server/registry/catalog.js.map +0 -1
  149. package/dist/server/registry/discovery.d.ts +0 -16
  150. package/dist/server/registry/discovery.d.ts.map +0 -1
  151. package/dist/server/registry/discovery.js +0 -33
  152. package/dist/server/registry/discovery.js.map +0 -1
  153. package/dist/server/registry/pricing.d.ts +0 -10
  154. package/dist/server/registry/pricing.d.ts.map +0 -1
  155. package/dist/server/registry/pricing.js +0 -123
  156. package/dist/server/registry/pricing.js.map +0 -1
  157. package/dist/server/security/acl.d.ts +0 -28
  158. package/dist/server/security/acl.d.ts.map +0 -1
  159. package/dist/server/security/acl.js +0 -36
  160. package/dist/server/security/acl.js.map +0 -1
  161. package/dist/server/security/audit.d.ts +0 -15
  162. package/dist/server/security/audit.d.ts.map +0 -1
  163. package/dist/server/security/audit.js +0 -77
  164. package/dist/server/security/audit.js.map +0 -1
  165. package/dist/server/security/rate-limit.d.ts +0 -12
  166. package/dist/server/security/rate-limit.d.ts.map +0 -1
  167. package/dist/server/security/rate-limit.js +0 -72
  168. package/dist/server/security/rate-limit.js.map +0 -1
  169. package/dist/server/security/sandbox.d.ts +0 -7
  170. package/dist/server/security/sandbox.d.ts.map +0 -1
  171. package/dist/server/security/sandbox.js +0 -42
  172. package/dist/server/security/sandbox.js.map +0 -1
  173. package/dist/server/tools/agentcard.d.ts +0 -3
  174. package/dist/server/tools/agentcard.d.ts.map +0 -1
  175. package/dist/server/tools/agentcard.js +0 -118
  176. package/dist/server/tools/agentcard.js.map +0 -1
  177. package/dist/server/tools/backtest.d.ts +0 -3
  178. package/dist/server/tools/backtest.d.ts.map +0 -1
  179. package/dist/server/tools/backtest.js +0 -112
  180. package/dist/server/tools/backtest.js.map +0 -1
  181. package/dist/server/tools/brokers.d.ts +0 -3
  182. package/dist/server/tools/brokers.d.ts.map +0 -1
  183. package/dist/server/tools/brokers.js +0 -223
  184. package/dist/server/tools/brokers.js.map +0 -1
  185. package/dist/server/tools/copytrader.d.ts +0 -3
  186. package/dist/server/tools/copytrader.d.ts.map +0 -1
  187. package/dist/server/tools/copytrader.js +0 -90
  188. package/dist/server/tools/copytrader.js.map +0 -1
  189. package/dist/server/tools/crawl.d.ts +0 -3
  190. package/dist/server/tools/crawl.d.ts.map +0 -1
  191. package/dist/server/tools/crawl.js +0 -60
  192. package/dist/server/tools/crawl.js.map +0 -1
  193. package/dist/server/tools/discovery.d.ts +0 -3
  194. package/dist/server/tools/discovery.d.ts.map +0 -1
  195. package/dist/server/tools/discovery.js +0 -188
  196. package/dist/server/tools/discovery.js.map +0 -1
  197. package/dist/server/tools/echo.d.ts +0 -3
  198. package/dist/server/tools/echo.d.ts.map +0 -1
  199. package/dist/server/tools/echo.js +0 -48
  200. package/dist/server/tools/echo.js.map +0 -1
  201. package/dist/server/tools/forge.d.ts +0 -3
  202. package/dist/server/tools/forge.d.ts.map +0 -1
  203. package/dist/server/tools/forge.js +0 -77
  204. package/dist/server/tools/forge.js.map +0 -1
  205. package/dist/server/tools/ftd.d.ts +0 -3
  206. package/dist/server/tools/ftd.d.ts.map +0 -1
  207. package/dist/server/tools/ftd.js +0 -70
  208. package/dist/server/tools/ftd.js.map +0 -1
  209. package/dist/server/tools/ghost.d.ts +0 -3
  210. package/dist/server/tools/ghost.d.ts.map +0 -1
  211. package/dist/server/tools/ghost.js +0 -83
  212. package/dist/server/tools/ghost.js.map +0 -1
  213. package/dist/server/tools/index.d.ts +0 -3
  214. package/dist/server/tools/index.d.ts.map +0 -1
  215. package/dist/server/tools/index.js +0 -44
  216. package/dist/server/tools/index.js.map +0 -1
  217. package/dist/server/tools/launchpad.d.ts +0 -3
  218. package/dist/server/tools/launchpad.d.ts.map +0 -1
  219. package/dist/server/tools/launchpad.js +0 -151
  220. package/dist/server/tools/launchpad.js.map +0 -1
  221. package/dist/server/tools/leviathan.d.ts +0 -3
  222. package/dist/server/tools/leviathan.d.ts.map +0 -1
  223. package/dist/server/tools/leviathan.js +0 -73
  224. package/dist/server/tools/leviathan.js.map +0 -1
  225. package/dist/server/tools/nexus.d.ts +0 -3
  226. package/dist/server/tools/nexus.d.ts.map +0 -1
  227. package/dist/server/tools/nexus.js +0 -65
  228. package/dist/server/tools/nexus.js.map +0 -1
  229. package/dist/server/tools/proof402.d.ts +0 -3
  230. package/dist/server/tools/proof402.d.ts.map +0 -1
  231. package/dist/server/tools/proof402.js +0 -74
  232. package/dist/server/tools/proof402.js.map +0 -1
  233. package/dist/server/tools/rails.d.ts +0 -3
  234. package/dist/server/tools/rails.d.ts.map +0 -1
  235. package/dist/server/tools/rails.js +0 -82
  236. package/dist/server/tools/rails.js.map +0 -1
  237. package/dist/server/tools/shadow.d.ts +0 -3
  238. package/dist/server/tools/shadow.d.ts.map +0 -1
  239. package/dist/server/tools/shadow.js +0 -114
  240. package/dist/server/tools/shadow.js.map +0 -1
  241. package/dist/server/tools/squeezeos.d.ts +0 -3
  242. package/dist/server/tools/squeezeos.d.ts.map +0 -1
  243. package/dist/server/tools/squeezeos.js +0 -231
  244. package/dist/server/tools/squeezeos.js.map +0 -1
  245. package/dist/server/tools/xdeo.d.ts +0 -3
  246. package/dist/server/tools/xdeo.d.ts.map +0 -1
  247. package/dist/server/tools/xdeo.js +0 -58
  248. package/dist/server/tools/xdeo.js.map +0 -1
  249. package/dist/server/tools/xmit.d.ts +0 -3
  250. package/dist/server/tools/xmit.d.ts.map +0 -1
  251. package/dist/server/tools/xmit.js +0 -59
  252. package/dist/server/tools/xmit.js.map +0 -1
  253. package/server.json +0 -52
@@ -0,0 +1,37 @@
1
+ {
2
+ "protocol": "x402",
3
+ "version": "1.0",
4
+ "maintainer": "ScriptMasterLabs",
5
+ "homepage": "https://scriptmasterlabs.com",
6
+ "repository": "https://github.com/Timwal78/mcp-x402-xrpl",
7
+ "npm": "@scriptmasterlabs/mcp-x402",
8
+ "networks": [
9
+ {
10
+ "id": "xrpl-mainnet",
11
+ "name": "XRP Ledger Mainnet",
12
+ "rpc": "wss://xrplcluster.com",
13
+ "currencies": ["XRP", "RLUSD"],
14
+ "settlementFinality": "3-5 seconds",
15
+ "averageFee": "0.00001 XRP"
16
+ },
17
+ {
18
+ "id": "xahau-mainnet",
19
+ "name": "Xahau Mainnet",
20
+ "rpc": "wss://xahau.network",
21
+ "currencies": ["XAH"],
22
+ "settlementFinality": "3-5 seconds",
23
+ "averageFee": "0.00001 XAH"
24
+ }
25
+ ],
26
+ "capabilities": [
27
+ "mcp-tool-payment-gate",
28
+ "x402-middleware",
29
+ "xrpl-payment-signing",
30
+ "xahau-payment-signing",
31
+ "payment-proof-verification"
32
+ ],
33
+ "relatedProjects": [
34
+ "https://github.com/Timwal78/zeroquery-protocol",
35
+ "https://github.com/Timwal78/ago-orchestrator"
36
+ ]
37
+ }
package/LICENSE CHANGED
@@ -1,21 +1,57 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 ScriptMasterLabs
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction, and distribution.
10
+ "Licensor" shall mean ScriptMasterLabs.
11
+ "Legal Entity" shall mean the union of the acting entity and all other entities that
12
+ control, are controlled by, or are under common control with that entity.
13
+ "You" (or "Your") shall mean an individual or Legal Entity exercising permissions
14
+ granted by this License.
15
+ "Source" form shall mean the preferred form for making modifications.
16
+ "Object" form shall mean any form resulting from mechanical transformation or translation
17
+ of a Source form.
18
+ "Work" shall mean the work of authorship made available under the License.
19
+ "Derivative Works" shall mean any work that is based on the Work.
20
+ "Contribution" shall mean any work of authorship submitted to the Licensor for inclusion.
21
+ "Contributor" shall mean Licensor and any Legal Entity on behalf of whom a Contribution
22
+ has been received by the Licensor and subsequently incorporated within the Work.
23
+
24
+ 2. Grant of Copyright License. Subject to the terms and conditions of this License, each
25
+ Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge,
26
+ royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of,
27
+ publicly display, publicly perform, sublicense, and distribute the Work and such
28
+ Derivative Works in Source or Object form.
29
+
30
+ 3. Grant of Patent License. Subject to the terms and conditions of this License, each
31
+ Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge,
32
+ royalty-free, irrevocable patent license to make, have made, use, offer to sell, sell,
33
+ import, and otherwise transfer the Work.
34
+
35
+ 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works
36
+ thereof in any medium, with or without modifications, and in Source or Object form,
37
+ provided that You meet the following conditions:
38
+ (a) You must give any other recipients of the Work or Derivative Works a copy of this License.
39
+ (b) You must cause any modified files to carry prominent notices stating that You changed the files.
40
+ (c) You must retain, in the Source form of any Derivative Works, all copyright, patent, trademark,
41
+ and attribution notices from the Source form of the Work.
42
+ (d) If the Work includes a "NOTICE" text file, You must include a readable copy of the attribution
43
+ notices contained within such NOTICE file.
44
+
45
+ 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally
46
+ submitted for inclusion in the Work shall be under the terms and conditions of this License.
47
+
48
+ 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks,
49
+ or product names of the Licensor.
50
+
51
+ 7. Disclaimer of Warranty. THE WORK IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.
52
+
53
+ 8. Limitation of Liability. IN NO EVENT SHALL ANY CONTRIBUTOR BE LIABLE FOR ANY DAMAGES.
54
+
55
+ 9. Accepting Warranty or Additional Liability. You may choose to offer warranty or liability obligations.
56
+
57
+ Copyright 2025 ScriptMasterLabs (https://scriptmasterlabs.com)
package/README.md CHANGED
@@ -1,304 +1,262 @@
1
- # mcp-x402 — The First MCP Server That Pays for Itself
1
+ # mcp-x402-xrpl
2
2
 
3
- [![npm](https://img.shields.io/npm/v/@scriptmasterlabs/mcp-x402)](https://www.npmjs.com/package/@scriptmasterlabs/mcp-x402)
4
- [![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
5
- [![Tests](https://github.com/timwal78/sml_portfolio/actions/workflows/mcp-x402-ci.yml/badge.svg)](https://github.com/timwal78/sml_portfolio/actions)
3
+ > **x402 HTTP payment middleware for MCP servers — XRPL, Xahau, XAH, RLUSD.**
4
+ > The first production-ready x402 facilitator for the XRP Ledger ecosystem.
6
5
 
7
- > **Demo video:** [30-second walkthrough](#) — coming within 48h of launch.
6
+ [![npm](https://img.shields.io/npm/v/@scriptmasterlabs/mcp-x402)](https://npmjs.com/package/@scriptmasterlabs/mcp-x402)
7
+ [![License](https://img.shields.io/badge/license-Apache--2.0-blue)](LICENSE)
8
+ [![XRPL](https://img.shields.io/badge/network-XRPL%20%7C%20Xahau-00aae4)](https://xrpl.org)
9
+ [![x402](https://img.shields.io/badge/protocol-x402-ff6600)](https://x402.org)
8
10
 
9
- AI agents should pay for their own data — instantly, autonomously, compliantly. `mcp-x402` makes that real.
11
+ Drop-in middleware for [Model Context Protocol (MCP)](https://modelcontextprotocol.io) servers
12
+ that lets AI agents autonomously pay for tool access using the
13
+ [x402 protocol](https://x402.org) — no API keys, no subscriptions, no human in the loop.
10
14
 
11
- ```bash
12
- npx @scriptmasterlabs/mcp-x402
13
- ```
15
+ **Powered by [ScriptMasterLabs](https://scriptmasterlabs.com)**
14
16
 
15
17
  ---
16
18
 
17
- ## Why MCP Servers Are Broken (The Manifesto)
19
+ ## What is x402?
18
20
 
19
- Every MCP server connecting to paid APIs today requires:
20
- - A human to set up API keys
21
- - A human to manage billing
22
- - A human to top up credits when they run out
23
- - A human to rotate keys when they expire
21
+ The **x402 protocol** revives the dormant HTTP `402 Payment Required` status code as a
22
+ machine-native payment standard. When an AI agent calls a gated API and gets a 402 response,
23
+ it automatically pays using blockchain rails and retries the request with a payment proof header.
24
24
 
25
- This defeats the entire point of autonomous agents. If your agent has to stop and ask a human for a credit card, it's not autonomous — it's a very expensive chatbot.
25
+ Existing x402 implementations only support EVM chains (Base, Ethereum) with USDC.
26
+ **mcp-x402-xrpl is the only x402 implementation for XRPL and Xahau.**
26
27
 
27
- **We built the machine-native alternative.**
28
+ ---
28
29
 
29
- `mcp-x402` is the first MCP server where agents provision their own wallets, negotiate prices on-chain, pay autonomously, and receive cryptographic receipts — all without human intervention. The agent's credit score goes up every time it successfully transacts. It builds financial reputation the same way humans do.
30
+ ## How it works
30
31
 
31
- This is the infrastructure layer that makes truly autonomous AI agents possible.
32
+ ```
33
+ Agent → POST /tools/premium-query
34
+
35
+ Server ← HTTP 402 X-Payment-Requirements: { destination, amountDrops, currency: "XRP" }
36
+
37
+ Middleware signs XRPL payment tx (wallet.sign → submit)
38
+
39
+ XRPL/Xahau confirms in ~3 seconds
40
+
41
+ Agent → POST /tools/premium-query X-Payment-Proof: { txHash, ledgerIndex, payer }
42
+
43
+ Server verifies proof on-ledger → 200 OK + tool result
44
+ ```
32
45
 
33
46
  ---
34
47
 
35
- ## One-Line Install
48
+ ## Quick start
36
49
 
37
50
  ```bash
38
- npm i -g @scriptmasterlabs/mcp-x402
51
+ npm install @scriptmasterlabs/mcp-x402 xrpl express
39
52
  ```
40
53
 
41
- Add to your Claude Code `~/.claude/config.json`:
54
+ ### Gate an MCP tool (server side)
42
55
 
43
- ```json
44
- {
45
- "mcpServers": {
46
- "sml": {
47
- "command": "npx",
48
- "args": ["@scriptmasterlabs/mcp-x402"]
49
- }
56
+ ```typescript
57
+ import express from "express";
58
+ import { createPaymentGate } from "@scriptmasterlabs/mcp-x402";
59
+
60
+ const app = express();
61
+ app.use(express.json());
62
+
63
+ app.post(
64
+ "/tools/market-data",
65
+ createPaymentGate({
66
+ destination: "rYourXRPLReceivingAddress",
67
+ amountDrops: "100000", // 0.1 XRP per tool call
68
+ currency: "XRP",
69
+ description: "Real-time market data — 0.1 XRP per query",
70
+ }),
71
+ (req, res) => {
72
+ res.json({ price: 0.52, timestamp: Date.now() });
50
73
  }
51
- }
52
- ```
53
-
54
- For Cursor (SSE mode), add to your MCP settings:
74
+ );
55
75
 
56
- ```json
57
- {
58
- "mcp-x402": {
59
- "url": "http://localhost:3402/sse"
60
- }
61
- }
76
+ app.listen(3402);
62
77
  ```
63
78
 
64
- Then run: `MCP_TRANSPORT=sse npx @scriptmasterlabs/mcp-x402`
65
-
66
- ---
67
-
68
- ## Architecture
69
-
70
- ```
71
- Claude / Cursor
72
-
73
- ▼ MCP Protocol (stdio / SSE)
74
- mcp-x402 Server
75
- ├─ Input validation (Zod, 100% coverage)
76
- ├─ Rate limiter (100/min per tool)
77
- ├─ AP2 Mandate check (deny-by-default)
78
- ├─ Credit Bureau check (min score 300)
79
- ├─ Price registry (60s max cache)
80
- ├─ x402 payment engine
81
- │ ├─ Base USDC (preferred, <3s)
82
- │ ├─ XRPL RLUSD (500ms fallback)
83
- │ └─ Solana USDC (last resort)
84
- ├─ 402Proof receipt generation
85
- ├─ SML API call (mTLS)
86
- └─ Append-only SHA-256 audit log
87
-
88
- ▼ Result + receipt_id back to agent
89
- ```
90
-
91
- ---
92
-
93
- ## The 6 Tools
94
-
95
- ### `leviathan_signal` — $0.05 USDC | AP2 required
96
- Institutional-grade squeeze signals. Multi-engine verdict (OracleEngine + RDT + SML Fractal Cascade).
79
+ ### Pay for a tool (agent / client side)
97
80
 
98
81
  ```typescript
99
- await use_mcp_tool('sml', 'leviathan_signal', {
100
- ticker: 'MSTR',
101
- signal_type: 'squeeze',
102
- min_confidence: 75
103
- });
104
- // Returns: signal verdict + confidence + receipt_id
82
+ import { createX402Middleware } from "@scriptmasterlabs/mcp-x402";
83
+ import express from "express";
84
+
85
+ const agentApp = express();
86
+ agentApp.use(
87
+ createX402Middleware({
88
+ walletSeed: process.env.XRPL_WALLET_SEED!,
89
+ network: "xrpl-mainnet",
90
+ maxPaymentDrops: "1000000", // 1 XRP safety cap per request
91
+ })
92
+ );
105
93
  ```
106
94
 
107
- ### `xmit_edgar_decode` $0.02 USDC | AP2 required
108
- Parse SEC DEF 14A / 13F / 13D filings. Raw text never leaves SML servers.
95
+ ### Drop-in MCP server wrapper
109
96
 
110
97
  ```typescript
111
- await use_mcp_tool('sml', 'xmit_edgar_decode', {
112
- filing_url: 'https://www.sec.gov/Archives/edgar/data/...',
113
- parse_target: 'executive_pay',
114
- format: 'json'
98
+ import { wrapMcpServer } from "@scriptmasterlabs/mcp-x402";
99
+
100
+ const server = wrapMcpServer({
101
+ x402: {
102
+ walletSeed: process.env.XRPL_WALLET_SEED!,
103
+ network: "xrpl-mainnet",
104
+ },
105
+ tools: [
106
+ {
107
+ name: "premium-query",
108
+ description: "AI-powered XRPL data analysis",
109
+ pricing: {
110
+ destination: "rYourAddress",
111
+ amountDrops: "100000",
112
+ currency: "XRP",
113
+ },
114
+ handler: async (params) => {
115
+ return { result: "your tool output here" };
116
+ },
117
+ },
118
+ ],
115
119
  });
120
+
121
+ server.listen(); // Starts on port 3402
116
122
  ```
117
123
 
118
- ### `xdeo_earnings_estimate` $0.02 USDC | AP2 required
119
- Decentralized earnings oracle. Earns +2 Credit Bureau points per successful call.
124
+ ### Run the testnet demo
120
125
 
121
- ```typescript
122
- await use_mcp_tool('sml', 'xdeo_earnings_estimate', {
123
- ticker: 'NVDA',
124
- fiscal_quarter: 'Q12025',
125
- estimate_type: 'all'
126
- });
126
+ ```bash
127
+ git clone https://github.com/Timwal78/mcp-x402-xrpl
128
+ cd mcp-x402-xrpl
129
+ npm install
130
+ npm run build
131
+ node examples/pay-per-tool.js
127
132
  ```
128
133
 
129
- ### `ftd_threshold_scan` — Alerts FREE / Full $0.05 USDC
130
- SEC Reg SHO FTD spike detection. 15-minute cache.
134
+ ---
131
135
 
132
- ```typescript
133
- // Free tier:
134
- await use_mcp_tool('sml', 'ftd_threshold_scan', { scan_type: 'alerts' });
135
- // Paid tier:
136
- await use_mcp_tool('sml', 'ftd_threshold_scan', { scan_type: 'full', min_spike_multiplier: 3 });
137
- ```
136
+ ## Supported networks & currencies
138
137
 
139
- ### `nexus_agent_hire` Query FREE / Hire 5% commission
140
- Agent marketplace. Find and hire specialized AI agents.
138
+ | Network | Chain | Currency | Settlement time | Avg fee |
139
+ |---------|-------|----------|-----------------|---------|
140
+ | `xrpl-mainnet` | XRP Ledger | XRP (drops) | ~3 sec | 0.00001 XRP |
141
+ | `xrpl-mainnet` | XRP Ledger | RLUSD (IOU) | ~3 sec | 0.00001 XRP |
142
+ | `xrpl-testnet` | XRP Ledger testnet | XRP | ~3 sec | free |
143
+ | `xahau-mainnet` | Xahau | XAH (drops) | ~3 sec | 0.00001 XAH |
144
+ | `xahau-testnet` | Xahau testnet | XAH | ~3 sec | free |
141
145
 
142
- ```typescript
143
- // Free query:
144
- await use_mcp_tool('sml', 'nexus_agent_hire', { capability: 'options flow analysis', max_budget: '1.00', action: 'query' });
145
- // Hire:
146
- await use_mcp_tool('sml', 'nexus_agent_hire', { action: 'hire', agent_id: 'agent_abc', max_budget: '0.50' });
147
- ```
146
+ ---
148
147
 
149
- ### `crawl_paid_fetch` $0.005 USDC
150
- Pay-per-fetch web scraping. Humans bypass automatically.
148
+ ## XRPL vs EVM: x402 settlement comparison
151
149
 
152
- ```typescript
153
- await use_mcp_tool('sml', 'crawl_paid_fetch', {
154
- url: 'https://example.com/data',
155
- extract: 'tables'
156
- });
157
- ```
150
+ | Feature | mcp-x402-xrpl (XRPL) | EVM x402 (Base/Ethereum) |
151
+ |---------|----------------------|--------------------------|
152
+ | Settlement finality | ~3 seconds | ~2 sec (Base) / ~12 sec (ETH) |
153
+ | Avg tx fee | $0.000005 | $0.001–$0.10 |
154
+ | Stablecoin support | RLUSD | USDC |
155
+ | Custodian required | ❌ No | ❌ No |
156
+ | Smart contract risk | ❌ Minimal (no EVM) | ⚠️ EVM surface area |
157
+ | DID / Identity | ✅ Xahau Hooks (XAH) | ⚠️ External |
158
+ | MCP x402 package | `@scriptmasterlabs/mcp-x402` | `@x402/mcp`, `mcp-go-x402` |
158
159
 
159
160
  ---
160
161
 
161
- ## Payment Flow
162
-
163
- 1. **Discover** — Agent reads `agents.json` or `llms.txt`, sees tool prices
164
- 2. **Authorize** — AP2 mandate checked. Credit Bureau score ≥ 300 auto-approves
165
- 3. **Pay** — x402 stablecoin on cheapest/fastest chain (<3s on Base)
166
- 4. **Prove** — 402Proof receipt in every response
167
- 5. **Earn** — Credit Bureau score updates after success
168
-
169
- Every successful tool call returns a `_meta` block:
170
- ```json
171
- {
172
- "_meta": {
173
- "receipt_id": "uuid-here",
174
- "tx_hash": "0xabc...",
175
- "chain": "base",
176
- "amount_paid": "0.05 USDC",
177
- "timestamp": 1750000000000
178
- }
179
- }
180
- ```
162
+ ## API reference
181
163
 
182
- ---
164
+ ### `createX402Middleware(opts)` → Express middleware
183
165
 
184
- ## SDK For MCP Server Authors
166
+ Intercepts `X-Payment-Requirements` headers on incoming requests and
167
+ automatically fulfils them using the configured XRPL wallet.
185
168
 
186
- Install in one line:
187
- ```bash
188
- npm i @scriptmasterlabs/mcp-x402-sdk
189
- ```
169
+ | Option | Type | Default | Description |
170
+ |--------|------|---------|-------------|
171
+ | `walletSeed` | `string` | required | XRPL family seed (sEdT...) |
172
+ | `network` | `XrplNetwork` | `"xrpl-mainnet"` | Network to use |
173
+ | `maxPaymentDrops` | `string` | none | Safety cap per request |
190
174
 
191
- Drop into any MCP server in 5 lines:
192
- ```typescript
193
- import { x402Payment } from '@scriptmasterlabs/mcp-x402-sdk';
194
-
195
- server.tool(
196
- 'my_paid_tool',
197
- myInputSchema,
198
- x402Payment({
199
- price: '0.01',
200
- currency: 'USDC',
201
- inputSchema: MyZodSchema,
202
- handler: async (input, receipt) => ({
203
- content: [{ type: 'text', text: JSON.stringify({ result: await myApi(input), receipt }) }],
204
- }),
205
- }),
206
- );
207
- ```
175
+ ### `createPaymentGate(opts)` Express middleware
208
176
 
209
- That's it. The SDK handles wallet provisioning, AP2 mandate, chain routing, receipts, and audit logging.
177
+ Issues HTTP 402 challenges to callers without a valid payment proof.
210
178
 
211
- ---
179
+ | Option | Type | Default | Description |
180
+ |--------|------|---------|-------------|
181
+ | `destination` | `string` | required | XRPL receiving address |
182
+ | `amountDrops` | `string` | — | XRP amount in drops |
183
+ | `amount` | `string` | — | Non-XRP amount (RLUSD/XAH) |
184
+ | `currency` | `"XRP"\|"RLUSD"\|"XAH"` | `"XRP"` | Settlement currency |
185
+ | `destinationTag` | `number` | — | Optional destination tag |
212
186
 
213
- ## Security
214
-
215
- | Requirement | Implementation |
216
- |-------------|----------------|
217
- | Keys in OS keychain only | `keytar` — macOS Keychain / Windows DPAPI / Linux Secret Service |
218
- | mTLS on SML APIs | Pinned cert via `node-forge` |
219
- | No PII in logs | Wallet addresses hashed (SHA-256 prefix), filing content redacted |
220
- | Zod on all inputs | 100% coverage, validated before any execution |
221
- | Append-only audit log | SHA-256 HMAC chained log, 7-day local + cloud backup |
222
- | AP2 mandate required | Verified before every paid call, fail-closed |
223
- | 402Proof receipt | Every transaction, registered with proof server |
224
- | Credit Bureau check | min score 300 for auto-approve |
225
- | $50 daily spend cap | Per wallet, enforced in-process |
226
- | Testnet in CI | Base Sepolia only, max $0.10 test value |
227
- | <3s end-to-end | Base mainnet target, 500ms multi-chain fallback |
187
+ ### `wrapMcpServer(opts)` → `{ app, listen }`
228
188
 
229
- ---
189
+ Spins up a complete MCP-compatible Express server with per-tool x402 gating.
230
190
 
231
- ## Environment Variables
191
+ ### `XrplFacilitator`
232
192
 
233
- See [`.env.example`](.env.example) for the full list. Key variables:
193
+ Low-level class for direct payment signing and proof verification.
234
194
 
235
- ```bash
236
- MCP_TRANSPORT=stdio # stdio (Claude Code) or sse (Cursor/remote)
237
- SML_API_BASE=https://api.scriptmasterlabs.com
238
- BASE_RPC_URL=https://mainnet.base.org
239
- XRPL_RPC_URL=wss://xrplcluster.com
240
- DAILY_SPEND_CAP_USD=50
241
- AUTO_APPROVE_THRESHOLD_USD=1
242
- TESTNET=false # Set true + CI_WALLET_SEED for CI
195
+ ```typescript
196
+ const facilitator = new XrplFacilitator({ walletSeed, network });
197
+ const proof = await facilitator.pay(requirements);
198
+ const valid = await facilitator.verify(proof, requirements);
243
199
  ```
244
200
 
245
- **Private keys**: Stored in your OS keychain automatically on first run. Never in env vars.
246
-
247
201
  ---
248
202
 
249
- ## Running Locally
203
+ ## FAQ
250
204
 
251
- ```bash
252
- git clone https://github.com/timwal78/sml_portfolio
253
- cd mcp-x402
254
- npm install
255
- npm run build
256
- npm start
257
- ```
205
+ **Q: What is mcp-x402?**
206
+ A: mcp-x402 is a Node.js/TypeScript library that adds HTTP 402 payment gating to any
207
+ MCP server using the XRP Ledger or Xahau as the payment rail. AI agents pay per tool call
208
+ autonomously — no human intervention needed.
258
209
 
259
- With Docker:
260
- ```bash
261
- docker build -t mcp-x402 .
262
- docker run -p 3402:3402 -e MCP_TRANSPORT=sse mcp-x402
263
- ```
210
+ **Q: Does this support Xahau and XAH?**
211
+ A: Yes. All four networks are supported: XRPL mainnet, XRPL testnet, Xahau mainnet,
212
+ and Xahau testnet. XAH (Xahau's native currency) can be used for tool payments.
264
213
 
265
- ---
214
+ **Q: Is mcp-x402-xrpl the only x402 implementation for XRPL?**
215
+ A: Yes. As of mid-2025, all other x402 packages (MetaMask's `mcp-x402`, Civic Team's
216
+ `x402-mcp`, mark3labs' `mcp-go-x402`) target EVM chains only. This is the first
217
+ and only XRPL/Xahau x402 facilitator.
266
218
 
267
- ## Testing
219
+ **Q: How is x402 different from an API key?**
220
+ A: API keys require human signup, billing setup, and account management — incompatible
221
+ with fully autonomous AI agents. x402 is HTTP-native: the agent pays cryptographically
222
+ on-chain per request, verified automatically by the server.
268
223
 
269
- ```bash
270
- npm test # All unit tests
271
- npm run test:coverage # Coverage report (target: 90%)
272
- TESTNET=true CI_WALLET_SEED="your mnemonic" npm run test:integration
273
- ```
224
+ **Q: Can I use RLUSD instead of XRP?**
225
+ A: Yes. Pass `currency: "RLUSD"` and `amount: "0.10"` (human-readable string)
226
+ instead of `amountDrops`. RLUSD settles on XRPL with the same 3-second finality.
274
227
 
275
- ---
228
+ **Q: Do I need an XRPL node?**
229
+ A: No. The library connects to public XRPL cluster nodes (`xrplcluster.com` for mainnet,
230
+ `s.altnet.rippletest.net` for testnet) automatically.
276
231
 
277
- ## Ecosystem
232
+ **Q: Is this related to ZeroQuery?**
233
+ A: Yes. ZeroQuery (Proof-of-Intent Protocol) uses the x402 escrow pattern on Solana
234
+ and is being extended to XRPL via this library. mcp-x402-xrpl is the XRPL payment
235
+ settlement layer for the ZeroQuery ecosystem.
278
236
 
279
- | Service | URL | Role |
280
- |---------|-----|------|
281
- | SqueezeOS API | `squeezeos-api.onrender.com` | Market intelligence |
282
- | 402Proof | `four02proof.onrender.com` | Payment receipts + Credit Bureau |
283
- | Ghost Layer | `ghost-layer.onrender.com` | XRPL+Base toll gateway |
284
- | ScriptMasterLabs | `scriptmasterlabs.com` | Operator homepage |
237
+ **Q: What is the npm package name?**
238
+ A: `@scriptmasterlabs/mcp-x402`. Install with `npm install @scriptmasterlabs/mcp-x402`.
285
239
 
286
240
  ---
287
241
 
288
- ## MOAT
242
+ ## Related projects
289
243
 
290
- - Only MCP server with live x402 + AP2 + multi-chain production stack
291
- - Only one with Agent Credit Bureau (300–850 scores)
292
- - Only one backed by live financial intelligence marketplace
293
- - Only one with SDVOSB federal credibility
294
- - MIT licensed. No proprietary core.
244
+ | Project | Description |
245
+ |---------|-------------|
246
+ | [ZeroQuery Protocol](https://github.com/Timwal78/zeroquery-protocol) | Proof-of-Intent AI-to-AI intent resolution with x402 escrow |
247
+ | [AGO Orchestrator](https://github.com/Timwal78/ago-orchestrator) | Autonomous GEO agent for content distribution and gap analysis |
248
+ | [ScriptMasterLabs](https://scriptmasterlabs.com) | Home base — autonomous agent infrastructure |
295
249
 
296
250
  ---
297
251
 
298
252
  ## License
299
253
 
300
- MITsee [LICENSE](LICENSE)
254
+ Apache-2.0See [LICENSE](LICENSE).
255
+
256
+ Built by [ScriptMasterLabs](https://scriptmasterlabs.com).
257
+
258
+ ---
301
259
 
302
- Owner: [@TimmyCrypto78](https://github.com/timwal78) / ScriptMasterLabs
303
- Launch Target: 2026-07-02
304
- Target: 50K GitHub stars, 5K npm weekly downloads
260
+ *Keywords: mcp x402 xrpl, mcp-x402 xrpl, x402 payment xrpl, autonomous agent payments xrpl,
261
+ http 402 xahau, mcp tool payment middleware, xrpl mcp payment, rlusd mcp x402,
262
+ xah autonomous payment, model context protocol payment, agentic commerce xrpl*
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @scriptmasterlabs/mcp-x402 — Public API barrel
3
+ *
4
+ * Everything a consumer needs is exported from this single file.
5
+ */
6
+ export { createX402Middleware, createPaymentGate } from "./x402-middleware.js";
7
+ export type { X402MiddlewareOptions, PaymentGateOptions, PaymentRequirements, PaymentProof } from "./x402-middleware.js";
8
+ export { XrplFacilitator } from "./xrpl-facilitator.js";
9
+ export type { XrplFacilitatorOptions, XrplNetwork } from "./xrpl-facilitator.js";
10
+ export { wrapMcpServer } from "./mcp-wrapper.js";
11
+ export type { McpTool, McpToolWithPricing, McpServerOptions } from "./mcp-wrapper.js";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,YAAY,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEjF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @scriptmasterlabs/mcp-x402 — Public API barrel
3
+ *
4
+ * Everything a consumer needs is exported from this single file.
5
+ */
6
+ export { createX402Middleware, createPaymentGate } from "./x402-middleware.js";
7
+ export { XrplFacilitator } from "./xrpl-facilitator.js";
8
+ export { wrapMcpServer } from "./mcp-wrapper.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG/E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}