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 分