{"uid":"cap_PyZ__uaaAfxuAHKy-in7a","slug":"soren-verifiable-random-draw-55f147af","name":"Soren Verifiable Random Draw","description":"A selection nobody can rig, including us. Seeded by the drand League of Entropy beacon: a distributed network emits one signed value every 30 seconds and no participant, Soren included, can choose or predict it. Returns the winners, the round, and the exact derivation so anyone can recompute the result. Name a FUTURE round with round= to remove even the assumption that we did not wait for a beacon we liked.","url":"https://soren.com/v1/draw?utm_source=zero.xyz","method":"GET","headers":{},"bodySchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"type":"object","required":["type","method"],"properties":{"type":{"type":"string","const":"http"},"method":{"enum":["GET"],"type":"string"},"queryParams":{"type":"object","required":["n"],"properties":{"n":{"type":"string","examples":["100"],"description":"How many entries are in the draw, numbered 1..n."},"pick":{"type":"string","examples":["3"],"description":"How many to draw, without replacement. Default 1."},"round":{"type":"string","examples":["4210000"],"description":"A drand round. Publish a FUTURE round in advance for a draw nobody can influence."}}}},"additionalProperties":false}}},"responseSchema":{"type":"json","example":{"n":"<int>","pick":"<int>","drawn":true,"beacon":{"round":"<int>","randomness":"<64 hex>"},"winners":["<int>"],"signature":{"value":"<base64>","algorithm":"Ed25519"}}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.05","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.05/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.05","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.05","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_PemKUP72wXs30b79CzxJi","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.05","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Performs a tamper-proof random draw of n entries seeded by the drand League of Entropy beacon, returning winners and full derivation so anyone can verify the result","exampleAgentPrompt":"Run a verifiable random draw for 500 entries and pick 3 winners — use drand round 4210000 so I can prove nobody influenced the result.","exampleUseCases":[{"title":"Transparent NFT raffle","prompt":"We have 1000 NFT raffle entries and need to pick 5 winners in a way nobody can dispute. Use a future drand round — say round 4250000 — so I can publish it in advance and prove the draw was fair."},{"title":"Workplace prize lottery","prompt":"Run a random draw for our 80-person office holiday raffle and pick 1 winner. I want a receipt I can show everyone that proves we didn't cherry-pick the result."},{"title":"Community giveaway selection","prompt":"We've got 300 people entered in our Twitter giveaway and I need to pick 2 winners fairly — give me a drand-seeded draw with the full derivation so followers can verify it themselves."}],"resultDescription":"Returns the drawn winner indices or entry numbers, the drand round number used as the randomness seed, and the exact step-by-step derivation so any third party can independently recompute and verify the result.","failureModes":["Invalid or non-existent drand round number returns an error","n parameter missing or non-numeric causes a 400 bad request","pick value exceeds n (drawing more than total entries) returns an error","Future round not yet emitted — request will fail until beacon publishes that round","Payment not settled or x402 header missing returns 402 Payment Required"],"whenToPreferThis":"Choose this endpoint when you need a publicly auditable, tamper-proof random selection — especially for giveaways, lotteries, raffles, or any competition where trust and verifiability matter. The drand beacon seeding means neither the operator nor the caller can predict or influence the outcome. Use the future-round feature (round=) when you want to pre-commit to randomness before entries close, eliminating even the suspicion of manipulation. Prefer this over a simple RNG or internal shuffle whenever the fairness of the draw must be demonstrable to skeptical third parties.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-12T00:38:57.365Z","isFirstParty":false,"canonicalSlug":"soren-verifiable-random-draw-55f147af"}