Provably Fair Draw Receipt Generator
Worldwide
Build a “provably fair draw” receipt generator — sealed entrant list + drand public randomness + static proof pages (fixed scope, 7 days) DESCRIPTION I’m building trust infrastructure for online giveaways and random selections. When a winner is announced and someone screams “rigged,” the operator currently has nothing to show. This tool fixes that: it seals the entrant list BEFORE the random number exists, uses public randomness (drand), and produces a proof page any losing entrant can verify themselves — without trusting the operator, or us. This is a small, sharply-scoped build from a complete spec. Seven calendar days. Fixed price. No scope additions — the descoping IS the design. What you will build (all six, nothing else): 1. Seal tool — input: CSV of entrants (public handles). Normalizes per stated rules (trim, case, dedupe, stable index). Output: canonical list + SHA-256 pool digest. 2. Pre-draw commitment page — static HTML, published before the draw: pool hash, entrant count, cutoff timestamp, the named FUTURE drand round (or the rule selecting it), operator/campaign info, and the exact winner-selection rule. 3. Deterministic draw engine — script (Python or Node): input = drand round value + pool digest; output = winner index + 3 alternates. Must use unbiased rejection sampling (if you don’t know why naive modulo is wrong, this isn’t your job). Fully deterministic: same inputs → same outputs on any machine. This component ships open-source (MIT) — outsiders must be able to re-run it. 4. Public receipt page — static HTML. Top: a human-readable card a non-technical person understands in 10 seconds (“List locked 8:00 PM · 4,392 entries sealed · Random number published 8:01 PM (drand round #X) · Winner drawn by public formula”). Below, behind an expander: full technical detail (hashes, round signature link, rule). 5. Verify-my-entry + recompute — entrants check their handle is in the sealed list, and an in-browser widget (or dead-simple script) lets anyone paste the drand value and recompute the winner themselves. 6. Operator runbook + 3-command local tool — seal → draw → outputs the static pages. A non-developer (me) will run real draws with this. If I can’t operate it from your runbook alone, milestone 3 doesn’t close. Explicitly OUT of scope (do not propose these): Merkle trees / inclusion proofs, user accounts, databases, admin dashboards, Discord bots, Shopify apps, APIs, email/privacy-hashing modes, hosting infrastructure (static files only — I’ll host), and anything blockchain. Tech constraints: Python or Node/TypeScript for tooling. Static HTML/CSS/vanilla JS (or minimal build step) for pages. drand HTTP API (quicknet). Everything reproducible. Verifier components MIT-licensed. Review: your cryptographic choices (commitment format, derivation, sampling) get a 30-minute review call with our core engineer before first public use. You should welcome this. Milestones (fixed $800 total): • M1 — $250: draw engine + commitment format + test vectors (day 3) • M2 — $400: receipt page + verify page + local tool (day 6) • M3 — $150: runbook + fixes from engineering review (day 7–8) Follow-on: if this goes well, there is a clear paid roadmap behind it (privacy mode, platform integrations, productization). First hire on this codebase has the inside track. DO NOT APPLY IF: • You’re going to pitch blockchain, smart contracts, tokens, wallets, or “put it on-chain.” Instant disqualification — this is deliberately chain-free. • You’re an agency or a team. Solo developers only. • Your instinct is to expand this into a SaaS platform with dashboards and accounts. The constraint is the product. • You can’t commit to 7 calendar days from a complete spec at the fixed price. • Your profile is a wall of every skill that exists. I’m hiring a specialist for a scalpel job. To apply, answer these four (short answers beat long ones): 1. A naive way to pick a winner is random_value % list_length. In 2–3 sentences: what’s wrong with that, and what do you do instead? 2. Have you used drand or any public randomness beacon? If not, skim drand.love and tell me in 2 sentences how you’d bind a draw to a round that doesn’t exist yet. 3. Link ONE thing you built that non-technical people actually use. 4. Confirm: 7 days, $800 fixed, scope as written, crypto review call included.
$800.00
Fixed-price- ExpertExperience Level
- Remote Job
- One-time projectProject Type
Skills and Expertise
Activity on this job
- Proposals:20 to 50
- Last viewed by client:2 hours ago
- Interviewing:0
- Invites sent:0
- Unanswered invites:0
About the client
- USABurlington3:40 PM
- $28K total spent22 hires, 13 active
- 34 hours
Explore similar jobs on Upwork
How it works
Create your free profileHighlight your skills and experience, show your portfolio, and set your ideal pay rate.
Work the way you wantApply for jobs, create easy-to-by projects, or access exclusive opportunities that come to you.
Get paid securelyFrom contract to payment, we help you work safely and get paid securely.
About Upwork
- 4.9/5(Average rating of clients by professionals)
- G2 2021#1 freelance platform
- 49,000+Signed contract every week
- $2.3BFreelancers earned on Upwork in 2020
Find the best freelance jobs
Growing your career is as easy as creating a free profile and finding work like this that fits your skills.
Trusted by