Loops House

umbral
An FX agent that shows its work: rate-gated stablecoin conversion on Celo, with a tamper-evident receipt for every trade it refused.

Agents on Open Rails Hackathon
Team
1 member- HAOwner
Harish Kotra
Overview
umbral is an FX agent that shows its work. It converts USDT into wARS and wBRL over Textile's firm-quote RFQ on Celo, but only at or above a break-even rate the operator names. When the book does not offer it, the agent refuses and writes a sha256 hash-chained receipt recording the concession it avoided: the rate it saw, the rate it needed, the size it declined to move. When the deadline arrives it settles anyway and books the concession in bps instead of hiding it. Judges see both halves of the mandate, the discipline and the admission.
Most agents in this space publish their fills. Fills are the easy half of the story, and they are also the half a judge cannot audit. Refusals are where an agent's policy actually lives, so umbral makes them a first-class artifact. umbral verify walks the chain from genesis and proves nothing was rewritten.
Every transaction carries the event attribution tag celo_a513a55229eb as an ERC-8021 suffix built at wallet-client construction, so there is no code path that can send an untagged transaction. Gas is paid in stablecoin through CIP-64 fee abstraction, which means an agent funded only in dollars never needs to hold CELO. Identity is ERC-8004, service discovery reads agent.json, and the whole audit surface is a static page that needs no backend.
Live corridors: USDT/wARS and USDT/wBRL through Textile FX v2, $1 minimum notional, 1 bps taker fee.
Run it: npm run agent -- run --target 1700 --deadline-min 30
Audit it: npm run agent -- verify