Arbitova

io.github.jiayuanliang0716-max由 GitHub 帳號 jiayuanliang0716-max 發布v3.4.0更新於 Nov 3, 2026

Escrow + AI arbitration for A2A payments. Lock funds, confirm delivery, dispute if needed.

已驗證STDIO僅桌面金融AI 與機器學習

概覽

AI 產生的概覽

針對 Base 上代理間支付的非託管 USDC 託管與 AI 仲裁服務,讓助理建立、確認、爭議與查詢託管訂單。

可以做什麼
  • 建立託管訂單,為賣方鎖定 USDC 並設定交付與審核時限
  • 標記已交付,確認收貨或提出爭議,未交付時可取消
  • 查詢託管訂單狀態,用於唯讀觀察
  • 六個工具都透過 ethers v6 在本機簽章,直接呼叫 EscrowV1 合約
適用情境
當助理需要為互不信任的兩個代理結算付費任務時使用:鎖定資金、確認交付,或提出由中立 AI 仲裁者裁決的爭議。也適合唯讀監控託管狀態。
執行需求
以 npx 在本機執行,需要 Node.js 環境。需要以太坊地址;執行寫入操作還需透過 ARBITOVA_AGENT_PRIVATE_KEY 提供私鑰,省略該變數則為唯讀模式。README 範例另設定了 RPC、託管合約與 USDC 地址變數。目前僅在 Base Sepolia 測試網運作,主網待稽核。
安裝前請注意
寫入操作會轉移真實 USDC,確認後無法撤銷。設定要求在 ARBITOVA_AGENT_PRIVATE_KEY 中提供私鑰,該私鑰掌控錢包資金,建議使用專用且餘額較低的帳戶。結算收取 0.5%、爭議裁決收取 2% 的費用,從付款中扣除。清單宣告需要 ARBITOVA_API_KEY,但 README 描述的是免金鑰的鏈上方案,安裝前請確認版本。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Arbitova,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Arbitova

[jiayuanliang0716-max/Arbitova MCP server]

Non-custodial USDC escrow + AI arbitration for agent-to-agent payments on Base.

Two agents lock USDC into a contract, one delivers, the other confirms or disputes, and a neutral AI arbiter resolves. Arbitova never holds the money — the contract does.

No API keys. No registration. No custody. Your Ethereum address is your identity.


Why this exists

Every A2A / agent-commerce spec in the wild — MCP, Google's A2A, ERC-7683, Coinbase's Agent Commerce — defines how agents talk. None of them define how money moves when the agents don't trust each other.

Arbitova is the missing settlement primitive:

  • Deterministic state machine. createEscrow → markDelivered → {confirmDelivery | dispute → resolve | cancel}. No hidden branches, no admin override.
  • No auto-release after timeout. Review windows expire into DISPUTED, not into seller payout. Silence is safer than a wrong confirmation.
  • Content-hash pinned on-chain. Sellers can't swap the delivery file after the buyer inspects.
  • Per-case verdict transparency. Every arbiter decision is a signed JSON blob; its keccak256 is stored on-chain. The full verdict history is queryable at /verdicts — no aggregation, no delay.

This is not a marketplace. There is no Arbitova account, no listing fee, no Pro tier. The protocol is the whole product.


Quick start — Node.js SDK

bash
npm install @arbitova/sdk ethers
js
import { Arbitova } from '@arbitova/sdk';
const buyer = await Arbitova.fromPrivateKey({ privateKey: process.env.BUYER_PK });
const { escrowId, txHash } = await buyer.createEscrow({  seller: process.env.SELLER_ADDRESS,  amount: '5.00',  deliveryHours: 24,  reviewHours: 24,  verificationURI: 'https://example.com/spec.json',});
console.log(`Escrow #${escrowId} locked — ${buyer.explorerTx(txHash)}`);

Seller-side, arbiter-side, browser wallet integration: see packages/sdk-js/README.md.

Quick start — Python SDK

bash
pip install "arbitova[path_b]"
python
from arbitova import path_b
result = path_b.arbitova_create_escrow(    seller="0x...",    amount=5.00,    verification_uri="https://example.com/spec.json",)print(result)

Quick start — Claude / any MCP client

json
{  "mcpServers": {    "arbitova": {      "command": "npx",      "args": ["-y", "@arbitova/mcp-server"],      "env": {        "ARBITOVA_RPC_URL": "https://sepolia.base.org",        "ARBITOVA_ESCROW_ADDRESS": "0xA8a031bcaD2f840b451c19db8e43CEAF86a088fC",        "ARBITOVA_USDC_ADDRESS": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",        "ARBITOVA_AGENT_PRIVATE_KEY": "0x..."      }    }  }}

Six tools: arbitova_create_escrow, arbitova_mark_delivered, arbitova_confirm_delivery, arbitova_dispute, arbitova_cancel_if_not_delivered, arbitova_get_escrow. All sign locally via ethers v6. Your private key never leaves the process.

Omit ARBITOVA_AGENT_PRIVATE_KEY for read-only introspection mode (useful for observability).


Lifecycle

                      ┌──────────────────┐                      │     CREATED      │ buyer locked USDC                      └────────┬─────────┘                               │                               ▼ seller.markDelivered()                      ┌──────────────────┐                      │    DELIVERED     │ deliveryHash on-chain                      └────────┬─────────┘                               │        buyer.confirmDelivery()│        │ buyer.dispute()                               │        │ or seller.dispute()                               ▼        ▼                   ┌─────────────┐  ┌──────────┐                   │  RELEASED   │  │ DISPUTED │ waiting for arbiter                   └─────────────┘  └────┬─────┘                                         │ arbiter.resolve(bps split + verdictHash)                                         ▼                                   ┌──────────┐                                   │ RESOLVED │                                   └──────────┘

Two terminal states not drawn: CANCELLED (buyer calls cancelIfNotDelivered after delivery window) and auto-escalation into DISPUTED if the review window expires without confirmation.


Framework reference agents

Three end-to-end A2A demos on Base Sepolia with a live AI arbiter:

Each demo runs the full CREATED → DELIVERED → CONFIRMED (or DISPUTED → RESOLVED) flow with real on-chain transactions.


Packages

PackagePurpose
@arbitova/sdkNode.js / browser SDK (ethers v6)
arbitovaPython SDK, install with [path_b] extra for on-chain support
@arbitova/mcp-serverMCP server (6 on-chain tools) for Claude Desktop, Claude Code, any MCP client

Each ships the same six-entrypoint surface so an agent using the Python SDK can settle with an agent using the MCP server — they're hitting the same contract.


Fees

WhenFeePaid by
confirmDelivery / review-window expiry auto-settle0.5%deducted from seller payout
Arbiter resolves a dispute2%split per arbiter verdict

Fees accrue in the contract. The protocol runs on them; there is no subscription.


Networks

NetworkStatusContract
Base Sepolialive, real Circle USDC0xA8a031bcaD2f840b451c19db8e43CEAF86a088fC
Base mainnetpending audit + multisig arbiterTBA

Watch the Dev Log for mainnet launch.


Legacy (Path A)

v2.x of the SDKs and v3.4.0 of the MCP server were a custodial HTTP client against api.arbitova.com. That architecture had four structural problems (DB-vs-onchain drift, custody wallet gas, single ADMIN_KEY, single WALLET_ENCRYPTION_KEY point of failure) and was deprecated in favor of Path B — the non-custodial on-chain design described above.

Old packages remain on npm/PyPI but are deprecated.


License

MIT

來源:README.md,提交 f8bb861

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v3.4.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分