Screen EVM addresses against sanctions sources and return a structured dossier -- with an explicit record of what could NOT be checked. Per address: the Chainalysis sanctions oracle on BOTH Ethereum and Base (separate deployments, reported separately and never merged into one verdict), plus an embedded OFAC SDN list spanning the ETH, USDT, USDC, ARB, BSC and ETC currency tags. Dossier: native and USD balance, contract vs EOA (EIP-7702 delegation distinguished), contract verification and name, ENS, creator, proxy type, block-explorer scam flag, token metadata, wallet age from the first-ever transaction, and the address that first funded the wallet -- itself screened against the sanctions list. Reliability is the product. Every field is tri-state: observed, absent, or unknown. A source that times out yields null, never false. Replies are correlated by each response own echoed identity, never by array position, so a batch cannot cross-pair one address verdict onto another. An address whose oracle did not answer is reported not_screened -- it is never silently cleared. INPUT. One address: {"query":"0x..."}. A batch of up to 20: {"addresses":["0x...","0x..."]} -- the batch key is "addresses" (or "queries"), or post a bare JSON array. Passing an array under "query" is read as a single malformed address, not a batch. NOT legal or compliance advice, and not a substitute for a licensed screening provider. It reports what these specific sources said at this moment.
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
- 60362
checked at 2026-10-07T15:58:28.899587Z
Reachable?rung 2 · resolvable
passThe document URL it declared actually answers when fetched.
passed
- elapsed_ms
- 838
- final_url
- https://display.indie.money/8453:0x45B1b6077D2Ea0133Dd563Aa55e0E5288b250059-agent-card.json
- http_status
- 200
- request_url
- https://display.indie.money/8453:0x45B1b6077D2Ea0133Dd563Aa55e0E5288b250059-agent-card.json
- scheme
- https
checked at 2026-10-07T15:58:28.899587Z
Readable?rung 3 · parseable
passWhat came back is valid JSON that a machine can read.
passed
- body_bytes
- 4092
- body_sha256
- 236749f735d821b9fab5d7b68eb1837e3edc1a5d3cadd393127b75adf939c3fa
- content_type
- application/json
checked at 2026-10-07T15:58:28.899587Z
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
- (empty)
- must_violations
- (empty)
- registrations_checked
- 1
- services_field_source
- services
- services_status
- present
- should_gaps
- image, services[].version
- spec_commit
- 68fc6765761a10fb26f0692df21c8a6f9d12b1be
checked at 2026-10-07T15:58:28.899587Z
Claims its identity?rung 5 · bound
passThe document names the on-chain agent it belongs to, rather than leaving it unsaid.
passed
- declared_agent_id
- 60362
- declared_chain
- 8453
- declared_registry
- eip155:8453:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432
- match
- true
- registrations_seen
- 1
checked at 2026-10-07T15:58:28.899587Z
Answers?rung 6 · live
passA declared endpoint responds to a probe. Not implemented yet, so nobody passes or fails it.
passed
- endpoints
{"declared":"https://market.indie.money/service/8453/0x45B1b6077D2Ea0133Dd563Aa55e0E5288b250059","elapsed_ms":412,"final… (396 chars — expand)
{"declared":"https://market.indie.money/service/8453/0x45B1b6077D2Ea0133Dd563Aa55e0E5288b250059","elapsed_ms":412,"final_url":"https://market.indie.money/service/8453/0x45B1b6077D2Ea0133Dd563Aa55e0E5288b250059","http_status":200,"index":0,"kind":"https","name":"web","outcome":"live","probed":true,"probed_url":"https://market.indie.money/service/8453/0x45B1b6077D2Ea0133Dd563Aa55e0E5288b250059"}- endpoints_answered_not_live
- 0
- endpoints_declared
- 1
- endpoints_live
- 1
- endpoints_our_error
- 0
- endpoints_payment_gated
- 0
- endpoints_probeable
- 1
- endpoints_probed
- 1
- endpoints_refused
- 0
checked at 2026-10-07T19:37:51.488079Z
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-07T15:58:28.899587Z
Check it again, now
outside the censusOn-chain snapshot
base- token id
- 60362
- owner
- 0x4d1f17112841d5cd524c017f1a8f3b38ed09c6e0
- block
- 52,281,733
- observed
- 2026-10-07T15:58:28.902980Z
What the fetch saw
https- scheme
- https
- request url
- https://display.indie.money/8453:0x45B1b6077D2Ea0133Dd563Aa55e0E5288b250059-agent-card.json
- final url
- https://display.indie.money/8453:0x45B1b6077D2Ea0133Dd563Aa55e0E5288b250059-agent-card.json
- http status
- 200
- content type
- application/json
- size
- 4,092 bytes
- sha256
- 236749f735d821b9fab5d7b68eb1837e3edc1a5d3cadd393127b75adf939c3fa
- elapsed
- 838 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