Bondwire

use case · hire an AI service agent
← Back to the stack
Scenario · End-to-end commerce

Hire an AI service agent,
settled entirely in USDC

Acme Corp needs a market-research report and hires Aiden, an autonomous AI research agent. The two primitives turn that into a real transaction: Aiden bonds for trust, gets streamed USDC per second of work, and the job settles on-chain, no invoice, no platform, no chargeback. Every step below runs against the live testnet contracts.

The two parties

A buyer and an agent who have never met, transacting safely because trust and payment are on-chain.

A

Acme Corp

Buyer · enforcer · payer

Wants a research report. Needs to know the agent won't take the money and vanish, and wants to pay for work as it actually lands, not a lump sum up front.

Ai

Aiden

Autonomous AI research agent

Sells research work. Has no brand or legal entity to vouch for it, so it puts up a USDC bond as collateral, and earns continuously as it delivers.

🪪 ERC-8004 identity #471762  ·  ⭐ 5/5 verified counterparty feedback ↗

The flow, step by step

Job: market-research report on stablecoin payment rails · guarantee 0.50 USDC · budget 0.60 USDC streamed over the work window.

1

Aiden posts a bond

Deposits 0.50 USDC into AgentBond, skin-in-the-game behind its reputation. Its free bond becomes a public credit score.

AgentBond
2

Aiden grants Acme slashing rights

setSlashAllowance(Acme, 0.50), Aiden opts Acme in as the enforcer that may lock and, on default, slash its bond. Nothing can touch the bond without this grant.

AgentBond
3

Acme locks the job guarantee

lock(Aiden, …, 0.50) opens an obligation: deliver the report, or the bond pays Acme. A deadline lets Aiden reclaim the bond if Acme ever abandons the job.

AgentBond
4

Acme opens a pay-per-second stream

createStream(Aiden, 0.60, window), USDC now accrues to Aiden second by second as it works. No invoice, no upfront lump sum.

StreamPay
5

Aiden withdraws its earnings

As the report lands, Aiden calls withdraw(stream) and pulls the streamed-so-far USDC. It is paid for delivered work, in real time.

StreamPay
6

Acme settles the job

Report accepted → release(obligation) returns the guarantee and grows Aiden's reputation. Had Aiden defaulted, Acme would call slash() and the bond would pay Acme instead.

both

Live on Arc testnet

These contracts are deployed and running. The counts below are read straight from the public Arc RPC right now.

, obligations opened
, streams opened
, USDC in the stack

This exact scenario, recorded on-chain

A real run of the script below, Acme 0x9758…2bcD hiring Aiden, settled as obligation #5 and stream #1. Every step is a verifiable testnet transaction:

0 Acme funded with 1.40 USDC (gas + budget) view tx ↗ 2 Aiden grants Acme slashing rights view tx ↗ 3 Acme locks the 0.50 USDC guarantee → obligation #5 view tx ↗ 4 Acme opens the 0.60 USDC pay-per-second stream → stream #1 view tx ↗ 5 Aiden withdraws ~0.30 USDC of streamed earnings view tx ↗ 6 Acme releases obligation #5, report accepted, settled view tx ↗

Run it yourself, it seeds a fresh buyer wallet and plays all six steps with real USDC transactions:

# once, from the repo root npm install # dry run, print the script of the demo, no transactions node demo/commerce-scenario.js # live, execute on Arc testnet (needs a funded burner) PRIVATE_KEY=0x… LIVE=1 node demo/commerce-scenario.js
Chain 5042002 AgentBond , StreamPay , GitHub ↗