
Solana X402 Compliance
io.github.msantagiulianab由 GitHub 账号 msantagiulianab 发布v1.0.7更新于 Oct 25, 2026
RFC 9110 x402 Solana compliance screening and micropayments gateway for AI agents.
概览
对照制裁与威胁名单筛查 Solana 地址和交易,并通过支付网关自动结算 x402 小额支付。
- 可以做什么
- 筛查 Solana 地址是否命中制裁与威胁情报,返回判定结果、风险评分和标记,每次调用都会自动协商并结算 x402 小额支付。为钱包地址或交易签名生成不可篡改的合规报告,同一会话中未经实时筛查的标识会保持 UNSCREENED 状态。查询 x402 支付通道的状态、限额与结算情况。
- 适用场景
- 适合助手在与某个钱包交易前需要按需进行 Solana 合规检查或生成审计式报告,且调用方已配置好通过网关按次支付 x402 小额费用。
- 运行要求
- 通过 npx 以 stdio 在本地运行,需要 Node.js。它会连接远程支付网关,网关地址和通道 ID 通过 X402_GATEWAY_URL 和 X402_CHANNEL_ID 环境变量设置。可选的 X402_PRIVATE_KEY_SEED 提供签名密钥材料,未设置时使用确定性的冒烟测试种子。
安装
在 SourceWeft 中
- 打开 控制台中的 Solana X402 Compliance,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
x402 MCP Server
A lightweight, zero-bloat Model Context Protocol
(MCP) server that exposes the Solana Enterprise Payment Gateway's
POST /api/v1/compliance/screen-address endpoint as an autonomous tool for AI
agents (Claude Desktop, Cursor, VS Code Cline, ElizaOS).
The agent transparently negotiates and settles the x402 micro-payment on every
screen: it receives the HTTP 402 Payment Required challenge, signs an
Ed25519 channel voucher in-memory (Node.js built-in crypto, no Web3 SDK), and
retries with a PAYMENT-SIGNATURE header.
Standalone npm package
The server is published to the npm registry as a standalone package — no clone or build step is required to run it:
See package.json for the current version and metadata. The
package ships the compiled ESM dist/ bundle plus this README and the LICENSE.
Layout
Install & build
Run (stdio transport)
Environment variables:
X402_GATEWAY_URLandX402_CHANNEL_IDare injected by the MCP host (Claude Desktop, Cline, Smithery, etc.);X402_PRIVATE_KEY_SEEDis optional and defaults to the deterministic smoke-test payer.
The tool screen_solana_address:
- Description: Inspect a Solana address against sanctions and threat intelligence databases. Automatically negotiates and settles micro-payments via x402.
- Input:
address— a valid Base58 Solana public key (decodes to 32 bytes). - Output: formatted JSON text containing
verdict,riskScore,flags, and the evaluation timestamp.
The tool get_channel_status:
- Description: Retrieve current operational status, limits, and settlement state of a given x402 payment channel.
- Input:
channel_id— the unique identifier of the payment channel. - Output: formatted JSON text containing
status("ACTIVE"),currency("USDC"),network("solana-devnet"),capacity("10000.00"), andlastSettlementBlock.
The tool generate_compliance_report:
- Description: Generate an immutable audit summary report for a Solana wallet address or transaction signature against sanctions and threat intelligence logs.
- Input:
identifier— a Solana wallet address (32-byte Base58) or a transaction signature (64-byte Base58). - Output: formatted JSON text containing
complianceStatus("PASSED"|"FLAGGED"|"UNSCREENED"),riskScore(a number for screened identifiers,nullwhen unscreened),flags,sanctionsMatch,checkedLists([]when unscreened, otherwise["OFAC", "EU_SANCTIONS", "CHAIN_REPUTATION"]),lastEvaluated,evaluationTimestamp,timestamp, andreportId. The report fails closed: it references the session's in-memory screening ledger and returns"UNSCREENED"until the identifier has been live-screened viascreen_solana_address.
Architecture & Sync Workflow
This component is one of three independently deployable surfaces in the repository. Changes flow differently depending on where they live:
The backend and the MCP server deploy independently: a Java change does not require an
npm publish, and an MCP change does not require a VPS reload. Documentation and registry metadata (smithery.yaml) ship purely via GitHub.
smithery.yaml
smithery.yaml is the Smithery
registry manifest. It declares the stdio startCommand
(npx -y @msantagiulianab/x402-mcp-server) and exposes two configurable fields
— gatewayUrl and channelId — which map onto the X402_GATEWAY_URL and
X402_CHANNEL_ID environment variables. Updating it only requires a GitHub
push; the Smithery registry indexes it directly from the repository.
Tests
This compiles the project and runs:
base58.test.js— Base58 codec round-trips and 32-byte address validation.ed25519.test.js— golden-vector check that the canonical payload and Ed25519 signature exactly matchsmoke-test.sh/ the JVMPaymentVoucherlayout.x402-client.test.js— full 402→sign→retry negotiation against a mock gateway, with independent Ed25519 signature verification of the emitted voucher.mcp-server.test.js— spawns the real server and drives it with an MCP client over stdio (list tools + callscreen_solana_address).
Live verification against the running stack
With the Docker stack up (docker compose up -d --build):
This exercises the tool handler against http://localhost:8080:
- Clean address
4Nd1mBQtrMJVYVfKf2PJy9NZGibCcTRxpETqdrBHu19Y→CLEAR_TO_TRANSACT. - Flagged address
Fc1EwQUZyTEagaDvA1utHXCcZNyG1x2PLt2DfNu1cJdH→BLOCKED.
Client configuration
Claude Desktop
Add to claude_desktop_config.json:
macOS / Linux
Windows
VS Code Cline
Add to cline_mcp_settings.json:
Cursor
Add an MCP server entry (Settings → MCP) pointing at the same
npx -y @msantagiulianab/x402-mcp-server command with the environment
variables above.
ElizaOS
Register a stdio-based MCP client plugin using the same
npx -y @msantagiulianab/x402-mcp-server command; the tool
screen_solana_address becomes callable by the agent.
来源:agent-tools/mcp-server/README.md,提交 6b2749f
工具
0版本历史
1- v1.0.7最新Sep 23, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分