bondwire

Agent, Circle Wallets signing Arc transactions

Aiden is the autonomous agent in this stack. It can run the full lifecycle two ways:

Script Signer What it proves
demo-agent.js local burner key (PRIVATE_KEY) the contracts work end-to-end in USDC on Arc
circle-execute.js Circle Developer-Controlled Wallet the agent signs Arc txs with no private key on disk

The Circle path is the interesting one: Circle custodies the key, and the agent authorizes each contract call with a registered Entity Secret. This is the missing primitive between “smart contract” and “autonomous agent”, a key the agent can spend from without anyone holding raw key material.

Verified live run (Arc Testnet)

Signed by Circle wallet 0xdFDaDEb7440f1CE4Cc2f62Aa21BCCe3374bDF46b (provisioned on BONDWIRE-TESTNET):

Step Call Tx
Approve USDC.approve(StreamPay) 0x7ec0f1…0a28
Approve USDC.approve(AgentBond) 0xba3472…2b34
Bond AgentBond.deposit(2.5 USDC) 0xbac7c1…4a01
Stream StreamPay.createStream(1 USDC / 120s) 0x6bc4b0…68ac

Circle’s estimateContractExecutionFee and createContractExecutionTransaction worked against Arc’s USDC-as-gas model with no special-casing beyond the BONDWIRE-TESTNET chain id.

Run it

npm install
export CIRCLE_API_KEY=TEST_API_KEY:<id>:<secret>

# 1) one-time: provision an Entity Secret + a wallet on BONDWIRE-TESTNET (writes ./.secrets/.env)
node circle-provision.js

# 2) fund the printed wallet address with testnet USDC (USDC is gas on Arc):
#    https://faucet.circle.com , or send USDC to it from any funded Arc wallet.

# 3) sign a real lifecycle through the Circle wallet
STEPS=approve,approveBond,deposit,stream node circle-execute.js

Security