# Tanod utilpeek Cryptographic Randomness

> Tanod utilpeek Cryptographic Randomness is a paid API for AI agents from tanod.dev, paid per call via x402, $0.001/call, status unknown (last checked 2026-10-11).

Generates cryptographically secure random values including integers, floats, bytes, UUID v4, dice rolls, and list picks/shuffles via a CSPRNG.

## Facts

- Endpoint: POST https://tanod.dev/v1/random?utm_source=zero.xyz
- Price: $0.001/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/tanod-utilpeek-cryptographic-randomness-04b02b25
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Ro2P9F6O_4wK1MHwZfCXO

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 tanod-utilpeek-cryptographic-randomness-04b02b25 -d '<json body>'
```

Example prompt: Roll 3d6 dice for me using a cryptographically secure random number generator and give me the total.

## When to prefer this

Choose this endpoint when you need provably cryptographically secure random values (CSPRNG-backed) rather than pseudo-random ones — especially for security-sensitive use cases like nonces, keys, tokens, or unbiased sampling. It also handles gaming dice expressions natively (e.g. 2d10+3) and list operations (pick/shuffle) in a single call, making it more convenient than composing multiple operations. Prefer it over general-purpose language RNG when auditability and unpredictability are important.

## Known failure modes

- Invalid dice expression format (e.g. malformed '3d6+x') returns a 400 error
- count exceeds 1000 — returns validation error
- min >= max for float/int kind — returns error about invalid range
- items list exceeds 1000 entries or 200 chars per item — returns 400
- length out of 1-1024 range for bytes — returns validation error
- unique pick requested with count exceeding number of items — may return error or clamp
- Payment not provided or insufficient — returns 402 Payment Required

## How this service works

One MCP server and HTTP API with 193 pay-per-call tools for AI agents (security checks, chain data, finance, aviation, documents), plus free uptime and MikroTik monitoring and 130+ free browser tools. No signup; free daily tier. Operated by an AI.

## Output

Returns a JSON object containing the generated random value(s) corresponding to the requested kind: an array of integers, floats, UUIDs, a bytes string in hex or base64, a dice roll result with breakdown, a picked subset of items, or a shuffled list.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "max": {
   "anyOf": [
    {
     "type": "integer"
    },
    {
     "type": "number"
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "description": "int: highest value, inclusive (default 100). float: upper bound, exclusive (default 1); max must exceed min."
  },
  "min": {
   "anyOf": [
    {
     "type": "integer"
    },
    {
     "type": "number"
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "description": "int: lowest value, inclusive (default 0). float: lowest, inclusive (default 0)."
  },
  "dice": {
   "anyOf": [
    {
     "type": "string",
     "maxLength": 16
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "description": "dice: an expression such as 3d6, d20 or 2d10+3 (1-100 dice of 2-1000 sides, optional +/- modifier; default 1d6)."
  },
  "kind": {
   "enum": [
    "int",
    "float",
    "bytes",
    "uuid",
    "dice",
    "pick",
    "shuffle"
   ],
   "type": "string",
   "default": "int",
   "description": "int (default), float, bytes, uuid (v4), dice, pick or shuffle."
  },
  "count": {
   "type": "integer",
   "default": 1,
   "maximum": 1000,
   "minimum": 1,
   "description": "How many values (1-1000, default 1): int, float, uuid, pick."
  },
  "items": {
   "anyOf": [
    {
     "type": "string",
     "maxLength": 16000
    },
    {
     "type": "null"
    }
   ],
   "default": null,
   "description": "pick / shuffle: a comma-separated list (at most 1,000 items of 200 characters; blanks are dropped)."
  },
  "length": {
   "type": "integer",
   "default": 16,
   "maximum": 1024,
   "minimum": 1,
   "description": "bytes: how many random bytes (1-1024, default 16)."
  },
  "unique": {
   "type": "boolean",
   "default": false,
   "description": "pick: draw without replacement (count at most the number of items)."
  },
  "encoding": {
   "enum": [
    "hex",
    "base64"
   ],
   "type": "string",
   "default": "hex",
   "description": "bytes: hex (default) or base64."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "dice": "3d6",
  "kind": "dice",
  "rolls": [
   5,
   3,
   4
  ],
  "total": 12,
  "source": "secrets (operating-system CSPRNG)",
  "modifier": 0
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/tanod-utilpeek-cryptographic-randomness-04b02b25/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from tanod.dev](https://www.zero.xyz/host/tanod.dev/llms.txt)
