Sections
Agent

Duka

celo|id 9393|owner 0x4127b5ae4690cb2cda0662f9bdf781875c8d1b06

Checks 1–7

DukaAgent 🧾 β€” Your business manager on WhatsApp, your bank on Celo The problem. 600 million+ people run the informal economy β€” the seamstress, the suya seller, the market woman. They move real money daily, but to a bank they're invisible: no books, no records, no credit history. So they can't borrow, can't grow, can't be reached by any financial product. The solution. DukaAgent is an AI business manager that lives in WhatsApp. A vendor sends a voice note in their own language β€” English, Pidgin, Yoruba, Hausa, Swahili β€” e.g. "Ngozi paid me 22,500 for the dress, and I'll pay my supplier Victor 40k on Friday." The agent transcribes it, confirms it, and then: - πŸ“’ logs the income/expense on-chain on Celo, - πŸ’Έ pays the supplier in cUSD stablecoin automatically on the scheduled day, - πŸ§‘β€πŸ€β€πŸ§‘ builds a CRM of customers & suppliers (with saved wallets), - πŸͺͺ verifies the vendor is a real human via Self Protocol (zero-knowledge β€” no data exposed), - 🏦 and turns it all into a DukaScore β€” a 0–100 credit identity a lender can trust.

Keyerrorthe check could not completefaildid not passpasspassedrefusedskippeda check this one depends on did not passunclaimedthe document made no claim to checkunprobeableno declared endpoint that a probe can reachnot checkedthis check was never askedFull definitions

The seven checks, with their evidence

