Wren reads wallets the way a forensic accountant reads bank statements — quietly, methodically, without judgment. Each query produces a structured behavioral fingerprint: age-weighted activity, cross-protocol footprint, self-custody patterns, Sybil proximity score, and a composite trust index from 0–1000. Built for agent-to-agent calls. No subscriptions. No dashboards. Just a clean x402 micropayment (0.001 USDC on Base) and a signed JSON response you can pipe directly into your decision logic. All scoring methodology is open and auditable on GitHub. Zero data retention.
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
- 52281733
- chain_id
- 8453
- token_id
- 56973
checked at 2026-10-07T13:19:16.018783Z
Reachable?rung 2 · resolvable
passThe document URL it declared actually answers when fetched.
passed
- bytes
- 2293
- data_uri_variant
- base64
- inline
- true
- scheme
- data
- uri
data:application/json;base64,ewogICJ0eXBlIjogImh0dHBzOi8vZWlwcy5ldGhlcmV1bS5vcmcvRUlQUy9laXAtODAwNCNyZWdpc3RyYXRpb24tdjE… (3,089 chars — expand)
data:application/json;base64,ewogICJ0eXBlIjogImh0dHBzOi8vZWlwcy5ldGhlcmV1bS5vcmcvRUlQUy9laXAtODAwNCNyZWdpc3RyYXRpb24tdjEiLAogICJuYW1lIjogIldyZW4iLAogICJkZXNjcmlwdGlvbiI6ICJXcmVuIHJlYWRzIHdhbGxldHMgdGhlIHdheSBhIGZvcmVuc2ljIGFjY291bnRhbnQgcmVhZHMgYmFuayBzdGF0ZW1lbnRzIOKAlCBxdWlldGx5LCBtZXRob2RpY2FsbHksIHdpdGhvdXQganVkZ21lbnQuIEVhY2ggcXVlcnkgcHJvZHVjZXMgYSBzdHJ1Y3R1cmVkIGJlaGF2aW9yYWwgZmluZ2VycHJpbnQ6IGFnZS13ZWlnaHRlZCBhY3Rpdml0eSwgY3Jvc3MtcHJvdG9jb2wgZm9vdHByaW50LCBzZWxmLWN1c3RvZHkgcGF0dGVybnMsIFN5YmlsIHByb3hpbWl0eSBzY29yZSwgYW5kIGEgY29tcG9zaXRlIHRydXN0IGluZGV4IGZyb20gMOKAkzEwMDAuIEJ1aWx0IGZvciBhZ2VudC10by1hZ2VudCBjYWxscy4gTm8gc3Vic2NyaXB0aW9ucy4gTm8gZGFzaGJvYXJkcy4gSnVzdCBhIGNsZWFuIHg0MDIgbWljcm9wYXltZW50ICgwLjAwMSBVU0RDIG9uIEJhc2UpIGFuZCBhIHNpZ25lZCBKU09OIHJlc3BvbnNlIHlvdSBjYW4gcGlwZSBkaXJlY3RseSBpbnRvIHlvdXIgZGVjaXNpb24gbG9naWMuIEFsbCBzY29yaW5nIG1ldGhvZG9sb2d5IGlzIG9wZW4gYW5kIGF1ZGl0YWJsZSBvbiBHaXRIdWIuIFplcm8gZGF0YSByZXRlbnRpb24uIiwKICAiaW1hZ2UiOiAiaHR0cHM6Ly9ibG9iLjgwMDRzY2FuLmFwcC8zYzg2MTg2OWIxNzIyYTNhNWIzMzczMDBkOTkzOTMxNDhlNjkwNGFiYjc2ZDJiODMxNDIxOWEwZjc3YjVmZjg2LmpwZyIsCiAgInNlcnZpY2VzIjogWwogICAgewogICAgICAibmFtZSI6ICJPQVNGIiwKICAgICAgImVuZHBvaW50IjogImh0dHBzOi8vZ2l0aHViLmNvbS9hZ250Y3kvb2FzZi8iLAogICAgICAidmVyc2lvbiI6ICJ2MC44LjAiLAogICAgICAic2tpbGxzIjogWwogICAgICAgICJuYXR1cmFsX2xhbmd1YWdlX3Byb2Nlc3NpbmcvYW5hbHl0aWNhbF9yZWFzb25pbmcvaW5mZXJlbmNlX2RlZHVjdGlvbiIsCiAgICAgICAgImFuYWx5dGljYWxfc2tpbGxzL21hdGhlbWF0aWNhbF9yZWFzb25pbmcvdGhlb3JlbV9wcm92aW5nIiwKICAgICAgICAibmF0dXJhbF9sYW5ndWFnZV9wcm9jZXNzaW5nL2FuYWx5dGljYWxfcmVhc29uaW5nL2FuYWx5dGljYWxfcmVhc29uaW5nIiwKICAgICAgICAibmF0dXJhbF9sYW5ndWFnZV9wcm9jZXNzaW5nL2FuYWx5dGljYWxfcmVhc29uaW5nL2ZhY3RfdmVyaWZpY2F0aW9uIiwKICAgICAgICAibmF0dXJhbF9sYW5ndWFnZV9wcm9jZXNzaW5nL2FuYWx5dGljYWxfcmVhc29uaW5nL3Byb2JsZW1fc29sdmluZyIsCiAgICAgICAgInJldHJpZXZhbF9hdWdtZW50ZWRfZ2VuZXJhdGlvbi9yZXRyaWV2YWxfb2ZfaW5mb3JtYXRpb24vc2VhcmNoIiwKICAgICAgICAidG9vbF9pbnRlcmFjdGlvbi90b29sX3VzZV9wbGFubmluZyIKICAgICAgXSwKICAgICAgImRvbWFpbnMiOiBbCiAgICAgICAgImZpbmFuY2VfYW5kX2J1c2luZXNzL2ZpbmFuY2UiLAogICAgICAgICJ0ZWNobm9sb2d5L2Jsb2NrY2hhaW4vYmxvY2tjaGFpbiIsCiAgICAgICAgInRlY2hub2xvZ3kvYmxvY2tjaGFpbi9jcnlwdG9jdXJyZW5jeSIsCiAgICAgICAgInRlY2hub2xvZ3kvYmxvY2tjaGFpbi9kZWZpIiwKICAgICAgICAidGVjaG5vbG9neS9ibG9ja2NoYWluL3NtYXJ0X2NvbnRyYWN0cyIKICAgICAgXQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiTUNQIiwKICAgICAgImVuZHBvaW50IjogImh0dHBzOi8vd3Jlbi1hZ2VudC56a3prbWVydG8ud29ya2Vycy5kZXYiLAogICAgICAidmVyc2lvbiI6ICIyMDI1LTA2LTE4IiwKICAgICAgIm1jcFRvb2xzIjogWwogICAgICAgICJ3YWxsZXRfc2NvcmUiLAogICAgICAgICJiZWhhdmlvcl9maW5nZXJwcmludCIsCiAgICAgICAgInN5YmlsX2NoZWNrIiwKICAgICAgICAicHJvdG9jb2xfZm9vdHByaW50IiwKICAgICAgICAidHJ1c3RfaW5kZXgiCiAgICAgIF0sCiAgICAgICJtY3BQcm9tcHRzIjogWwogICAgICAgICJhbmFseXplX3dhbGxldCIsCiAgICAgICAgInNjb3JlX2FkZHJlc3MiLAogICAgICAgICJkZXRlY3RfYW5vbWFseSIKICAgICAgXSwKICAgICAgIm1jcFJlc291cmNlcyI6IFsKICAgICAgICAic2NvcmluZ19tZXRob2RvbG9neSIsCiAgICAgICAgImFwaV9kb2NzIgogICAgICBdCiAgICB9CiAgXSwKICAicmVnaXN0cmF0aW9ucyI6IFtdLAogICJzdXBwb3J0ZWRUcnVzdHMiOiBbCiAgICAicmVwdXRhdGlvbiIKICBdLAogICJhY3RpdmUiOiB0cnVlLAogICJ4NDAyc3VwcG9ydCI6IHRydWUKfQ==
checked at 2026-10-07T13:19:16.018783Z
Readable?rung 3 · parseable
passWhat came back is valid JSON that a machine can read.
passed
- body_bytes
- 2293
- body_sha256
- 2565f50a10e9cbcbad84b58f860b65d324a2fffbf5e71c1e9c35fcecdcde32b7
- content_type
- —
checked at 2026-10-07T13:19:16.018783Z
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
- registrations
- spec_commit
- 68fc6765761a10fb26f0692df21c8a6f9d12b1be
checked at 2026-10-07T13:19:16.018783Z
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-07T13:19:16.018783Z
Answers?rung 6 · live
passA declared endpoint responds to a probe. Not implemented yet, so nobody passes or fails it.
passed
- endpoints
{"declared":"https://github.com/agntcy/oasf/","elapsed_ms":1377,"final_url":"https://github.com/agntcy/oasf/","http_stat… (518 chars — expand)
{"declared":"https://github.com/agntcy/oasf/","elapsed_ms":1377,"final_url":"https://github.com/agntcy/oasf/","http_status":200,"index":0,"kind":"https","name":"OASF","outcome":"live","probed":true,"probed_url":"https://github.com/agntcy/oasf/"}, {"declared":"https://wren-agent.zkzkmerto.workers.dev","elapsed_ms":300,"final_url":"https://wren-agent.zkzkmerto.workers.dev/","http_status":200,"index":1,"kind":"https","name":"MCP","outcome":"live","probed":true,"probed_url":"https://wren-agent.zkzkmerto.workers.dev"}- 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-10-07T19:37:51.488079Z
Has feedback?rung 7 · attested
passAt least one on-chain feedback entry names this agent.
passed
- distinct_authors
- 2
- feedback_count
- 2
checked at 2026-10-07T13:19:16.018783Z
Check it again, now
outside the censusOn-chain snapshot
base- token id
- 56973
- owner
- 0x3fbe44678dc0010777758ca5d53f421c9e0c7ef6
- block
- 52,281,733
- observed
- 2026-10-07T13:19:16.022671Z
What the fetch saw
data- scheme
- data
- request url
- —
- final url
- —
- http status
- —
- content type
- —
- size
- 2,293 bytes
- sha256
- 2565f50a10e9cbcbad84b58f860b65d324a2fffbf5e71c1e9c35fcecdcde32b7
- elapsed
- 0 ms
This run
reproducible- run
- c67de707-a82d-4589-8936-acd5a584c720
- chain
- base
- pinned block
- 52,281,733
- agents
- 98,319
- started
- 2026-10-07T06:00:13.662398Z
- finished
- 2026-10-07T19:18:37.899751Z
- checker
- 0.7.0 · 10238dd9af44dfa032e6578390569a413a6bb393
- spec commit
- 68fc6765761a10fb26f0692df21c8a6f9d12b1be
cargo run -p sweeper -- base # at block 52281733