Interline

io.github.Choppaaahh由 GitHub 账号 Choppaaahh 发布v0.1.3更新于 Oct 24, 2026

Neutral, non-custodial MCP payment router: discover rails, then pay across them.

已验证STDIO仅桌面金融开发者工具

概览

AI 生成的概览

已归档的非托管 MCP 支付路由,让助手发现代理支付通道并用 USDC 为受付费墙保护的端点付款。

可以做什么
发现可供代理使用的支付通道与端点,并通过一次路由调用在 x402(EVM 与 Solana)和 MPP 通道上为受保护资源付款。使用买方钱包密钥签署 USDC 支付授权并获取结算回执。以非托管方式路由支付,服务器本身不持有资金。README 还描述了用付费墙保护自有端点以及入站 AP2 授权适配器,但项目已归档,清单中未列出任何工具。
适用场景
仅适合在测试网上参考或试验代理间小额支付,例如研究助手如何为受付费墙保护的端点付款。项目已归档且无人维护,不适合生产使用。
运行要求
作为本地 Python 进程运行,从 PyPI 安装(interline)。付款需要 APV0_BUYER_PRIVATE_KEY 中的买方钱包私钥,并用 APV0_NETWORK 选择 base-sepolia(默认)或 base。真实结算需要测试网 USDC 以及访问 facilitator 的网络连接。
安装前请注意
APV0_BUYER_PRIVATE_KEY 是钱包私钥,持有者可控制钱包资金,请使用专用测试网钱包并避免提交到版本库。将 APV0_NETWORK 设为 base 会花费真实主网 USDC。支付会签名并上链广播,无法撤销。项目已归档,测试网演示无人监控。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Interline,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Interline — agent-to-agent payment router

Archived (2026-10-10). Interline is no longer maintained. The code stays here for reference; nothing is being developed, and the testnet demos are not monitored.

An agent-to-agent payment router: one agent does work, another agent pays for it, no human keys a card. Interline is a neutral, non-custodial router over the fragmented agent-payment-rail stack — "OpenRouter for agent payments." Built on x402 (HTTP-402 micropayments, USDC), aggregator-shaped so adding a rail is one adapter, not a rewrite.

Today it routes payments across three live rails — x402 USDC on EVM (Base Sepolia) and on Solana (devnet), plus MPP on Tempo (Moderato testnet) — all behind one Paywall.gate() call. Real on-chain agent-to-agent settles are confirmed on all three. It ships an MCP router so agents can discover + pay endpoints, and includes a Google-AP2 inbound adapter — a signed AP2 mandate (verified, constraint-checked + freshness-gated) settles non-custodially on the rails.

Run the demo (no wallet, no faucet, no risk)

bash
python3 -m venv .venv && source .venv/bin/activatepip install -r requirements.txtpython3 run_demo.py

Expected: DEMO PASS — agent paid agent, settlement receipt issued.

What just happened (the x402 "exact-evm" loop):

buyer GET /work  -> seller 402 + PaymentRequirements {amount, asset=USDC, payTo, network}  -> buyer signs an EIP-3009 transferWithAuthorization (gasless USDC auth)  -> buyer retries with X-PAYMENT header (base64 signed payload)  -> facilitator VERIFIES the signature (real signer-recovery) + checks policy  -> facilitator SETTLES (mock: fake tx hash; live: on-chain USDC transfer)  -> seller 200 + work product + X-PAYMENT-RESPONSE receipt (tx hash)

The facilitator's verify step is real cryptography even in mock mode — it recovers the EIP-712 signer and matches it to the authorization. Only the on-chain broadcast is mocked. So a passing demo proves the buyer's signing is protocol-correct against real USDC.

Files

filerole
router/paywall.pythe reusable Paywall primitive — gate any endpoint behind x402 in one .gate() call
router/ledger.pysettlement receipt-ledger → logs/agent_payment_settlements.jsonl (audit trail)
router/seller.pyFastAPI agent that sells work — defines the requirements + work, wires one Paywall.gate()
router/buyer.pyagent that auto-pays 402s (pay_and_get) with a client-side spend limit
router/eip3009.pythe one crypto-subtle file: EIP-3009 typed-data, shared by buyer+facilitator so they can't drift
router/facilitator_mock.pyin-process verify+settle (real sig check, mock chain) — the dry-run rail
router/facilitator_real.pylive x402 facilitator over HTTP via the x402 SDK's own client; get_facilitator() picks mock↔real by config
router/config.pynetwork/asset facts + .env loader; mock↔testnet↔mainnet is a one-line env change
run_demo.pyend-to-end smoke (ephemeral keys, mock facilitator)
run_live.pylive runner — settles a real x402 payment on Base Sepolia

Go live (Base Sepolia testnet)

  1. Two testnet wallets (buyer signs, seller receives):

    bash
    python3 -c "from eth_account import Account; a=Account.create(); print('addr', a.address); print('key', a.key.hex())"

    Do this twice. Keep the keys out of git (use .env).

  2. Fund the buyer with Base Sepolia testnet USDC (Circle faucet) + a little testnet ETH for any gas the facilitator relays.

  3. .env (copy .env.example → .env, it's gitignored + auto-loaded):

    APV0_NETWORK=base-sepoliaAPV0_BUYER_PRIVATE_KEY=0x...        # buyer testnet key (signs)APV0_SELLER_ADDRESS=0x...           # seller address (receives)APV0_FACILITATOR_URL=https://x402.org/facilitator
  4. Run it live:

    bash
    python3 run_live.py

    The seller now uses RealFacilitator (the x402 SDK's own facilitator client), the buyer auto-pays the 402, and x402.org broadcasts the EIP-3009 USDC transfer on-chain. You get a real tx hash → https://sepolia.basescan.org/tx/<hash>.

    Gasless: with EIP-3009 the facilitator relays gas, so the buyer only needs testnet USDC, not ETH.

Gate your own endpoint (the product primitive)

python
from router.paywall import Paywallfrom router.facilitator_real import get_facilitator
paywall = Paywall(get_facilitator(), my_requirements_fn)   # mock ↔ real by env
@app.get("/my-endpoint")def my_endpoint(request: Request):    return paywall.gate(request, lambda: do_expensive_work())

That one .gate() call handles the whole x402 V2 dance — 402 challenge → verify → settle → record receipt → deliver — and appends every settlement to the receipt-ledger. The deployer never touches the protocol or holds a key.

v1 dogfood — pay an agent, get REAL work back

v0 proved the payment. v1 proves the loop: a buyer agent pays → a seller agent does real inference → returns the result + a settlement receipt. The seller's _do_the_work(task) is the product's integration point (plug in your own model/compute/service).

bash
APV0_OPENROUTER_KEY=sk-or-... python3 run_v1_dogfood.py "your task here"

→ V1 DOGFOOD PASS — agent paid agent for real work ✅ (mock payment + real model call by default; set APV0_NETWORK=base-sepolia for a real on-chain settle under the same loop). Without a key it returns a stub so the product still runs.

This is the authentic loop: an agent doing real work, metered + paid-for over x402 — the same primitive whether the work is a model call, a compute job, or any other billable agent task.

来源:README.md,提交 8cea962

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.3最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分