Api Endpoint

Obol

Up to 10 heuristic public-chain cluster assignments for an exact Ethereum address with bounded output

Open interactive test console

Offering

Provider
obol.danieldutoit.net
Method
GET
Offering type
Api Endpoint
Transport type
http
Category
Blockchain And Crypto
Delivery
Not provided
Pricing model
Not provided
x402 version
2

Endpoint context

URL
https://obol.danieldutoit.net/v1/ethereum/address-cluster?address=0x00000000000062c6e2195ae26dff3b084c5c3938
MIME type
Not provided
First seen
2026-10-16T03:25:59.412Z
Last seen
Tags
blockchain-data, Ethereum, clustering, address-intelligence, X402, a2a

Payment pricing

x402 payment terms are the authoritative price for calling this endpoint.

Payment option 1
0.003 USDC
Atomic price: 3000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Raw x402 terms
[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "3000",
    "payTo": "0x4094383033C1861E2686eaC4d4BBae6F0031F5d2"
  }
]

Observed health

Status
Healthy
Latest latency
775 ms
Average latency
1209 ms
HTTP status
402
Last checked
Reachability
100% over 13 checks

Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.

Input schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "const": "http"
    },
    "method": {
      "type": "string",
      "enum": [
        "GET"
      ]
    },
    "queryParams": {
      "type": "object",
      "properties": {
        "address": {
          "type": "string",
          "pattern": "^0x[0-9a-fA-F]{40}$",
          "minLength": 42,
          "maxLength": 42
        }
      },
      "required": [
        "address"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "type",
    "method"
  ],
  "additionalProperties": false
}

Output schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string"
    },
    "example": {
      "type": "object",
      "properties": {
        "network": {
          "type": "string",
          "const": "ethereum"
        },
        "address": {
          "type": "string",
          "pattern": "^0x[0-9a-f]{40}$",
          "minLength": 42,
          "maxLength": 42
        },
        "clustered": {
          "type": "boolean"
        },
        "assignments": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "run_id": {
                "type": "string",
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,49}$",
                "minLength": 1,
                "maxLength": 50
              },
              "cluster_id": {
                "type": "string",
                "pattern": "^(?:0|[1-9][0-9]{0,17}|[1-8][0-9]{18}|9[01][0-9]{17}|92[01][0-9]{16}|922[0-2][0-9]{15}|9223[0-2][0-9]{14}|92233[0-6][0-9]{13}|922337[01][0-9]{12}|92233720[0-2][0-9]{10}|922337203[0-5][0-9]{9}|9223372036[0-7][0-9]{8}|92233720368[0-4][0-9]{7}|922337203685[0-3][0-9]{6}|9223372036854[0-6][0-9]{5}|92233720368547[0-6][0-9]{4}|922337203685477[0-4][0-9]{3}|9223372036854775[0-7][0-9]{2}|922337203685477580[0-7])$",
                "maxLength": 19
              }
            },
            "required": [
              "run_id",
              "cluster_id"
            ],
            "additionalProperties": false
          },
          "maxItems": 10
        },
        "coverage": {
          "type": "object",
          "properties": {
            "match_type": {
              "type": "string",
              "const": "exact_address"
            },
            "maximum_results": {
              "type": "integer",
              "const": 10
            }
          },
          "required": [
            "match_type",
            "maximum_results"
          ],
          "additionalProperties": false
        },
        "disclaimer": {
          "type": "string",
          "const": "Heuristic clustering is not proof of ownership or identity."
        }
      },
      "required": [
        "network",
        "address",
        "clustered",
        "assignments",
        "coverage",
        "disclaimer"
      ],
      "additionalProperties": false,
      "allOf": [
        {
          "if": {
            "properties": {
              "clustered": {
                "const": true
              }
            }
          },
          "then": {
            "properties": {
              "assignments": {
                "type": "array",
                "minItems": 1
              }
            }
          },
          "else": {
            "properties": {
              "assignments": {
                "type": "array",
                "maxItems": 0
              }
            }
          }
        }
      ]
    }
  },
  "required": [
    "type"
  ]
}