Interline について
Interlineは、アーカイブ済みでメンテナンスされていないエージェント間決済ルーターです。x402とMPPの決済レールを仲介し、エンドポイントの発見と支払いに使うMCPルーターを備えています。
主な機能
- 01x402とMPPの決済レール間ルーティング
- 02エンドポイントの発見と支払い
- 03Paywall.gate()によるエンドポイント保護
- 04決済レシート台帳
- 05Google AP2インバウンドアダプター
活用シーン
- 01買い手エージェントによる売り手の作業への支払い
- 02サービスエンドポイントへの決済ゲート設定
- 03エージェント決済の記録
MCP 対応
エンドポイントの発見と支払いをエージェントに提供するMCPルーターを含みます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx interlineAPV0_BUYER_PRIVATE_KEYシークレットYour own wallet private key (0x...). Stays in your env; the server never holds funds. Required only for pay_for_resource, not for discovery.APV0_NETWORKbase-sepolia (testnet) or base (mainnet). Default base-sepolia.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Interline — エージェント間決済ルーター
アーカイブ済み(2026-10-10)。 Interline はメンテナンスされていません。コードは参照用に残されていますが、開発は行われておらず、テストネットのデモも監視されていません。
エージェント間決済ルーターです。一方のエージェントが作業し、もう一方のエージェントがその対価を支払うため、人がカード情報を入力する必要はありません。Interline は、分断されたエージェント決済レールのスタックをつなぐ、中立的で非カストディアルなルーターです。*「エージェント決済のための OpenRouter」*です。x402(HTTP-402 のマイクロペイメント、USDC)を基盤とし、アグリゲーター型の設計により、レールの追加は書き直しではなく、アダプターを一つ追加するだけです。
現在、3つの稼働中のレールで決済をルーティングします。EVM(Base Sepolia)と Solana(devnet)上の x402 USDC に加え、Tempo(Moderato testnet)上の MPP に対応しており、すべて一度の Paywall.gate() 呼び出しで利用できます。3つすべてで、エージェント間の実際のオンチェーン決済が確認されています。エージェントがエンドポイントを検出して支払えるようにする MCP ルーターを備え、さらに Google-AP2 インバウンドアダプターも含まれています。署名済み AP2 マンデート(検証済みで、制約チェックと鮮度ゲートを通過したもの)が、レール上で非カストディアルに決済されます。
デモを実行する(ウォレット不要、フォーセット不要、リスクなし)
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python3 run_demo.py
想定される結果:DEMO PASS — agent paid agent, settlement receipt issued
実際に行われた処理(x402 の「exact-evm」ループ):
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)
モックモードでも、ファシリテーターの検証ステップでは実際の暗号処理が行われます。EIP-712 の署名者を復元し、認可情報と照合します。モックされるのはオンチェーンへのブロードキャストだけです。したがって、デモが成功すれば、購入者の署名が実際の USDC に対してプロトコルに準拠していることが証明されます。
ファイル
| ファイル | 役割 |
|---|---|
router/paywall.py | 再利用可能な Paywall プリミティブです。一度の .gate() 呼び出しで、任意のエンドポイントを x402 の背後に置きます |
router/ledger.py | 決済レシート台帳 → logs/agent_payment_settlements.jsonl(監査証跡) |
router/seller.py | 作業を販売する FastAPI エージェントです。要件と作業を定義し、Paywall.gate() を一度呼び出します |
router/buyer.py | クライアント側の支出上限を設定し、402 に自動で支払うエージェント(pay_and_get)です |
router/eip3009.py | 暗号処理の細部を扱う唯一のファイルです。購入者とファシリテーターが共有する EIP-3009 の型付きデータにより、両者の処理がずれないようにします |
router/facilitator_mock.py | プロセス内で検証と決済を行います(署名は実際にチェックし、チェーンはモックします)。ドライラン用のレールです |
router/facilitator_real.py | x402 SDK 独自のクライアントを使い、HTTP 経由で稼働中の x402 ファシリテーターに接続します。get_facilitator() が設定に応じてモックと実環境を切り替えます |
router/config.py | ネットワークとアセットの情報、および .env ローダーです。モック、テストネット、メインネットの切り替えは環境変数を1行変更するだけです |
run_demo.py | エンドツーエンドのスモークテスト(エフェメラルキー、モックファシリテーター) |
run_live.py | ライブ実行用ランナーです。Base Sepolia 上で実際の x402 決済を行います |
ライブ実行(Base Sepolia テストネット)
-
テストネット用ウォレットを2つ用意します(購入者が署名し、販売者が受け取ります)。
python3 -c "from eth_account import Account; a=Account.create(); print('addr', a.address); print('key', a.key.hex())"これを2回行います。秘密鍵は Git に含めず、
.envを使用してください。 -
購入者に資金を用意します。 Base Sepolia のテストネット USDC(Circle faucet)と、ファシリテーターが中継するガス代用の少量のテストネット ETH が必要です。
-
.env(.env.exampleを.envにコピーします。Git の追跡対象外で、自動的に読み込まれます)。APV0_NETWORK=base-sepolia APV0_BUYER_PRIVATE_KEY=0x... # buyer testnet key (signs) APV0_SELLER_ADDRESS=0x... # seller address (receives) APV0_FACILITATOR_URL=https://x402.org/facilitator -
ライブ実行します。
python3 run_live.py販売者は
RealFacilitator(x402 SDK 独自のファシリテータークライアント)を使用し、購入者は 402 に自動で支払い、x402.org が EIP-3009 の USDC 送金をオンチェーンにブロードキャストします。実際のトランザクションハッシュが発行されます →https://sepolia.basescan.org/tx/<hash>。ガス代不要:EIP-3009 ではファシリテーターがガス代を中継するため、購入者に必要なのはテストネットの USDC だけで、ETH は不要です。
独自のエンドポイントを保護する(製品のプリミティブ)
from router.paywall import Paywall
from 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())
この一度の .gate() 呼び出しで、x402 V2 の一連の処理(402 チャレンジ → 検証 → 決済 → レシートの記録 → 配信)をすべて処理し、すべての決済をレシート台帳に追記します。デプロイ担当者がプロトコルに触れたり、鍵を保管したりする必要はありません。
v1 ドッグフード — エージェントに支払い、実際の作業成果を受け取る
v0 では 支払い を実証しました。v1 では ループ を実証します。買い手エージェントが支払い、売り手エージェントが実際の推論を実行し、結果と決済レシートを返します。売り手の _do_the_work(task) が製品との統合ポイントです(独自のモデル/コンピューティング/サービスを接続できます)。
APV0_OPENROUTER_KEY=sk-or-... python3 run_v1_dogfood.py "your task here"
→ V1 DOGFOOD PASS — agent paid agent for real work ✅(デフォルトではモック決済と実際のモデル呼び出しを使用します。同じループで実際にオンチェーン決済を行うには、APV0_NETWORK=base-sepolia を設定してください)。キーがない場合はスタブを返すため、製品は引き続き動作します。
これが本物のループです。エージェントが実際の作業を実行し、x402 経由で計測・支払いが行われます。作業がモデル呼び出し、コンピューティングジョブ、その他の請求可能なエージェントタスクのいずれであっても、同じプリミティブを使用します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。