Loops House



Attessa
A check your agent runs before paying for a service

Agents on Open Rails Hackathon
Links
Team
1 member- JOOwner
joshuazekeri96
Overview
Attessa lets a buyer pay for an AI agent's answer only after proof that the seller's approved code produced it.
The problem: you pay a service for an answer, it comes back wrong, and you can't tell whether the code the seller stands behind actually ran, or something else did. Agents paying per call over x402 have the same blind spot, at machine speed.
Who it's for: developers of buyer agents that pay for services on Celo, and sellers who want to prove what their service runs.
What it does: the seller runs its service inside an AWS Nitro Enclave. The enclave generates a signing key that never leaves it and produces an attestation tying that key to the exact build it is running. The EnclaveRegistry contract on Celo checks that attestation on-chain, linked to the seller's ERC-8004 agent identity, and only accepts builds the agent's owner has approved. Each response carries a signed proof. The gateway verifies the proof before settling the x402 payment, and the buyer's SDK checks it again independently. If a check fails, the payment is not settled, and the buyer can confirm from chain state that it was not charged.
What it doesn't do: it does not prove the seller's rules are correct, only that the approved rules ran. A bad answer becomes a rules problem you can read in the source, not an operator you can't see. In this demo the gateway operator is also the seller, and the limits are published in the repo's KNOWN-LIMITS.md.
Built with: Solidity contracts (Foundry), a Rust enclave app, and a TypeScript gateway, seller host, SDK, CLI and MCP server for agents. Payments use x402 with EIP-3009 in USDC and USA₮. The first workload is a deterministic payment check on public Celo chain data.
STATUS (9 November 2026)
Live on Celo mainnet:
- Agent identity: ERC-8004 agent 10061 in the registry 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432, owned by the agent wallet 0x08eeF13fD03088aE1dB72ED84a7eed7B255CBfe1. The registration carries the attribution tag: https://celoscan.io/tx/0x58e6d1cc47c9d1a15ab5e1492dc3efe74a4cb8c28aba65a25762f43c9841ac0b
- Eleven real paid calls through buy, 0.11 USDC in total, described below.
Not live on Celo mainnet yet: the EnclaveRegistry, the seller and the proof-checked payment flow. No buyer can use Attessa on mainnet today, and it has no independent users yet.
Tested, not on mainnet: on a local copy of Celo mainnet, with a real Nitro enclave on AWS, the contracts deployed, a signer registered with a real AWS attestation, USDC and USA₮ calls were paid after the proof check, and a tampered answer was refused and not charged. That run used a stand-in for the real payment facilitator. Record: https://github.com/jesterkeri/attessa/blob/feat/mainnet-rehearsal/docs/REHEARSAL.md
BUILD WITH BUY: SERVICE AND PROOF OF PAYMENT
Service used: Chainstack's Celo JSON-RPC through buy, https://gateway.usebuy.ai/chainstack/celo. We don't control this service.
Proof of payment: eleven calls at 0.01 USDC each from the agent wallet to 0x20faAca5F980E29639A0FCC6dcA6988E18ed333B, paid with buy curl, each HTTP 200, on 2026-11-09. First, 05:27:03 UTC: https://celoscan.io/tx/0xebec214d75d2df40e8911d32737daba48f059f2882d36408d128331f37f21df0 Latest, 06:53:39 UTC: https://celoscan.io/tx/0x68f3b57a9f9d1e47bed0a460c665819e462fbca8005f98242f22b4dc9c0590a8 All eleven: https://github.com/jesterkeri/attessa/blob/feat/audit-hygiene/docs/PAID-CALL.md
What each returned: a recent block and the agent wallet's code, nonce and balance at that block. Each call's result matched a free read of the same block from Celo's public Forno endpoint.
Why Attessa needs it: each answer depends on current Celo chain data, and the enclave signs those inputs into its proof. The seller host is designed to buy these reads through buy from the agent wallet. These calls were run by hand with the same four reads. The automatic seller is not live yet, so this is hand-run proof, not ongoing use.
Funding: the wallet's USDC came from swapping 2 CELO on Uniswap: https://celoscan.io/tx/0xb3c8ac9cd8476c88e862192f5ca2d6e840c31de0380add1309e9eeb755622142