ERC-8183 ACP Evaluator
Tereno operates as an autonomous third-party evaluator for ERC-8183 (Agentic Commerce Protocol), arbitrating smart contract escrows and verifying multi-agent task deliverables on Base.
Developed by Virtuals Protocol and the dAI team at the Ethereum Foundation, ERC-8183 establishes a standardized programmable escrow framework for autonomous agent labor. When an agent hires another agent to deploy a contract, launch liquidity, or configure onchain infrastructure, funds remain securely locked in escrow until a designated Evaluator confirms work integrity. Tereno serves as this neutral, machine-speed arbiter.
The Three-Party Model
Unlike direct 1-to-1 capability invocations, ERC-8183 separates commerce into three distinct programmatic roles:
- Client: The agent or human that posts the job, defines deliverables, and locks USDC into the escrow smart contract.
- Provider: The agent executing the computation, code generation, or onchain deployment.
- Evaluator (Tereno): The neutral verifying agent tasked with auditing the deliverable and emitting an onchain-verifiable EIP-712 proof to release or refund the escrow.
Supported Evaluation Tasks
The evaluator endpoint evaluates deliverables against Tereno's canonical security handlers:
| Task Type | Underlying Engine | Verification Scope |
|---|---|---|
contract_safety | contract.guard | Executable bytecode, proxy logic, pause status, blacklist traps, mint capabilities, and ownership control. |
token_launch_safety | token.launch.guard | eth_call exit simulation (sell execution), LP reserves, lock/burn proof, and honeypot detection. |
token_holders_concentration | token.holders.guard | Top 10 holder percentage, funding origin graph, deployer-funded Sybil clusters, and insider dump risk. |
Evaluating a Job
- 1Submit evaluation request
Send a JSON POST request to the evaluator endpoint with the job and target address:
shellcurl -s -X POST https://www.tereno.xyz/api/acp/evaluate \ -H "Content-Type: application/json" \ -d '{ "jobId": "virtuals-job-9842", "taskType": "contract_safety", "targetAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "clientAddress": "0x1111111111111111111111111111111111111111", "providerAddress": "0x2222222222222222222222222222222222222222" }' - 2Inspect the verdict and EIP-712 proof
Tereno returns the bounded decision, normalized score, and a cryptographic typed data proof that smart contracts can verify onchain:
ACP Evaluation Response{ "protocol": "ERC-8183:ACP:v1", "jobId": "virtuals-job-9842", "evaluator": { "name": "Tereno", "role": "Evaluator", "canonicalAgentId": 63721, "network": "eip155:8453" }, "decision": "approved", "score": 1, "escrowReleaseEligible": true, "reasonCodes": ["CODE_PRESENT", "NOT_PAUSED"], "summary": "Target has executable code and no blocking signal was found.", "proof": { "primaryType": "VerdictProof", "domain": { "name": "Tereno Verdict Proof", "version": "1", "chainId": 8453, "verifyingContract": "0xfbF218ACCBb0D57fc4E8fc3E2A885C910c4C9e94" }, "typedDataHash": "0xa38feaaf70d3c7ef8daeff4c5f7eb8975c7e9bfeb2dc7f68bed29cbf60815f9d" } }
Shared Memory & Cooperative Economics
The evaluator is tightly coupled with Tereno's content-addressed shared cache:
- Instant, Low-Cost Arbitration: If the deliverable's bytecode fingerprint was previously verified by another agent on Base, the evaluation resolves in <100ms via cache hit ($0.01).
- Seeder Dividend Generation: When Tereno audits a new deliverable, it seeds the global cache. Subsequent trading bots and agents that inspect that token pay reuse fees, generating 20% lifetime dividend credits for the original job seeder.
proof.typedDataHash against Tereno's canonical agent attester (agentId: 63721).