mirrored listing x402 eip155:8453animica:1

Random bytes from the Animica node's randomness service with a signed digest attestation a

Random bytes from the Animica node's randomness service with a signed digest attestation and an entropy-health report, 1..1024 bytes per draw. Current trust model, stated up front and in every response: the entropy source is a software CSPRNG (os.urandom) and the signer is a software key, so source.is_quantum=false and attestation.attested=false today; those fields flip truthfully if a hardware/quantum provider is ever connected. The free catalog entry carries the same live entropy block, so you can check the source before paying.

Do you run animica.dev? This listing was mirrored from Coinbase's public Bazaar. Claim it in 30 seconds — no account required — and it becomes verified, permanently overriding the mirrored copy.

Claim this listing
1786 (raw units)
price
19
calls / 30d
11
unique payers
2026-09-15
updated

Provider

animica.dev · discovered, not yet claimed by its owner

Payment (x402 accepts[])

[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "payTo": "0x5D17c40FD6b119dc6006C4Ab3C20a917FCaB2aCD",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "1786",
    "maxTimeoutSeconds": 60
  },
  {
    "scheme": "exact",
    "network": "animica:1",
    "payTo": "anim1zqpsmegc0qcvzjfukm89xs0zeu3eqyyyel7kelehuszvwfarqypky2gr946ga",
    "asset": "ANM",
    "amount": "31583913197",
    "maxTimeoutSeconds": 60
  }
]

Output schema

