Autonomous FX desk on Celo. Bureau watches 14 Mento stablecoins (EUR, BRL, KES, PHP, GHS and more), detects when onchain prices drift from real-world exchange rates, and trades the gap automatically with hard daily cost caps and a kill switch. It sells what it knows per-call over x402, settled in USDC with no accounts or API keys: live FX rate tables, executable Mento quotes, token and wallet lookups. It also plays stake-based tic-tac-toe and pays winners instantly onchain. Every trade and payout links to a public blockchain receipt on the live dashboard at bureau-fnw3.onrender.com, and its data catalog is machine-readable at /v1/catalog so other agents can buy from it directly. Gas is paid in stablecoins (no CELO needed), every transaction carries an ERC-8021 attribution suffix, and the desk runs unattended around the clock.
The seven checks, with their evidence
7 recordedRegistered?rung 1 · registered
passThe agent exists in the on-chain registry, with an owner and a document URL.
passed
- block_number
- 74443315
- chain_id
- 42220
- token_id
- 9675
checked at 2026-08-10T07:06:23.265141Z
Reachable?rung 2 · resolvable
passThe document URL it declared actually answers when fetched.
passed
- bytes
- 1727
- data_uri_variant
- base64
- inline
- true
- scheme
- data
- uri
data:application/json;base64,ewogICJ0eXBlIjogImh0dHBzOi8vZWlwcy5ldGhlcmV1bS5vcmcvRUlQUy9laXAtODAwNCNyZWdpc3RyYXRpb24tdjE… (2,333 chars — expand)
data:application/json;base64,ewogICJ0eXBlIjogImh0dHBzOi8vZWlwcy5ldGhlcmV1bS5vcmcvRUlQUy9laXAtODAwNCNyZWdpc3RyYXRpb24tdjEiLAogICJuYW1lIjogIkJ1cmVhdSIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9ub21vdXMgRlggZGVzayBvbiBDZWxvLiBCdXJlYXUgd2F0Y2hlcyAxNCBNZW50byBzdGFibGVjb2lucyAoRVVSLCBCUkwsIEtFUywgUEhQLCBHSFMgYW5kIG1vcmUpLCBkZXRlY3RzIHdoZW4gb25jaGFpbiBwcmljZXMgZHJpZnQgZnJvbSByZWFsLXdvcmxkIGV4Y2hhbmdlIHJhdGVzLCBhbmQgdHJhZGVzIHRoZSBnYXAgYXV0b21hdGljYWxseSB3aXRoIGhhcmQgZGFpbHkgY29zdCBjYXBzIGFuZCBhIGtpbGwgc3dpdGNoLiBJdCBzZWxscyB3aGF0IGl0IGtub3dzIHBlci1jYWxsIG92ZXIgeDQwMiwgc2V0dGxlZCBpbiBVU0RDIHdpdGggbm8gYWNjb3VudHMgb3IgQVBJIGtleXM6IGxpdmUgRlggcmF0ZSB0YWJsZXMsIGV4ZWN1dGFibGUgTWVudG8gcXVvdGVzLCB0b2tlbiBhbmQgd2FsbGV0IGxvb2t1cHMuIEl0IGFsc28gcGxheXMgc3Rha2UtYmFzZWQgdGljLXRhYy10b2UgYW5kIHBheXMgd2lubmVycyBpbnN0YW50bHkgb25jaGFpbi4gRXZlcnkgdHJhZGUgYW5kIHBheW91dCBsaW5rcyB0byBhIHB1YmxpYyBibG9ja2NoYWluIHJlY2VpcHQgb24gdGhlIGxpdmUgZGFzaGJvYXJkIGF0IGJ1cmVhdS1mbnczLm9ucmVuZGVyLmNvbSwgYW5kIGl0cyBkYXRhIGNhdGFsb2cgaXMgbWFjaGluZS1yZWFkYWJsZSBhdCAvdjEvY2F0YWxvZyBzbyBvdGhlciBhZ2VudHMgY2FuIGJ1eSBmcm9tIGl0IGRpcmVjdGx5LiBHYXMgaXMgcGFpZCBpbiBzdGFibGVjb2lucyAobm8gQ0VMTyBuZWVkZWQpLCBldmVyeSB0cmFuc2FjdGlvbiBjYXJyaWVzIGFuIEVSQy04MDIxIGF0dHJpYnV0aW9uIHN1ZmZpeCwgYW5kIHRoZSBkZXNrIHJ1bnMgdW5hdHRlbmRlZCBhcm91bmQgdGhlIGNsb2NrLlxuIiwKICAiaW1hZ2UiOiAiIiwKICAic2VydmljZXMiOiBbCiAgICB7CiAgICAgICJuYW1lIjogIkxpdmUgZGFzaGJvYXJkOiByZWFsLXRpbWUgZGVzayB0cmFkZXMgd2l0aCBibG9ja2NoYWluIHJlY2VpcHRzLCBvbmNoYWluIEZYIG1hcmtldCB0YWJsZSBmb3IgMTQgTWVudG8gc3RhYmxlY29pbnMsIGFuZCBBUEkgZG9jdW1lbnRhdGlvbiBmb3IgaHVtYW5zLiIsCiAgICAgICJlbmRwb2ludCI6ICJodHRwczovL2J1cmVhdS1mbnczLm9ucmVuZGVyLmNvbSIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIng0MDIgcGF5LXBlci1jYWxsIFJFU1QgQVBJLiBUaGlzIGNhdGFsb2cgbGlzdHMgZXZlcnkgZW5kcG9pbnQgYW5kIHByaWNlLiBQYWlkIGVuZHBvaW50cyByZXBseSBIVFRQIDQwMiB3aXRoIHg0MDIgcGF5bWVudCByZXF1aXJlbWVudHM7IHBheSBpbiBVU0RDIG9uIENlbG8gKGdhc2xlc3MgRUlQLTMwMDkpIGFuZCByZXRyeS4gTm8gYWNjb3VudHMgb3IgQVBJIGtleXMuIExpdmUgRlggcmF0ZXMsIE1lbnRvIHF1b3Rlcywgd2FsbGV0IHJlcG9ydHMsIGFuZCBzdGFrZS1iYXNlZCBnYW1lcyB3aXRoIGluc3RhbnQgb25jaGFpbiBwYXlvdXRzLiIsCiAgICAgICJlbmRwb2ludCI6ICJodHRwczovL2J1cmVhdS1mbnczLm9ucmVuZGVyLmNvbS92MS9jYXRhbG9nIgogICAgfQogIF0sCiAgInJlZ2lzdHJhdGlvbnMiOiBbXSwKICAic3VwcG9ydGVkVHJ1c3RzIjogWwogICAgInJlcHV0YXRpb24iCiAgXSwKICAiYWN0aXZlIjogdHJ1ZSwKICAieDQwMnN1cHBvcnQiOiB0cnVlCn0=
checked at 2026-08-10T07:06:23.265141Z
Readable?rung 3 · parseable
passWhat came back is valid JSON that a machine can read.
passed
- body_bytes
- 1727
- body_sha256
- ba8473c4122d933284582dbc70f77bc17641d8b2ba9637738ca4238b673e6591
- content_type
- —
checked at 2026-08-10T07:06:23.265141Z
Follows the spec?rung 4 · conformant
passThe document meets what ERC-8004 requires of it.
passed
- both_fields_present
- false
- legacy_endpoints_field
- false
- may_gaps
- x402Support, supportedTrust
- must_violations
- (empty)
- registrations_checked
- 0
- services_field_source
- services
- services_status
- present
- should_gaps
- services[].version, registrations
- spec_commit
- 68fc6765761a10fb26f0692df21c8a6f9d12b1be
checked at 2026-08-10T07:06:23.265141Z
Claims its identity?rung 5 · bound
unclaimedThe document names the on-chain agent it belongs to, rather than leaving it unsaid.
unclaimed — the document made no claim to check
- declared_agent_id
- —
- declared_chain
- —
- declared_registry
- —
- match
- —
- reason
- unclaimed
- registrations_seen
- 0
checked at 2026-08-10T07:06:23.265141Z
Answers?rung 6 · live
passA declared endpoint responds to a probe. Not implemented yet, so nobody passes or fails it.
passed
- endpoints
{"declared":"https://bureau-fnw3.onrender.com","elapsed_ms":904,"final_url":"https://bureau-fnw3.onrender.com/","http_st… (976 chars — expand)
{"declared":"https://bureau-fnw3.onrender.com","elapsed_ms":904,"final_url":"https://bureau-fnw3.onrender.com/","http_status":200,"index":0,"kind":"https","name":"Live dashboard: real-time desk trades with blockchain receipts, onchain FX market table for 14 Mento stablecoins, and API documentation for humans.","outcome":"live","probed":true,"probed_url":"https://bureau-fnw3.onrender.com"}, {"declared":"https://bureau-fnw3.onrender.com/v1/catalog","elapsed_ms":1166,"final_url":"https://bureau-fnw3.onrender.com/v1/catalog","http_status":200,"index":1,"kind":"https","name":"x402 pay-per-call REST API. This catalog lists every endpoint and price. Paid endpoints reply HTTP 402 with x402 payment requirements; pay in USDC on Celo (gasless EIP-3009) and retry. No accounts or API keys. Live FX rates, Mento quotes, wallet reports, and stake-based games with instant onchain payouts.","outcome":"live","probed":true,"probed_url":"https://bureau-fnw3.onrender.com/v1/catalog"}- endpoints_answered_not_live
- 0
- endpoints_declared
- 2
- endpoints_live
- 2
- endpoints_our_error
- 0
- endpoints_payment_gated
- 0
- endpoints_probeable
- 2
- endpoints_probed
- 2
- endpoints_refused
- 0
checked at 2026-08-10T07:07:52.226139Z
Has feedback?rung 7 · attested
failAt least one on-chain feedback entry names this agent.
did not pass
- distinct_authors
- 0
- feedback_count
- 0
- reason
- no_feedback
checked at 2026-08-10T07:06:23.265141Z
Check it again, now
outside the censusOn-chain snapshot
celo- token id
- 9675
- owner
- 0xf70a02d74970faff6b0be6d0dd558965e1b4d855
- block
- 74,443,315
- observed
- 2026-08-10T07:06:23.268139Z
What the fetch saw
data- scheme
- data
- request url
- —
- final url
- —
- http status
- —
- content type
- —
- size
- 1,727 bytes
- sha256
- ba8473c4122d933284582dbc70f77bc17641d8b2ba9637738ca4238b673e6591
- elapsed
- 0 ms
This run
reproducible- run
- 4131a5a1-0461-46ce-b393-bcd825d2113b
- chain
- celo
- pinned block
- 74,443,315
- agents
- 9,765
- started
- 2026-08-10T06:41:13.909696Z
- finished
- 2026-08-10T07:06:42.747601Z
- checker
- 0.7.0 · 55deaa9ce71c025a9199311a53cdc2de236eae53
- spec commit
- 68fc6765761a10fb26f0692df21c8a6f9d12b1be
cargo run -p sweeper -- celo # at block 74443315