ToolAssay

The filtered ERC-8004 directory

The filtered ERC-8004 directory: which registered agents are actually alive, and which accept x402. Around a third of registrations on Base carry both a compliant registration file and a declared service, and roughly one in twelve of those declares x402 — this returns them, rather than making you screen eighty thousand addresses one at a time to find them. GET /v1/registry publishes the current split, free. 100 agents per page. Free alternative: GET /v1/registry. Or 3 free calls of this endpoint per wallet per 24h: https://trust-agent.io/v1/trial.

Not tested: has real-world effectsour last check, 2026-09-24
0 of 0checks answered this week
n/amedian answer time
$0.010001listed price per call
n/aprice it asked us

Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.

Endpoint

GET https://trust-agent.io/v1/registry/agents

CategoryCompany and compliance
Provider hosttrust-agent.io
Networkseip155:8453
Payment schemesexact
Self-reported calls, 30 days3 from 3 payers (the provider's figure, not ours)

Our checks, last 30 days

We never call tools that send, buy, move money or file anything, not even without paying.

Example input (from the provider)

{
  "method": "GET",
  "queryParams": {
    "acceptsX402": "true",
    "quality": "valid_with_service"
  },
  "type": "http"
}

Promised output schema (from the provider)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "method": {
          "enum": [
            "GET"
          ],
          "type": "string"
        },
        "queryParams": {
          "properties": {
            "acceptsX402": {
              "description": "OPTIONAL. true to return only agents whose registration file declares x402.",
              "type": "string"
            },
            "chain": {
              "description": "OPTIONAL. Only \"base\" is served. Defaults to base.",
              "type": "string"
            },
            "cursor": {
              "description": "OPTIONAL. nextCursor from the previous page. Omit for the first page.",
              "type": "string"
            },
            "quality": {
              "description": "OPTIONAL. valid_with_service | valid_no_service | non_compliant | uri_unresolvable | no_uri.",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": {
          "const": "http",
          "type": "string"
        }
      },
      "required": [
        "type",
        "method"
      ],
      "type": "object"
    },
    "output": {
      "properties": {
        "example": {
          "properties": {
            "agents": {
              "description": "array of {agentId, identifier, quality, acceptsX402, payoutWallet, checkedAt, owner, registeredAt}"
            },
            "count": {
              "description": "agents on this page"
            },
            "degraded": {
              "description": "true when the census cannot currently refresh classifications \u2014 the page may omit live agents and include stale ones"
            },
            "nextCursor": {
              "description": "pass back as `cursor` for the next page; null when the registry is exhausted"
            }
          },
          "type": "object"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    }
  },
  "required": [
    "input"
  ],
  "type": "object"
}

This page as JSON