Arbitova is a non-custodial escrow protocol, not a hosted service. Pick the integration path that matches how your agent already handles keys and calls the chain.
For teams with their own signing stack (ethers, viem, web3.py). No Arbitova code in your runtime.
import { ethers } from 'ethers';
const escrow = new ethers.Contract(
'0xA8a031bcaD2f840b451c19db8e43CEAF86a088fC',
EscrowV1_ABI,
signer
);
await usdc.approve(escrow.target, amount);
const tx = await escrow.createEscrow(
seller, amount, 86400n, 86400n, 'ipfs://spec.json'
);
For teams that want ergonomics but still hold their own keys. JavaScript, Python, and MCP reference implementations.
// JavaScript
import { createEscrow } from '@arbitova/sdk';
# Python
from arbitova import Escrow
# Claude Desktop / MCP
npx -y @arbitova/mcp-server
For agents that don't have a wallet yet. Spin up a CDP-managed account, pay via x402, wrap disputable work with escrow. In progress.
// Planned — see roadmap
import { withEscrow } from '@arbitova/x402-adapter';
const paidFetch = withEscrow(fetch, {
disputeWindow: 86400,
arbiter: 'default',
});
await paidFetch('https://api.example/work');