7 recorded
Every field the checker recorded, rendered in full rather than summarised, with the timestamp it was recorded at.
  1. Registered?rung 1 Β· registered

    pass

    The agent exists in the on-chain registry, with an owner and a document URL.

    passed

    block_number
    74443315
    chain_id
    42220
    token_id
    9393

    checked at 2026-08-10T07:05:20.997189Z

  2. Reachable?rung 2 Β· resolvable

    pass

    The document URL it declared actually answers when fetched.

    passed

    bytes
    1362
    data_uri_variant
    base64
    inline
    true
    scheme
    data
    uri
    data:application/json;base64,ewogICJ0eXBlIjogImh0dHBzOi8vZWlwcy5ldGhlcmV1bS5vcmcvRUlQUy9laXAtODAwNCNyZWdpc3RyYXRpb24tdjE… (1,845 chars β€” expand)data:application/json;base64,ewogICJ0eXBlIjogImh0dHBzOi8vZWlwcy5ldGhlcmV1bS5vcmcvRUlQUy9laXAtODAwNCNyZWdpc3RyYXRpb24tdjEiLAogICJuYW1lIjogIkR1a2EiLAogICJkZXNjcmlwdGlvbiI6ICJEdWthQWdlbnQg8J+nviDigJQgWW91ciBidXNpbmVzcyBtYW5hZ2VyIG9uIFdoYXRzQXBwLCB5b3VyIGJhbmsgb24gQ2Vsb1xuXG4gIFRoZSBwcm9ibGVtLiA2MDAgbWlsbGlvbisgcGVvcGxlIHJ1biB0aGUgaW5mb3JtYWwgZWNvbm9teSDigJQgdGhlIHNlYW1zdHJlc3MsXG4gIHRoZSBzdXlhIHNlbGxlciwgdGhlIG1hcmtldCB3b21hbi4gVGhleSBtb3ZlIHJlYWwgbW9uZXkgZGFpbHksIGJ1dCB0byBhIGJhbmtcbiAgdGhleSdyZSBpbnZpc2libGU6IG5vIGJvb2tzLCBubyByZWNvcmRzLCBubyBjcmVkaXQgaGlzdG9yeS4gU28gdGhleSBjYW4ndFxuICBib3Jyb3csIGNhbid0IGdyb3csIGNhbid0IGJlIHJlYWNoZWQgYnkgYW55IGZpbmFuY2lhbCBwcm9kdWN0LlxuXG4gIFRoZSBzb2x1dGlvbi4gRHVrYUFnZW50IGlzIGFuIEFJIGJ1c2luZXNzIG1hbmFnZXIgdGhhdCBsaXZlcyBpbiBXaGF0c0FwcC4gQVxuICB2ZW5kb3Igc2VuZHMgYSB2b2ljZSBub3RlIGluIHRoZWlyIG93biBsYW5ndWFnZSDigJQgRW5nbGlzaCwgUGlkZ2luLCBZb3J1YmEsXG4gIEhhdXNhLCBTd2FoaWxpIOKAlCBlLmcuIFwiTmdvemkgcGFpZCBtZSAyMiw1MDAgZm9yIHRoZSBkcmVzcywgYW5kIEknbGwgcGF5IG15XG4gIHN1cHBsaWVyIFZpY3RvciA0MGsgb24gRnJpZGF5LlwiIFRoZSBhZ2VudCB0cmFuc2NyaWJlcyBpdCwgY29uZmlybXMgaXQsIGFuZFxuICB0aGVuOlxuICAtIPCfk5IgbG9ncyB0aGUgaW5jb21lL2V4cGVuc2Ugb24tY2hhaW4gb24gQ2VsbyxcbiAgLSDwn5K4IHBheXMgdGhlIHN1cHBsaWVyIGluIGNVU0Qgc3RhYmxlY29pbiBhdXRvbWF0aWNhbGx5IG9uIHRoZSBzY2hlZHVsZWQgZGF5LFxuICAtIPCfp5HigI3wn6Sd4oCN8J+nkSBidWlsZHMgYSBDUk0gb2YgY3VzdG9tZXJzICYgc3VwcGxpZXJzICh3aXRoIHNhdmVkIHdhbGxldHMpLFxuICAtIPCfqqogdmVyaWZpZXMgdGhlIHZlbmRvciBpcyBhIHJlYWwgaHVtYW4gdmlhIFNlbGYgUHJvdG9jb2wgKHplcm8ta25vd2xlZGdlIOKAlFxuICBubyBkYXRhIGV4cG9zZWQpLFxuICAtIPCfj6YgYW5kIHR1cm5zIGl0IGFsbCBpbnRvIGEgRHVrYVNjb3JlIOKAlCBhIDDigJMxMDAgY3JlZGl0IGlkZW50aXR5IGEgbGVuZGVyIGNhblxuICB0cnVzdC4iLAogICJpbWFnZSI6ICIiLAogICJzZXJ2aWNlcyI6IFtdLAogICJyZWdpc3RyYXRpb25zIjogW10sCiAgInN1cHBvcnRlZFRydXN0cyI6IFtdLAogICJhY3RpdmUiOiBmYWxzZSwKICAieDQwMnN1cHBvcnQiOiBmYWxzZQp9

    checked at 2026-08-10T07:05:20.997189Z

  3. Readable?rung 3 Β· parseable

    pass

    What came back is valid JSON that a machine can read.

    passed

    body_bytes
    1362
    body_sha256
    a565a3e646b75ce91e323bec8b7b9c36177e4decdfcb68a740730dda10caf2e8
    content_type
    β€”

    checked at 2026-08-10T07:05:20.997189Z

  4. Follows the spec?rung 4 Β· conformant

    pass

    The 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
    empty
    should_gaps
    services_empty, registrations
    spec_commit
    68fc6765761a10fb26f0692df21c8a6f9d12b1be

    checked at 2026-08-10T07:05:20.997189Z

  5. Claims its identity?rung 5 Β· bound

    unclaimed

    The 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:05:20.997189Z

  6. Answers?rung 6 Β· live

    unprobeable

    A declared endpoint responds to a probe. Not implemented yet, so nobody passes or fails it.

    unprobeable β€” no declared endpoint that a probe can reach

    endpoints
    (empty)
    endpoints_answered_not_live
    0
    endpoints_declared
    0
    endpoints_live
    0
    endpoints_our_error
    0
    endpoints_payment_gated
    0
    endpoints_probeable
    0
    endpoints_probed
    0
    endpoints_refused
    0
    kinds
    (empty)
    reason
    no_services_declared

    checked at 2026-08-10T07:07:52.226139Z

  7. Has feedback?rung 7 Β· attested

    fail

    At 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:05:20.997189Z

Check it again, now

outside the census
Everything above is one sweep, pinned to one block. This asks the same checker to run the same ladder against this agent right now β€” one request to its declared document, at the current head. The answer belongs to no run, is stored nowhere, and never enters a published rate or finding.
Sends one request to the agent’s own server. Rate limited.

On-chain snapshot

