Recurring stablecoin payments on Celo, bound by a mandate the payer signs on-chain. An agent can be paid by a schedule, ask to be paid, pay for services in USDC, USD₮ or USA₮ over x402, or commit its own wallet to paying on a schedule. Nothing can redirect, resize or extend a payment once signed — the contract enforces it, not the operator.
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
- 79282391
- chain_id
- 42220
- token_id
- 9867
checked at 2026-10-05T07:24:47.090822Z
Reachable?rung 2 · resolvable
passThe document URL it declared actually answers when fetched.
passed
- bytes
- 2204
- data_uri_variant
- base64
- inline
- true
- scheme
- data
- uri
data:application/json;base64,eyJ0eXBlIjoiaHR0cHM6Ly9laXBzLmV0aGVyZXVtLm9yZy9FSVBTL2VpcC04MDA0I3JlZ2lzdHJhdGlvbi12MSIsIm5… (2,969 chars — expand)
data:application/json;base64,eyJ0eXBlIjoiaHR0cHM6Ly9laXBzLmV0aGVyZXVtLm9yZy9FSVBTL2VpcC04MDA0I3JlZ2lzdHJhdGlvbi12MSIsIm5hbWUiOiJSZW1lc3NvIiwiZGVzY3JpcHRpb24iOiJSZWN1cnJpbmcgc3RhYmxlY29pbiBwYXltZW50cyBvbiBDZWxvLCBib3VuZCBieSBhIG1hbmRhdGUgdGhlIHBheWVyIHNpZ25zIG9uLWNoYWluLiBBbiBhZ2VudCBjYW4gYmUgcGFpZCBieSBhIHNjaGVkdWxlLCBhc2sgdG8gYmUgcGFpZCwgcGF5IGZvciBzZXJ2aWNlcyBpbiBVU0RDLCBVU0Tigq4gb3IgVVNB4oKuIG92ZXIgeDQwMiwgb3IgY29tbWl0IGl0cyBvd24gd2FsbGV0IHRvIHBheWluZyBvbiBhIHNjaGVkdWxlLiBOb3RoaW5nIGNhbiByZWRpcmVjdCwgcmVzaXplIG9yIGV4dGVuZCBhIHBheW1lbnQgb25jZSBzaWduZWQg4oCUIHRoZSBjb250cmFjdCBlbmZvcmNlcyBpdCwgbm90IHRoZSBvcGVyYXRvci4iLCJzZXJ2aWNlcyI6W3sibmFtZSI6ImNhcGFiaWxpdGllcyIsImVuZHBvaW50IjoiaHR0cHM6Ly9lbmdhYm9samlxdWRnaHZ6bWVicS5zdXBhYmFzZS5jby9mdW5jdGlvbnMvdjEvYWdlbnQiLCJkZXNjcmlwdGlvbiI6IldoYXQgdGhpcyBhZ2VudCBkb2VzLCB3aGF0IGl0IGNvc3RzLCBhbmQgd2hhdCBpdCByZWZ1c2VzLiBGcmVlLiJ9LHsibmFtZSI6InJlcXVlc3QtcGF5bWVudCIsImVuZHBvaW50IjoiaHR0cHM6Ly9lbmdhYm9samlxdWRnaHZ6bWVicS5zdXBhYmFzZS5jby9mdW5jdGlvbnMvdjEvcmVxdWVzdC1wYXltZW50IiwiZGVzY3JpcHRpb24iOiJBc2sgc29tZW9uZSB0byBwYXkgeW91IG9uIGEgc2NoZWR1bGUuIEZyZWUuIEFkdmlzb3J5OiBpdCBwcmVmaWxscyB0aGVpciBmb3JtIGFuZCBkZWNpZGVzIG5vdGhpbmcuIn0seyJuYW1lIjoibmFpcmEtcmF0ZSIsImVuZHBvaW50IjoiaHR0cHM6Ly9lbmdhYm9samlxdWRnaHZ6bWVicS5zdXBhYmFzZS5jby9mdW5jdGlvbnMvdjEvcmF0ZS1zZXJ2aWNlIiwiZGVzY3JpcHRpb24iOiJMaXZlIFVTRFQvTkdOIGFuZCBVU0RDL05HTiBmcm9tIG9uLWNoYWluIFJGUSBtYWtlcnMuIDAuMDAxIHZpYSB4NDAyLiJ9LHsibmFtZSI6InRyaWdnZXItcnVuIiwiZW5kcG9pbnQiOiJodHRwczovL2VuZ2Fib2xqaXF1ZGdodnptZWJxLnN1cGFiYXNlLmNvL2Z1bmN0aW9ucy92MS90cmlnZ2VyLXJ1biIsImRlc2NyaXB0aW9uIjoiQnJpbmcgb25lIHBheW1lbnQgb2YgYW4gZXhpc3Rpbmcgc2NoZWR1bGUgZm9yd2FyZC4gMC4wMSB2aWEgeDQwMi4gVGhlIGNhbGxlciBidXlzIHRpbWluZyBhbmQgbm90aGluZyBlbHNlLiJ9XSwicGF5bWVudCI6eyJwcm90b2NvbCI6Ing0MDIiLCJ2ZXJzaW9uIjoyLCJuZXR3b3JrIjoiZWlwMTU1OjQyMjIwIiwiYXNzZXRzIjpbeyJzeW1ib2wiOiJVU0RDIiwiYWRkcmVzcyI6IjB4Y2ViQTkzMDBmMmI5NDg3MTBkMjY1M2REN0IwN2YzM0E4QjMyMTE4QyJ9LHsic3ltYm9sIjoiVVNEVCIsImFkZHJlc3MiOiIweDQ4MDY1ZmJCRTI1ZjcxQzkyODJkZGY1ZTFjRDZENkE4ODc0ODNENWUifSx7InN5bWJvbCI6IlVTQVQiLCJhZGRyZXNzIjoiMHhEMmFiM0M5QTAyREJCQUIyMzZCZkVDNDVEMWQ3NTVERjQyNjdGNzcxIn1dLCJub3RlIjoiVGFrZSB0aGUgRUlQLTcxMiBkb21haW4gZnJvbSB0aGUgNDAyJ3MgZXh0cmE7IG1hdGNoIGFzc2V0cyBieSBhZGRyZXNzLCBub3Qgc3ltYm9sLiJ9LCJjb250cmFjdHMiOlt7Im5hbWUiOiJSZW1lc3NvRXhlY3V0b3JWNCIsImFkZHJlc3MiOiIweDI4OGI3Y0REMTBlMDY5ZUE2NEQ0OTg0YzNFNWZhMEQ5YzU4MTYwMDkiLCJjaGFpbklkIjo0MjIyMCwicm9sZSI6ImVuZm9yY2VzIGV2ZXJ5IG1hbmRhdGU7IHRoZSBhdXRob3JpdHkgb24gd2hhdCBtYXkgbW92ZSJ9XSwiaWRlbnRpdHkiOnsic2VsZkFnZW50SWQiOjE5MSwicmVnaXN0cnkiOiIweGFDM0RGOUFCZjgwZDBGNWMwMjBDMDZCMDRDY2VkMjc3NjMzNTU5NDQiLCJwcm9vZiI6InNlbGYtYWdlbnQtaWQiLCJub3RlIjoiU291bGJvdW5kIHRvIGEgaHVtYW4gdmVyaWZpZWQgYnkgemVyby1rbm93bGVkZ2UgcGFzc3BvcnQgcHJvb2YuIn0sInN1cHBvcnRlZFRydXN0IjpbInJlcHV0YXRpb24iXSwic2tpbGwiOiJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vY3JhY2tlZHN0dWRpby9SZW1lc3NvL21haW4vc2tpbGxzL3JlbWVzc28vU0tJTEwubWQiLCJzb3VyY2UiOiJodHRwczovL2dpdGh1Yi5jb20vY3JhY2tlZHN0dWRpby9SZW1lc3NvIn0=
checked at 2026-10-05T07:24:47.090822Z
Readable?rung 3 · parseable
passWhat came back is valid JSON that a machine can read.
passed
- body_bytes
- 2204
- body_sha256
- 62c959f3bc35fcacf928a60faf63b76513a5759ba50a734f465f0a15a3831af7
- content_type
- —
checked at 2026-10-05T07:24:47.090822Z
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, active
- must_violations
- (empty)
- registrations_checked
- 0
- services_field_source
- services
- services_status
- present
- should_gaps
- image, services[].version, registrations
- spec_commit
- 68fc6765761a10fb26f0692df21c8a6f9d12b1be
checked at 2026-10-05T07:24:47.090822Z
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-10-05T07:24:47.090822Z
Answers?rung 6 · live
passA declared endpoint responds to a probe. Not implemented yet, so nobody passes or fails it.
passed
- endpoints
{"declared":"https://engaboljiqudghvzmebq.supabase.co/functions/v1/agent","elapsed_ms":997,"final_url":"https://engabolj… (1,424 chars — expand)
{"declared":"https://engaboljiqudghvzmebq.supabase.co/functions/v1/agent","elapsed_ms":997,"final_url":"https://engaboljiqudghvzmebq.supabase.co/functions/v1/agent","http_status":200,"index":0,"kind":"https","name":"capabilities","outcome":"live","probed":true,"probed_url":"https://engaboljiqudghvzmebq.supabase.co/functions/v1/agent"}, {"declared":"https://engaboljiqudghvzmebq.supabase.co/functions/v1/request-payment","elapsed_ms":903,"final_url":"https://engaboljiqudghvzmebq.supabase.co/functions/v1/request-payment","http_status":200,"index":1,"kind":"https","name":"request-payment","outcome":"live","probed":true,"probed_url":"https://engaboljiqudghvzmebq.supabase.co/functions/v1/request-payment"}, {"declared":"https://engaboljiqudghvzmebq.supabase.co/functions/v1/rate-service","elapsed_ms":576,"final_url":"https://engaboljiqudghvzmebq.supabase.co/functions/v1/rate-service","http_status":200,"index":2,"kind":"https","name":"naira-rate","outcome":"live","probed":true,"probed_url":"https://engaboljiqudghvzmebq.supabase.co/functions/v1/rate-service"}, {"declared":"https://engaboljiqudghvzmebq.supabase.co/functions/v1/trigger-run","elapsed_ms":1135,"final_url":"https://engaboljiqudghvzmebq.supabase.co/functions/v1/trigger-run","http_status":405,"index":3,"kind":"https","name":"trigger-run","outcome":"not_live","probed":true,"probed_url":"https://engaboljiqudghvzmebq.supabase.co/functions/v1/trigger-run"}- endpoints_answered_not_live
- 1
- endpoints_declared
- 4
- endpoints_live
- 3
- endpoints_our_error
- 0
- endpoints_payment_gated
- 0
- endpoints_probeable
- 4
- endpoints_probed
- 4
- endpoints_refused
- 0
checked at 2026-10-05T07:31:54.600744Z
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-10-05T07:24:47.090822Z
Check it again, now
outside the censusOn-chain snapshot
celo- token id
- 9867
- owner
- 0xcdea4cc4191ec9a5d8fd1a6b17e3f4c84e993ae2
- block
- 79,282,391
- observed
- 2026-10-05T07:24:47.094395Z
What the fetch saw
data- scheme
- data
- request url
- —
- final url
- —
- http status
- —
- content type
- —
- size
- 2,204 bytes
- sha256
- 62c959f3bc35fcacf928a60faf63b76513a5759ba50a734f465f0a15a3831af7
- elapsed
- 0 ms
This run
reproducible- run
- 51518bd2-6305-4b27-a769-cf957aba00f4
- chain
- celo
- pinned block
- 79,282,391
- agents
- 9,878
- started
- 2026-10-05T06:52:29.184815Z
- finished
- 2026-10-05T07:30:46.088420Z
- checker
- 0.7.0 · 10238dd9af44dfa032e6578390569a413a6bb393
- spec commit
- 68fc6765761a10fb26f0692df21c8a6f9d12b1be
cargo run -p sweeper -- celo # at block 79282391