Verifiable Random Tools
x402 Atlas provides real-time x402 analytics for autonomous APIs on Base. Track transactions, discover trends, and analyze the x402 ecosystem.
The wallet the 402 directs payment to. Its whole payment record — every payer, every chain — is on the merchant page.
Asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
The payTo wallet does not resolve to a registered ERC-8004 agent. That is not a verdict on the service — most of the catalog is unregistered.
Accepts
The payment requirements as published to the catalog. Read the live 402 before paying — a price here is a claim, not a quote.
Pay 0.005 USDC on Base to 0x8C12…Df1b2. The signed payment is good for 5 minutes.
- Paid to
- 0x8C12…Df1b2
- USD Coin contract
- 0x8335…02913
- Payment window
- 5 minutes
- As published
- 5000 smallest units
That figure is in the token’s smallest units. Roundhouse does not hold this contract’s decimals, so it is shown as published rather than converted.
- Paid to
- 0x8C12…Df1b2
- Token contract
- 0x3c49…c3359
- Payment window
- 5 minutes
That figure is in the token’s smallest units. Roundhouse does not hold this contract’s decimals, so it is shown as published rather than converted.
- Paid to
- 0x8C12…Df1b2
- Token contract
- 0xaf88…e5831
- Payment window
- 5 minutes
The catalog’s raw entry
[
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"tier": "standard",
"version": "2",
"merchant": "x402Atlas"
},
"payTo": "0x8C128f1Ee62Bb5e47867CfbAe2ad89be325Df1b2",
"amount": "5000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
},
{
"asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
"extra": {
"name": "USD Coin",
"tier": "standard",
"version": "2",
"merchant": "x402Atlas"
},
"payTo": "0x8C128f1Ee62Bb5e47867CfbAe2ad89be325Df1b2",
"amount": "5000",
"scheme": "exact",
"network": "eip155:137",
"maxTimeoutSeconds": 300
},
{
"asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"extra": {
"name": "USD Coin",
"tier": "standard",
"version": "2",
"merchant": "x402Atlas"
},
"payTo": "0x8C128f1Ee62Bb5e47867CfbAe2ad89be325Df1b2",
"amount": "5000",
"scheme": "exact",
"network": "eip155:42161",
"maxTimeoutSeconds": 300
}
]Extensions
{
"bazaar": {
"info": {
"input": {
"body": {
"count": 2,
"items": [
"red",
"green",
"blue"
],
"client_seed": "example",
"replacement": false,
"target_round": 0,
"algorithm_version": "drand-hkdf-sha256-v1"
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"example": {
"beacon": {
"round": 1,
"scheme": "bls-unchained-g1-rfc9380",
"network": "quicknet",
"signature": "b55e7cb2d5c613ee0b2e28d6750aabbb78c39dcc96bd9d38c2c2e12198df95571de8e8e402a0cc48871c7089a2b3af4b",
"chain_hash": "52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",
"randomness": "1466a6cd24e327188770752f6134001c64d6efcc590ccc26b721611ad96f165a",
"scheduled_time": "2023-08-23T15:09:27Z"
},
"result": {
"items": [
"red",
"green"
],
"original_indices": [
0,
1
]
},
"operation": "pick",
"example_only": true,
"processed_at": "2023-08-23T15:09:27Z",
"request_hash": "bf26799b7b70582f93b7ab7e9ea1428d812387b32e3177c521ed38f09306abcc",
"target_round": 1,
"selection_mode": "example_only",
"algorithm_version": "drand-hkdf-sha256-v1"
}
}
},
"tags": [
"verifiable-random",
"random-pick",
"random-selection",
"sample",
"drand",
"fair-selection"
],
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"bodyType",
"body"
],
"properties": {
"body": {
"type": "object",
"required": [
"items",
"count"
],
"properties": {
"count": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Number of values to select."
},
"items": {
"type": "array",
"items": {
"type": "string",
"maxLength": 256
},
"maxItems": 1000,
"minItems": 1,
"description": "Candidate strings to select from, at most 131072 UTF-8 bytes combined; duplicate values are allowed and remain distinguishable by original_indices."
},
"client_seed": {
"type": "string",
"default": "",
"maxLength": 256,
"description": "Optional public domain-separation label, not secret entropy."
},
"replacement": {
"type": "boolean",
"default": false,
"description": "False selects each input position at most once; true makes independent draws and permits repeated positions."
},
"target_round": {
"type": "integer",
"default": 0,
"minimum": 0,
"description": "0 asks the server to choose the next safe unpublished round; a positive value makes a client_fixed commitment and must still be safely in the future."
},
"algorithm_version": {
"enum": [
"drand-hkdf-sha256-v1"
],
"type": "string",
"default": "drand-hkdf-sha256-v1",
"description": "Optional version guard; when supplied it must match the server's pinned derivation algorithm."
}
},
"description": "String selection request bound to a future drand round.",
"additionalProperties": false
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
}
},
"additionalProperties": false
},
"output": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string"
},
"example": {
"type": "object",
"required": [
"operation",
"algorithm_version",
"selection_mode",
"target_round",
"example_only",
"processed_at",
"request_hash",
"beacon",
"result"
],
"properties": {
"beacon": {
"type": "object",
"required": [
"network",
"chain_hash",
"scheme",
"round",
"scheduled_time",
"randomness",
"signature"
],
"properties": {
"round": {
"type": "integer",
"minimum": 1,
"description": "Exact verified Quicknet round used for this result."
},
"scheme": {
"enum": [
"bls-unchained-g1-rfc9380"
],
"type": "string",
"description": "Pinned drand signature scheme."
},
"network": {
"enum": [
"quicknet"
],
"type": "string",
"description": "Pinned drand network name."
},
"signature": {
"type": "string",
"pattern": "^[0-9a-f]{96}$",
"description": "Lowercase hexadecimal BLS signature verified against the pinned Quicknet public key."
},
"chain_hash": {
"enum": [
"52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971"
],
"type": "string",
"description": "Pinned Quicknet chain hash used to fetch and verify the round."
},
"randomness": {
"type": "string",
"pattern": "^[0-9a-f]{64}$",
"description": "Lowercase hexadecimal randomness derived from the verified signature."
},
"scheduled_time": {
"type": "string",
"format": "date-time",
"description": "Scheduled UTC publication time of the selected round."
}
},
"description": "Locally verified drand Quicknet proof used as the public randomness source.",
"additionalProperties": false
},
"result": {
"type": "object",
"required": [
"items",
"original_indices"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "string"
},
"description": "Selected strings in draw order."
},
"original_indices": {
"type": "array",
"items": {
"type": "integer"
},
"description": "For each selected value, its zero-based position in the input array."
}
},
"description": "Operation-specific result derived deterministically from the verified beacon and request hash.",
"additionalProperties": false
},
"operation": {
"enum": [
"pick"
],
"type": "string",
"description": "Random operation performed by this route."
},
"example_only": {
"type": "boolean",
"description": "True only in compiled catalog/keepalive examples; live paid results are false."
},
"processed_at": {
"type": "string",
"format": "date-time",
"description": "UTC time when the service accepted the request and committed to the round-selection decision."
},
"request_hash": {
"type": "string",
"pattern": "^[0-9a-f]{64}$",
"description": "Lowercase SHA-256 of your canonical request JSON — retain the exact request body so you can re-derive the result offline."
},
"target_round": {
"type": "integer",
"minimum": 1,
"description": "Echoes the round actually selected for this result; in server_next mode this is the server-chosen round, not the 0 you sent."
},
"selection_mode": {
"enum": [
"server_next",
"client_fixed",
"example_only"
],
"type": "string",
"description": "server_next means the server chose the next safe unpublished round, so you trust its selection chronology; client_fixed means the round is the one you committed to before paying and no other round can be substituted; example_only appears only in catalog examples."
},
"algorithm_version": {
"enum": [
"drand-hkdf-sha256-v1"
],
"type": "string",
"description": "Pinned canonicalization, derivation, and sampling algorithm version required to reproduce the result."
}
},
"description": "Verifiable Random result and complete drand derivation transcript.",
"additionalProperties": false
}
}
}
}
},
"category": "utilities"
}
}Provenance
- Seen in the source catalog
- 2026-09-15 06:32Z
- Last indexed by Roundhouse
- 2026-09-24 12:10Z
- Last enriched (probe, favicon, geo)
- 2026-09-13 00:45Z
- x402 version
- 2
- Max timeout
- 300s
- Liveness probe
- HTTP 405
Hand this page to an agent
Copy the prompt and paste it into Claude, an MCP client or your own agent — it will vet this service and call it over the free read API. No key, no account.
GET api.roundhouseai.io/v0/endpoints
This endpoint's own trailing-30-day call count, as published by the upstream catalog and snapshotted daily. 30 snapshots so far. Verified volume counts only settlements with an on-chain EIP-3009 marker.
Show the promptHide the prompt
Using Roundhouse, look up the x402 service Verifiable Random Tools and tell me whether it is worth paying: what a call costs, whether the endpoint answered when last probed, and what its payment record actually shows. curl -s 'https://api.roundhouseai.io/v0/endpoints?q=Verifiable%20Random%20Tools' curl -s 'https://api.roundhouseai.io/v0/merchants/<the payTo wallet returned above>' Then call it: read the price from the live 402 at https://verifiable-random.use.x402atlas.com/pick, never from a cached figure, and pay with an x402 client. The /v0 API needs an API key (`authorization: Bearer rh_live_…`) on everything except /v0/unified* and /v0/endpoints. Mint a personal key for $0.01 at GET https://api.roundhouseai.io/v0/test/x402, or use an organization key from https://roundhouseai.io/dashboard/team. If you do not have Roundhouse tools or skills installed, read https://roundhouseai.io/skill.md first — it is the whole procedure.