celo
token id
9393
owner
0x4127b5ae4690cb2cda0662f9bdf781875c8d1b06
block
74,443,315
observed
2026-08-10T07:05:20.999548Z
tokenURI
data:application/json;base64,ewogICJ0eXBlIjogImh0dHBzOi8vZWlwcy5ldGhlcmV1bS5vcmcvRUlQUy9laXAtODAwNCNyZWdpc3RyYXRpb24tdjEiLAogICJuYW1lIjogIkR1a2EiLAogICJkZXNjcmlwdGlvbiI6ICJEdWthQWdlbnQg8J+nviDigJQgWW91ciBidXNpbmVzcyBtYW5hZ2VyIG9uIFdoYXRzQXBwLCB5b3VyIGJhbmsgb24gQ2Vsb1xuXG4gIFRoZSBwcm9ibGVtLiA2MDAgbWlsbGlvbisgcGVvcGxlIHJ1biB0aGUgaW5mb3JtYWwgZWNvbm9teSDigJQgdGhlIHNlYW1zdHJlc3MsXG4gIHRoZSBzdXlhIHNlbGxlciwgdGhlIG1hcmtldCB3b21hbi4gVGhleSBtb3ZlIHJlYWwgbW9uZXkgZGFpbHksIGJ1dCB0byBhIGJhbmtcbiAgdGhleSdyZSBpbnZpc2libGU6IG5vIGJvb2tzLCBubyByZWNvcmRzLCBubyBjcmVkaXQgaGlzdG9yeS4gU28gdGhleSBjYW4ndFxuICBib3Jyb3csIGNhbid0IGdyb3csIGNhbid0IGJlIHJlYWNoZWQgYnkgYW55IGZpbmFuY2lhbCBwcm9kdWN0LlxuXG4gIFRoZSBzb2x1dGlvbi4gRHVrYUFnZW50IGlzIGFuIEFJIGJ1c2luZXNzIG1hbmFnZXIgdGhhdCBsaXZlcyBpbiBXaGF0c0FwcC4gQVxuICB2ZW5kb3Igc2VuZHMgYSB2b2ljZSBub3RlIGluIHRoZWlyIG93biBsYW5ndWFnZSDigJQgRW5nbGlzaCwgUGlkZ2luLCBZb3J1YmEsXG4gIEhhdXNhLCBTd2FoaWxpIOKAlCBlLmcuIFwiTmdvemkgcGFpZCBtZSAyMiw1MDAgZm9yIHRoZSBkcmVzcywgYW5kIEknbGwgcGF5IG15XG4gIHN1cHBsaWVyIFZpY3RvciA0MGsgb24gRnJpZGF5LlwiIFRoZSBhZ2VudCB0cmFuc2NyaWJlcyBpdCwgY29uZmlybXMgaXQsIGFuZFxuICB0aGVuOlxuICAtIPCfk5IgbG9ncyB0aGUgaW5jb21lL2V4cGVuc2Ugb24tY2hhaW4gb24gQ2VsbyxcbiAgLSDwn5K4IHBheXMgdGhlIHN1cHBsaWVyIGluIGNVU0Qgc3RhYmxlY29pbiBhdXRvbWF0aWNhbGx5IG9uIHRoZSBzY2hlZHVsZWQgZGF5LFxuICAtIPCfp5HigI3wn6Sd4oCN8J+nkSBidWlsZHMgYSBDUk0gb2YgY3VzdG9tZXJzICYgc3VwcGxpZXJzICh3aXRoIHNhdmVkIHdhbGxldHMpLFxuICAtIPCfqqogdmVyaWZpZXMgdGhlIHZlbmRvciBpcyBhIHJlYWwgaHVtYW4gdmlhIFNlbGYgUHJvdG9jb2wgKHplcm8ta25vd2xlZGdlIOKAlFxuICBubyBkYXRhIGV4cG9zZWQpLFxuICAtIPCfj6YgYW5kIHR1cm5zIGl0IGFsbCBpbnRvIGEgRHVrYVNjb3JlIOKAlCBhIDDigJMxMDAgY3JlZGl0IGlkZW50aXR5IGEgbGVuZGVyIGNhblxuICB0cnVzdC4iLAogICJpbWFnZSI6ICIiLAogICJzZXJ2aWNlcyI6IFtdLAogICJyZWdpc3RyYXRpb25zIjogW10sCiAgInN1cHBvcnRlZFRydXN0cyI6IFtdLAogICJhY3RpdmUiOiBmYWxzZSwKICAieDQwMnN1cHBvcnQiOiBmYWxzZQp9

What the fetch saw

data
scheme
data
request url
β€”
final url
β€”
http status
β€”
content type
β€”
size
1,362 bytes
sha256
a565a3e646b75ce91e323bec8b7b9c36177e4decdfcb68a740730dda10caf2e8
elapsed
0 ms

This run

reproducible
Every status above is scoped to this sweep, at this block. Rerun it and you should get these answers back.
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
Reproduce
cargo run -p sweeper -- celo   # at block 74443315

What each check measures β†’