wld5050.eth → platform fee $10.00 USDC · 10.00 WLDagent.wld5050.eth → CRE draw agentWorld ID 4.0 → one entry per humanCRE DON → 15/15 nodes consensuswinner-round{N}.wld5050.eth → optional L1 badge (winner claims)ProveKit → ZK winner index verifiedChainlink Confidential AI → fairness attestationPrivy → embedded wallet · gasless ERC-4337bit5050.eth → operatorsettle() → 50% winner · 50% creatorno claim() → USDC pushed atomicallywld5050.eth → platform fee $10.00 USDC · 10.00 WLDagent.wld5050.eth → CRE draw agentWorld ID 4.0 → one entry per humanCRE DON → 15/15 nodes consensuswinner-round{N}.wld5050.eth → optional L1 badge (winner claims)ProveKit → ZK winner index verifiedChainlink Confidential AI → fairness attestationPrivy → embedded wallet · gasless ERC-4337bit5050.eth → operatorsettle() → 50% winner · 50% creatorno claim() → USDC pushed atomically
wld5050.eth → platform fee $10.00 USDC · 10.00 WLDagent.wld5050.eth → CRE draw agentWorld ID 4.0 → one entry per humanCRE DON → 15/15 nodes consensuswinner-round{N}.wld5050.eth → optional L1 badge (winner claims)ProveKit → ZK winner index verifiedChainlink Confidential AI → fairness attestationPrivy → embedded wallet · gasless ERC-4337bit5050.eth → operatorsettle() → 50% winner · 50% creatorno claim() → USDC pushed atomicallywld5050.eth → platform fee $10.00 USDC · 10.00 WLDagent.wld5050.eth → CRE draw agentWorld ID 4.0 → one entry per humanCRE DON → 15/15 nodes consensuswinner-round{N}.wld5050.eth → optional L1 badge (winner claims)ProveKit → ZK winner index verifiedChainlink Confidential AI → fairness attestationPrivy → embedded wallet · gasless ERC-4337bit5050.eth → operatorsettle() → 50% winner · 50% creatorno claim() → USDC pushed atomically
wld5050.eth → platform fee $10.00 USDC · 10.00 WLDagent.wld5050.eth → CRE draw agentWorld ID 4.0 → one entry per humanCRE DON → 15/15 nodes consensuswinner-round{N}.wld5050.eth → optional L1 badge (winner claims)ProveKit → ZK winner index verifiedChainlink Confidential AI → fairness attestationPrivy → embedded wallet · gasless ERC-4337bit5050.eth → operatorsettle() → 50% winner · 50% creatorno claim() → USDC pushed atomicallywld5050.eth → platform fee $10.00 USDC · 10.00 WLDagent.wld5050.eth → CRE draw agentWorld ID 4.0 → one entry per humanCRE DON → 15/15 nodes consensuswinner-round{N}.wld5050.eth → optional L1 badge (winner claims)ProveKit → ZK winner index verifiedChainlink Confidential AI → fairness attestationPrivy → embedded wallet · gasless ERC-4337bit5050.eth → operatorsettle() → 50% winner · 50% creatorno claim() → USDC pushed atomically
wld5050.eth → platform fee $10.00 USDC · 10.00 WLDagent.wld5050.eth → CRE draw agentWorld ID 4.0 → one entry per humanCRE DON → 15/15 nodes consensuswinner-round{N}.wld5050.eth → optional L1 badge (winner claims)ProveKit → ZK winner index verifiedChainlink Confidential AI → fairness attestationPrivy → embedded wallet · gasless ERC-4337bit5050.eth → operatorsettle() → 50% winner · 50% creatorno claim() → USDC pushed atomicallywld5050.eth → platform fee $10.00 USDC · 10.00 WLDagent.wld5050.eth → CRE draw agentWorld ID 4.0 → one entry per humanCRE DON → 15/15 nodes consensuswinner-round{N}.wld5050.eth → optional L1 badge (winner claims)ProveKit → ZK winner index verifiedChainlink Confidential AI → fairness attestationPrivy → embedded wallet · gasless ERC-4337bit5050.eth → operatorsettle() → 50% winner · 50% creatorno claim() → USDC pushed atomically
Guide
How It Works
Human-verified 50/50 raffles on World Chain — verify once, pay in USDC or WLD, and let Chainlink CRE handle the draw and payouts automatically.
1 human · 1 ticketUSDC or WLDCRE verified draw
Flow
Four steps. Fully automated.
From World ID verification to automatic settlement — every step is on-chain and trustless.
01
Verify with World ID
Every creator and ticket buyer proves they are a unique, Orb-verified human using a zero-knowledge proof. One person, one entry per raffle — no bots, no Sybil wallets.
02
Create a raffle
Verify with World ID, then choose USDC or WLD as the raffle currency. Pay the flat creation fee ($10.00 USDC or 10.00 WLD to wld5050.eth), set a name and duration (any length — 1 minute to 1 year+). Your raffle is live on-chain immediately.
03
Buy a ticket
Verify with World ID, then pay $2.50 USDC or 2.50 WLD per ticket. Funds sit in escrow until settlement. The same human cannot buy twice — nullifier hashes are checked on-chain.
04
CRE settles automatically
When the deadline passes, Chainlink CRE selects a verifiable random winner, splits ticket revenue 50/50, and pushes payouts to winner and creator in one atomic transaction. No claim button.
Authentication
Privy wallet integration
World ID proves you are human. Privy gives you a wallet to sign on-chain — create raffles, buy tickets, and view your dashboard without managing keys manually.
WLD5050 uses Privy's React SDK paired with Wagmi. Login stays in a modal; contract calls route through your embedded or external wallet on World Chain.
01Click Connect Wallet in the nav — Privy opens a secure login modal
02Sign in with email, Google, or an existing external wallet
03New users get an embedded wallet on World Chain automatically
04Wagmi signs create, buy, and dashboard reads against your address
Multiple login methods
Email, Google, or connect an existing wallet. Privy handles session management so you stay signed in across pages.
Embedded wallets
Users without a wallet get one provisioned on first login — no seed phrase, no browser extension required.
World Chain + Ethereum
Privy and Wagmi default to World Chain for raffles. Winners switch to Ethereum mainnet only to claim their optional ENS badge.
Stack
Privy React Auth · Privy Wagmi · World Chain · embedded wallets on login
Pricing
Fixed fees. Transparent splits.
All amounts are hardcoded in the contract — no hidden fees, no oracle conversions. Creators choose USDC or WLD at raffle creation; every ticket and payout uses that same token.
Action
USDC
WLD
Notes
Create raffle
$10.00 USDC
10.00 WLD
Paid to wld5050.eth (platform fee)
Ticket price
$2.50 USDC
2.50 WLD
Held in escrow until settlement
Winner receives
50% of ticket sales
50% of ticket sales
Pushed automatically by CRE
Creator receives
50% of ticket sales
50% of ticket sales
Pushed automatically by CRE
1 ticket sold
Winner + creator each receive
$1.25
or 1.25 WLD
10 tickets sold
Winner + creator each receive
$12.50
or 12.50 WLD
100 tickets sold
Winner + creator each receive
$125.00
or 125.00 WLD
1000 tickets sold
Winner + creator each receive
$1,250.00
or 1,250 WLD
Creation fee is separate from ticket revenue — platform earns $10.00 USDC or 10.00 WLD per raffle created.
Integrations
USDC, WLD, CRE, and ENS
Three integrations power every raffle — dual-token payments, trustless settlement, and human-readable identities.
USDC & WLD
Dual-token escrow
Creators pick USDC or WLD when launching a raffle. All tickets and payouts use the same token — simple escrow, no swaps inside the contract. Fixed amounts on-chain: no oracle dependency on World Chain.
USDC · 6 decimals · World Chain native
WLD · 18 decimals · World Chain native
Frontend handles token approvals before each tx
Chainlink CRE
Automation & randomness
Winner selection and prize distribution run on Chainlink's Decentralized Oracle Network via the Chainlink Runtime Environment. CRE workflows read expired raffles, generate verifiable randomness, and call onReport() through the Keystone Forwarder.
30-second cron trigger on expired raffles
BFT consensus randomness (runtime.Rand)
Confidential AI fairness attestation hash on-chain
Atomic USDC/WLD push to winner + creator
ENS
Readable identities
ENS replaces raw hex addresses across the UI. When CRE settles a raffle, the contract reserves winner-round{N}.wld5050.eth. Winners can claim that badge on Ethereum mainnet (they pay L1 gas) — a shareable trophy name, separate from World Chain payout proof.
Hosts, buyers, and winners shown by ENS name where available
winner-round{N}.wld5050.eth — optional claim on Ethereum L1
Worldscan token transfers remain the payment proof
ENS integration
Winner badges on Ethereum
WLD5050 runs human-verified 50/50 raffles on World Chain. When Chainlink CRE settles via agent.wld5050.eth, the winner claims winner-round{N}.wld5050.eth on Ethereum — a subname registry that turns a cross-chain win into a global, verifiable ENS identity.
Human-verified winners get a portable ENS trophy that works in any wallet or app.
wld5050.eth → platform fee $10.00 USDC · 10.00 WLDagent.wld5050.eth → CRE draw agentWorld ID 4.0 → one entry per humanCRE DON → 15/15 nodes consensuswinner-round{N}.wld5050.eth → optional L1 badge (winner claims)ProveKit → ZK winner index verifiedChainlink Confidential AI → fairness attestationPrivy → embedded wallet · gasless ERC-4337bit5050.eth → operatorsettle() → 50% winner · 50% creatorno claim() → USDC pushed atomicallywld5050.eth → platform fee $10.00 USDC · 10.00 WLDagent.wld5050.eth → CRE draw agentWorld ID 4.0 → one entry per humanCRE DON → 15/15 nodes consensuswinner-round{N}.wld5050.eth → optional L1 badge (winner claims)ProveKit → ZK winner index verifiedChainlink Confidential AI → fairness attestationPrivy → embedded wallet · gasless ERC-4337bit5050.eth → operatorsettle() → 50% winner · 50% creatorno claim() → USDC pushed atomically
wld5050.eth → platform fee $10.00 USDC · 10.00 WLDagent.wld5050.eth → CRE draw agentWorld ID 4.0 → one entry per humanCRE DON → 15/15 nodes consensuswinner-round{N}.wld5050.eth → optional L1 badge (winner claims)ProveKit → ZK winner index verifiedChainlink Confidential AI → fairness attestationPrivy → embedded wallet · gasless ERC-4337bit5050.eth → operatorsettle() → 50% winner · 50% creatorno claim() → USDC pushed atomicallywld5050.eth → platform fee $10.00 USDC · 10.00 WLDagent.wld5050.eth → CRE draw agentWorld ID 4.0 → one entry per humanCRE DON → 15/15 nodes consensuswinner-round{N}.wld5050.eth → optional L1 badge (winner claims)ProveKit → ZK winner index verifiedChainlink Confidential AI → fairness attestationPrivy → embedded wallet · gasless ERC-4337bit5050.eth → operatorsettle() → 50% winner · 50% creatorno claim() → USDC pushed atomically
wld5050.eth → platform fee $10.00 USDC · 10.00 WLDagent.wld5050.eth → CRE draw agentWorld ID 4.0 → one entry per humanCRE DON → 15/15 nodes consensuswinner-round{N}.wld5050.eth → optional L1 badge (winner claims)ProveKit → ZK winner index verifiedChainlink Confidential AI → fairness attestationPrivy → embedded wallet · gasless ERC-4337bit5050.eth → operatorsettle() → 50% winner · 50% creatorno claim() → USDC pushed atomicallywld5050.eth → platform fee $10.00 USDC · 10.00 WLDagent.wld5050.eth → CRE draw agentWorld ID 4.0 → one entry per humanCRE DON → 15/15 nodes consensuswinner-round{N}.wld5050.eth → optional L1 badge (winner claims)ProveKit → ZK winner index verifiedChainlink Confidential AI → fairness attestationPrivy → embedded wallet · gasless ERC-4337bit5050.eth → operatorsettle() → 50% winner · 50% creatorno claim() → USDC pushed atomically
wld5050.eth → platform fee $10.00 USDC · 10.00 WLDagent.wld5050.eth → CRE draw agentWorld ID 4.0 → one entry per humanCRE DON → 15/15 nodes consensuswinner-round{N}.wld5050.eth → optional L1 badge (winner claims)ProveKit → ZK winner index verifiedChainlink Confidential AI → fairness attestationPrivy → embedded wallet · gasless ERC-4337bit5050.eth → operatorsettle() → 50% winner · 50% creatorno claim() → USDC pushed atomicallywld5050.eth → platform fee $10.00 USDC · 10.00 WLDagent.wld5050.eth → CRE draw agentWorld ID 4.0 → one entry per humanCRE DON → 15/15 nodes consensuswinner-round{N}.wld5050.eth → optional L1 badge (winner claims)ProveKit → ZK winner index verifiedChainlink Confidential AI → fairness attestationPrivy → embedded wallet · gasless ERC-4337bit5050.eth → operatorsettle() → 50% winner · 50% creatorno claim() → USDC pushed atomically
Chainlink CRE
Settlement pipeline
When a raffle ends, CRE runs the full draw and payout flow without any human operator. USDC or WLD is pushed to winner and creator in the same transaction.
01CRE workflow reads getExpiredRaffles() on World Chain
02AgentKit human-backed verification check
03Confidential AI fairness attestation (TEE)
04Verifiable randomness via CRE DON consensus
05onReport() → winner + creator paid in one tx
06RaffleSettled event → winner may claim ENS badge on L1