Obol
Up to 10 heuristic public-chain cluster assignments for an exact Ethereum address with bounded output
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"
]
}