Vida Oracle — Developers

vida-oracle.com · status · pricing · randomness: vida-entropic.com

Two APIs, one verification story. Vida Oracle serves signed price attestations: independent servers fetch from different upstreams, the median survives (outliers >2% off are rejected), and three servers sign the result. Vida enTropic serves verifiable randomness: commit-then-reveal draws with receipts you can recompute from the seed. Every claim below was verified against the live API before it was written here.

Quickstart — 30 seconds, no account

curl https://vida-oracle.com/attest/KAS/USD # response (abridged): { "pair": "KAS/USD", "price": 0.16423, "price_numerator": ..., # exact integer ratio — "price_denominator": ..., # no float rounding "signers": 3, # of 13 signing servers ... }

The numerator/denominator pair is the exact value; the float is a convenience. Third parties can recompute the median proof from the response.

Authentication

Paid tiers and metered usage authenticate with an API key sent in the X-API-Key header. Keys are issued automatically at purchase — no email, no waiting:

curl https://vida-oracle.com/your-endpoint \ -H "X-API-Key: your-key-here"

enTropic keys use the vp1_ prefix and are shown once at signup — store them immediately.

Buying an API key (KAS, self-serve)

# 1. create an order (~15 min payment window) curl -X POST https://vida-oracle.com/order/create \ -H "Content-Type: application/json" \ -d '{"tier":"standard"}' # -> order_id, amount_kas, receiving_address, payload_hint, expires_at # 2. pay exactly amount_sompi to receiving_address, # with payload_hint as the transaction payload # 3. poll until status != "pending" curl https://vida-oracle.com/order/status/<order_id>

Or use the checkout on the main page, which drives the same endpoints from the browser.

Endpoints — Vida Oracle

MethodPathAuthNotes
GET/attest/{pair}noneSigned attestation for any published pair (— pairs; see pairs). Free tier rate: 10 req/min.
GET/healthnoneService status: node count, mode.
GET/nodesnonePer-node health, region, latency, freshness, stake.
POST/order/createnoneBody: {"tier":"standard|premium|institutional"}. Returns KAS payment order.
GET/order/status/{id}nonePayment/settlement state for an order.

Endpoints — Vida enTropic (randomness)

MethodPathAuthNotes
POST/rng/v1/roundsAPI keyRequest a draw. Body requires a non-empty request_id (a 422 without it). Returns a full receipt: server commitment, player-seed hash, canonical envelope, recompute path.
POST/metered/api/v1/metering/registernoneBody: {"email":"..."}. Returns your vp1_ key (shown once). Free tier: 500 rounds/day.
POST/metered/api/v1/metering/bucket/quotenonePrepaid bucket quote: rounds, USD subtotal, live KAS rate, sompi estimate, refund policy. Bucket = real Kaspa covenant with on-chain refund path.
GET/metered/api/v1/metering/statusAPI keyUsage: lifetime rounds, earned volume discounts (20/30/50% at 1k/5k/25k), used today.

Tiers and limits

TierGradeSignersRatePrice/mo
FreeD310 req/min$0
StandardB560 req/min$79
PremiumA+8300 req/min$199
InstitutionalA+91000 req/min$749
Pay-per-call——per requestfrom $0.01

Grades are the honest floor: the live network currently serves grade D on most pairs (see status); the B+/A+ grades above are what each tier is provisioned for as the soak bar is met.

Errors

CodeMeaning
422Validation — a required body field is missing (e.g. request_id on a draw, email on signup).
503Pair unavailable right now — the pair's quorum isn't being met. Check status. Retry with backoff; we don't serve stale prices.
401/403Missing or invalid X-API-Key.
Verification doctrine: we would rather return 503 than serve a price we can't stand behind. A missing pair is a loud failure, not a silent stale number.

Get an API key — pay in KAS, no email