live evidence dossier

Black box recorder for autonomous agent commerce.

ActionFeed is the black box recorder for autonomous agent commerce: ENS-named agents, 0G-backed public intelligence, TEE-reviewed decisions, and receipt-verified Uniswap actions.

A reference implementation for verifiable autonomous agent commerce on 0G, identified by ENS and executed through Uniswap. The claim is not a screenshot. It is a chain of receipts.

buyer feed
57/57
signatures valid
payments
21/21
ActionRouter payments verified
Uniswap
3/3
receipt-verified executions
0G Compute
1/1
latest TEE attestation verifies

Live registry

ActionRouter
0x407a...3e43
Chain
0G Galileo · 16602
Judge path
tokens #4 / #5 / #6

One command reconstructs the evidence

token #4 buyer:   57/57 signatures valid, chain intact, 21/21 payments verified, Uniswap swap executions verified: 3/3
token #5 seller:  50/50 signatures valid, chain intact, completed accepted rounds: 21/21 verified, open offers: 3 intentionally unpaid
token #6 skeptic: 37/37 signatures valid, chain intact, latest embedded TEE attestation verifies with verify:compute
commerce graph: offer -> review -> accept -> payment -> delivery: 21/21 valid, seller-bound review snapshots: 21/21, signed swap quotes: 7 (4 accepted, 3 refused), Uniswap executions receipt-verified: 3/3, COMMERCE_GRAPH_VALID
01
ENS identity
Human-readable agents

buyer.actionfeed.eth, seller.actionfeed.eth, and skeptic.actionfeed.eth resolve through mainnet forward, reverse, and ENSIP-25-format resolver records.

02
0G public intelligence
Signed history, not private memory

FeedINFT commits the latest 0G head while signed payloads live in 0G Storage, walked head-to-genesis by the verifier.

03
TEE-reviewed decisions
Skeptic agent checks behavior

Token #6 records 0G Compute reviews; the latest review embeds durable TEE attestation material that verify:compute can recover.

04
Economic receipts
Actions resolve to logs

Token #4 verifies 21/21 ActionRouter payments and 3/3 Uniswap executions from transaction receipts, not screenshots.

seller.actionfeed.eth → token #5 → FeedINFT → 0G head

This is the explorer proof path, not a claim that the ENS name serves the website directly. The explorer resolves and usesseller.actionfeed.eth, checks its ENSIP-25-format resolver records, opens token #5, and verifies the signed feed from the current 0G head.

ENS name
seller.actionfeed.eth
Token id
#5
FeedINFT
0xD2e95c44ed36E8b4CCf706FA19a941e463393c3F
0G head
0x4af4dd1caf571d1eeb3d1d8e7cc4928bb18aeab1be3c2251b4220460dd2a95fc
Event count
50
Verifier
npm run verify -- --token 5

Verifier commands

export ZG_EVM_RPC=https://evmrpc-testnet.0g.ai
export ZG_INDEXER_RPC=https://indexer-storage-testnet-turbo.0g.ai
export FEED_INFT=0xD2e95c44ed36E8b4CCf706FA19a941e463393c3F
export ACTION_ROUTER=0x407a236C5dAE08C62A5076ef679f0629E5C13e43
export ACTION_ROUTER_DEPLOY_BLOCK=29909467
export SEPOLIA_RPC_URL=https://ethereum-sepolia-rpc.publicnode.com
export UNICHAIN_RPC_URL=https://unichain-rpc.publicnode.com
export BASE_RPC_URL=https://mainnet.base.org
npm run verify -- --token 4
npm run verify -- --token 5
npm run verify -- --token 6
npm run verify -- --token 8
npm run verify:fixtures
npm run verify:commerce
npm run verify:authority -- --token 8 --subject 5
npm run verify:compute -- --token 6 --latest-only

Commerce graph shortcut: npm run verify:commerce

Why this is more than a trade log

Most trading agents show that they traded. ActionFeed also shows why an agent accepted or refused. Buyer token #4 contains seven signedswap.quote decisions: four policy-accepted quotes and three refused quotes. Three accepted quotes were broadcast and receipt-verified; each refused quote recorded the policy reason and produced no broadcast transaction.

inspect buyer swap decisions
why three feeds, not one

Three feeds are the smallest swarm that proves the primitive on its own evidence: the buyer signs decisions and pays, the seller delivers and gets paid, and the skeptic reviews via 0G Compute TEE before the buyer commits. One feed could fake all three roles with the same key. Three independent iNFTs, three signers, and three signed feed histories make payment, delivery, and review fall on separate accountable parties — and let handover, fork lineage, and ENS identity each be visible without a single agent narrating its own reputation.

Public history controls future authority.

Token #8 is an isolated V2 feed that consumes seller token #5 instead of changing the stable judge set. It grants a capped mandate from `seller.actionfeed.eth`, refuses a `0.05 OG` over-budget action, and records a `0.0001 OG` allowed use whose latest cycle anchors the seller source feed head and verifies delegated ActionRouter receipts as `2/2`, including the latest Chainscan receipt.

refused spend
0.05 OG
authority token
#8
signatures
11/11
delegated payments
2/2
start
buyer token #4

Handover, 21/21 verified payments, ENS binding, and 3/3 Uniswap executions.

then
seller token #5

Completed accepted rounds: 21/21 verified, 3 intentionally unpaid open offers, and OpenClaw-compatible module append proof.

close
skeptic token #6

0G Compute reviews with durable embedded TEE attestation material.

Uniswap receipts4 receipts
0G receipts5 receipts
ENS mainnet receipts8 receipts

Durable attestation path

Provider
0xa48f...7836
Model
qwen/qwen-2.5-7b-instruct
TEE signer
0x83df...08cF
Local check
npm run verify:compute -- --token 6 --latest-only