{
  "animica": {
    "catalog": "https://animica.dev/.well-known/x402",
    "content_type": "application/json",
    "currency": "USDC",
    "description": "Random bytes from the Animica node's randomness service with a signed digest attestation and an entropy-health report, 1..1024 bytes per draw. Current trust model, stated up front and in every response: the entropy source is a software CSPRNG (os.urandom) and the signer is a software key, so source.is_quantum=false and attestation.attested=false today; those fields flip truthfully if a hardware/quantum provider is ever connected. The free catalog entry carries the same live entropy block, so you can check the source before paying.",
    "documentation": "https://animica.dev/x402#product-qrng",
    "free_trial": {
      "endpoint": "GET /x402/qrng/draw/trial",
      "limit_per_day": 3,
      "note": "Same code and same response shape as the paid endpoint. No payment, no payment headers. Quota is per client per UTC day; when it is spent this endpoint says so and points back here.",
      "price": "0",
      "url": "https://animica.dev/x402/qrng/draw/trial"
    },
    "name": "Signed random bytes",
    "openapi": "https://animica.dev/x402/openapi.json",
    "price": "0.001786",
    "product": "qrng",
    "provider": "Animica",
    "terms": {
      "amount_atomic": "1786",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "chain_id": 8453,
      "network": "eip155:8453",
      "pay_to": "0x5D17c40FD6b119dc6006C4Ab3C20a917FCaB2aCD",
      "scheme": "exact"
    },
    "x402_version": 2
  },
  "bazaar": {
    "discoverable": true,
    "info": {
      "input": {
        "method": "GET",
        "queryParams": {
          "bytes": 32
        },
        "type": "http"
      },
      "output": {
        "example": {
          "attestation": {
            "alg": "ed25519",
            "attested": false,
            "backend": "software",
            "digest_hex": "ae7686343e9459d0ddaabb3b80cbdb9d28599eec501ffefe4736b60355f8bf29",
            "public_key_hex": "8a2228f4bde8f72964a7ff4aa759f24932ae1cccd9462ad94ca6e508d6b87a64",
            "signature_hex": "cb219cdb424f395b664076ee57cae6a1245544b53306d35860de4a689ff410dc79d27ffbcfaa927268db47da2c155e06bf0eaf2d838083f81ad1450c1a7cb904"
          },
          "bytes": 32,
          "encoding": "hex",
          "health": {
            "min_entropy_per_byte": 7.8106,
            "passed": true
          },
          "product": "qrng",
          "randomness": "6950d0ba85a3c0a03b193a50e998c6c6b16b53447d0e0ccb68e2a5722ac526ea",
          "source": {
            "attested": false,
            "device_path": null,
            "is_hardware": false,
            "is_quantum": false,
            "model": "os.urandom CSPRNG",
            "name": "software-fallback",
            "notes": "non-attested fallback for testing/degraded mode",
            "vendor": "os"
          },
          "verification": {
            "attested": false,
            "method": "signed-digest-attestation",
            "rules": [
              "attestation.digest_hex == sha3_256(bytes(randomness))",
              "ed25519_verify(pubkey=attestation.public_key_hex, message=raw_bytes(attestation.digest_hex), signature=attestation.signature_hex)"
            ],
            "trust_model": "signed by the serving node, not client-recomputable: you trust the node's entropy source, then verify it signed exactly these bytes. Check health.passed and attestation.attested before relying on it.",
            "verifier": "randomness/beacon_api/static/verify.js in the animica repo (gitlab.com/Animica) — dependency-free Node module exporting sha3_256; pair with any ed25519 verifier"
          }
        },
        "type": "json"
      }
    },
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "input": {
          "properties": {
            "method": {
              "enum": [
                "GET"
              ],
              "type": "string"
            },
            "queryParams": {
              "properties": {
                "bytes": {
                  "description": "number of random bytes, 1..1024 (default 32); alias: n",
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "type": {
              "const": "http",
              "type": "string"
            }
          },
          "required": [
            "type",
            "method"
          ],
          "type": "object"
        },
        "output": {
          "properties": {
            "example": {},
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type"
          ],
          "type": "object"
        }
      },
      "required": [
        "input"
      ],
      "type": "object"
    }
  },
  "discovery": {
    "discoverable": true,
    "info": {
      "entropy": {
        "attested": false,
        "health_passed": true,
        "is_hardware": false,
        "is_quantum": false,
        "min_entropy_per_byte": 7.8002,
        "model": "os.urandom CSPRNG",
        "note": "observed on the gateway's own readiness draw, published unpaid so the trust model is knowable before purchase; the same fields ride verbatim on every paid response",
        "observed_at": "2026-09-15T07:21:36.262Z",
        "signer_backend": "software",
        "source": "software-fallback",
        "vendor": "os"
      },
      "input": {
        "alternateMethods": [
          {
            "bodyFields": {
              "bytes": {
                "description": "number of random bytes, 1..1024 (default 32); alias: n",
                "required": false,
                "type": "integer"
              }
            },
            "bodyType": "json",
            "method": "POST",
            "note": "query parameters also work on POST; supplying both with different values is a 400 rather than a silent winner",
            "path": "/x402/qrng"
          }
        ],
        "method": "GET",
        "queryParams": {
          "bytes": {
            "description": "number of random bytes, 1..1024 (default 32); alias: n",
            "type": "integer"
          }
        },
        "type": "http"
      },
      "output": {
        "description": "randomness (hex), bytes, source, health {passed, min_entropy_per_byte}, attestation {alg, public_key_hex, digest_hex, signature_hex, attested}, verification rules, payment metadata",
        "type": "json"
      }
    }
  }
}

Use it

curl

curl "https://animica.dev/x402/qrng/draw"
# -> 402 Payment Required, accepts[] lists how to pay
# retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid

JavaScript

const res = await fetch("https://animica.dev/x402/qrng/draw");
if (res.status === 402) {
  const { accepts } = await res.json();
  // pay one of accepts[] via an x402 client, then retry with the payment header
}

Python

import httpx
res = httpx.get("https://animica.dev/x402/qrng/draw")
if res.status_code == 402:
    accepts = res.json()["accepts"]
    # pay one of accepts[] via an x402 client, then retry with the payment header

Machine-readable

Everything on this page is also available as clean JSON at /resources/7496.json, and this resource appears in /discovery/resources and /discovery/search.