Lingo logo

Provably Fair

Provably fair raffles

How Lingo Raffles Work

A quick guide to how winners are picked, why the process is fair, and how your odds are calculated.

Entrants are sealed

When a raffle closes, the entrant list and ticket counts are committed on-chain before winners are drawn.

Randomness is external

Winner selection uses Chainlink VRF v2.5 randomness instead of private or internally generated numbers.

Odds are public

Tickets, weights, and the deterministic selection rule make the same inputs produce the same winners.

The blockchain is our source of truth

We do not ask you to trust us. We anchor the whole draw to the Base blockchain so anyone can verify it.

Two pieces of the draw live on-chain, publicly and permanently:

1. The entrant list is committed on-chain before the draw

The instant a raffle closes, we take a snapshot of every participant and their ticket count, then publish a cryptographic fingerprint, a SHA-512 hash, of that exact list to the Base blockchain.

That fingerprint is a one-way seal. Once it is on-chain:

  • Nobody can add entrants after the fact, including Lingo.
  • Nobody can remove or favor specific entrants.
  • Nobody can edit ticket counts.

Any change, even a single character, would produce a completely different fingerprint that would not match the one already recorded on-chain. The entrant list is effectively frozen in public view.

2. The random number is generated on-chain by Chainlink VRF

We do not roll our own dice. The random number that decides winners is produced by Chainlink VRF v2.5, a Verifiable Random Function used for provably fair randomness on blockchains.

How it works, in plain terms:

  • Chainlink generates the random number together with a mathematical proof that the number is legitimate.
  • The proof is checked by the blockchain itself. If it does not verify, the result is rejected.
  • Nobody, not Lingo, not Chainlink, not validators, can predict, bias, or re-roll the result.
  • The number appears on-chain, timestamped, in a transaction anyone can look up.

Put it together

A public, deterministic draw

The fingerprint locks the entrant list in place, so we cannot alter it after the fact. The random number comes from Chainlink, not us, so we cannot pick the result. Our selection rule is public and deterministic, so the same inputs always produce the same winners.

That is what blockchain as source of truth means here: we do not decide anything privately, and we cannot quietly change anything after the fact.

Your odds

More tickets means a higher chance of winning

Every raffle entrant has a number of tickets. You earn tickets by doing things in the app, including staking, buying them, spinning wheels, referring friends, and other in-app events.

Your weighted tickets divided by total weighted tickets in the raffle

Why weighted?

To keep the same people from winning over and over, we apply a small weight to each entrant based on their raffle wins in the last 30 days:

Situation over the last 30 daysWeight
No wins4
Won a smaller prize3
Won a big prize2
Won a mix of big and smaller prizes1, the floor

Wins older than 30 days no longer count, so your weight resets as time passes. If you have 10 tickets and a weight of 4, you effectively enter with 40 weighted tickets. Someone with 10 tickets and a weight of 2 enters with 20. Everyone still competes. Frequent winners just do not stack the deck forever.

Winners are drawn one at a time, without replacement: once you have won a prize, you are removed from the pool for the remaining prizes in that raffle.

Your tickets and your weight are both part of the entrant list that gets committed on-chain, so the inputs to your odds are just as tamper-proof as the draw itself.

The flow

In plain English

  1. 1Raffle runs and you collect tickets for doing things in the app.
  2. 2Raffle ends and the entrant list is hashed and committed on-chain, locking the source of truth.
  3. 3Randomness is drawn and Chainlink VRF posts a verifiable random number, locking the source of truth.
  4. 4Winners are picked from that random number, tickets, and weight.
  5. 5Prizes are sent or physical prizes are shipped.
Entering never costs gas. You do not send any transactions to participate. The only on-chain transaction is the one Lingo sends to generate the random number, and it costs the same whether 10 people entered or 10,000.

Quick FAQ

Common questions

Do I need a wallet to enter?

Yes. Your Lingo wallet is how tickets are tracked.

Can Lingo influence who wins?

No. The entrant list is locked on-chain before the draw, and the random number is produced by Chainlink VRF, not by us. The selection rule is fixed and public.

What if Lingo went offline?

The record of who entered and the random number used to pick winners would still be on the blockchain permanently, regardless of what happens to us.

What if I won?

You will get an email, and your prize will appear in-app for vouchers or be arranged directly with you for physical prizes.

Why do frequent winners have lower weight?

To spread prizes across the community. It does not remove them from the draw. They can still win, but it gives newer or less-lucky participants a meaningful chance too.

The goal is simple: Lingo should not have private control over the entrant list, the random number, or the winner selection result after the raffle closes.