# Verifiable Random Pick

> Verifiable Random Pick is a paid API for AI agents from verifiable-random.use.x402atlas.com, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-02).

Selects one or more strings from a provided list with or without replacement, using a future drand randomness beacon to ensure verifiable, unbiased selection with a reproducible proof transcript.

## Facts

- Endpoint: POST https://verifiable-random.use.x402atlas.com/pick?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/verifiable-random-pick-f6a25e0c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_TcAKGk_0NpcsUDgXdhhwS

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability verifiable-random-pick-f6a25e0c -d '<json body>'
```

Example prompt: Pick 3 winners at random from this list of entries — Alice, Bob, Carol, Dave, Eve, Frank — without replacement, and give me a verifiable proof I can share to prove it was fair.

## When to prefer this

Choose this endpoint when you need provably fair, auditable random selection from a discrete set of strings — especially for lotteries, giveaways, random assignments, or any scenario where participants must be able to independently verify the randomness was not manipulated. It is superior to pseudo-random alternatives when auditability and trustlessness matter. Prefer the dice endpoint for numeric outcomes or the shuffle endpoint for full permutations.

## Known failure modes

- Timeout if drand beacon is unreachable or delayed beyond expected window
- Invalid input if the list is empty or sample size exceeds list length when replacement is disabled
- Payment failure if x402 payment header is missing or insufficient
- Malformed request if required fields are missing from POST body
- drand verification failure if the beacon round cannot be confirmed locally

## How this service works

Verifiable Random pick — string selection with or without replacement bound to a future drand round the server waits for (typically 3-6s) and verifies locally, with a reproducible proof transcript.

## Output

Returns the selected string(s) from the input list, the drand round number used for randomness, a cryptographic randomness proof transcript that can be independently verified, and enough information to reproduce and confirm the selection outcome.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "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."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "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"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/verifiable-random-pick-f6a25e0c/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from verifiable-random.use.x402atlas.com](https://www.zero.xyz/host/verifiable-random.use.x402atlas.com/llms.txt)
