polyfoxDocs

๐ŸŽŸ๏ธ Daily contest

How the daily contest works โ€” tickets, draws, prizes, verification and the Megapot terms behind it.

Trade with Polyfox โ€” win up to $200K every day. Every $1 you trade earns 1 ticket. 3 participants win between $5 and $200K every day.

In 10 seconds

  • Every $1 of volume you trade today on Polymarket via Polyfox is 1 ticket in today's contest. Copy trades and manual trades count the same.
  • Each day at 00:00 UTC, Polyfox draws 3 tickets at random from every ticket received that day. One trader can win once per day.
  • Megapot then sets each prize with a separate random number from Pyth Entropy. Every winner gets from $5 up to $209,787.
  • Tickets reset at 00:00 UTC and don't carry over.
  • Daily draws run September 22 โ€“ October 21, 2026.

Leaderboard

Today's leaders by tickets. More tickets = higher odds to be drawn.

The leaderboard doesn't decide who wins, and it doesn't decide prize size. Tickets reset at 00:00 UTC. The contest is subject to certain terms and restrictions by Megapot.

Winners

Today's winners and their prizes. Tap Verify on any winner to open the onchain transaction.

Rules

Every $1 of volume you trade today on Polymarket via Polyfox is 1 ticket in today's contest. Copy trades and manual trades count the same, volume is counted per trade you make.

Each day at 00:00 UTC, Polyfox draws 3 tickets at random from every ticket received that day. One trader can win once per day โ€” if a drawn ticket belongs to someone who already won today, we draw again.

Megapot then sets each prize with a separate random number from Pyth Entropy. Every winner gets from $5 up to $209,787.

Tickets reset at 00:00 UTC and don't carry over.

Daily draws run September 22 โ€“ October 21, 2026.

The contest is powered by Megapot and is subject to terms, conditions, and restrictions set out by Megapot. Read the full terms and conditions.

Verify a draw yourself

Polyfox's draw is commit-reveal: before the day starts, Polyfox generates a secret seed and publishes its sha256 commitment; after the day ends, the seed is revealed together with the exact ticket list the draw ran over, and the winners are computed from them. Because the commitment was public before trading started and the algorithm is deterministic, anyone can recompute the winners and get the same answer.

Every drawn round publishes everything the draw used, at a public, unauthenticated URL keyed by the day's Megapot round number (183 = 2026โ€‘09โ€‘22, +1 per UTC day):

https://polyfox.co/api/volume-raffle/rounds/<roundId>

Verify in the app links straight to it. The response contains:

  • round.seedHash โ€” the commitment published before the day started, and round.seed โ€” the secret revealed after the draw. Check sha256(seed) == seedHash.
  • entries โ€” the ticket list the draw ran over, in draw order: each line has a position, an entrant key and its tickets. Entries are sorted by tickets descending, then by entrant key, and only users with at least one ticket are listed โ€” so you can also check the list itself is honestly ordered.
  • winnerCount โ€” how many picks the draw makes (currently 3), and winners โ€” who won, each with their entrant key.

Entrant keys are sha256("<day>:<your user id>"): opaque to everyone else, different every day, and shown to you under Verify in the app so you can find your own line and confirm your ticket count. No user ids ever appear in the data.

To replay the draw, walk the entries once per pick: take sha256("<seed>:<day>:<n>") as a big integer (n = 0, 1, 2โ€ฆ), reduce it modulo the tickets still in the pool, and find the entry whose cumulative ticket count first exceeds that number. Remove it from the pool and repeat. The script below does exactly that with Node.js (no dependencies):

// verify-raffle.mjs โ€” usage: node verify-raffle.mjs <roundId>
import { createHash } from "node:crypto";

const sha256 = (s) => createHash("sha256").update(s).digest("hex");
const roundId = process.argv[2];
const r = await (await fetch(`https://polyfox.co/api/volume-raffle/rounds/${roundId}`)).json();
if (r.round?.status !== "drawn") throw new Error(`round ${roundId} is ${r.round?.status ?? "missing"}`);

console.log("commitment ok:", sha256(r.round.seed) === r.round.seedHash);

const pool = r.entries.map((e) => ({ ...e, tickets: BigInt(e.tickets) }));
const picked = [];
for (let n = 0; n < r.winnerCount && pool.length > 0; n += 1) {
  const total = pool.reduce((sum, e) => sum + e.tickets, 0n);
  const pick = BigInt(`0x${sha256(`${r.round.seed}:${r.day}:${n}`)}`) % total;
  let cumulative = 0n;
  const at = pool.findIndex((e) => (cumulative += e.tickets) > pick);
  picked.push(pool.splice(at, 1)[0].entrant);
}
const published = r.winners.map((w) => w.entrant);
console.log("winners ok:", JSON.stringify(picked) === JSON.stringify(published));

Save it, run node verify-raffle.mjs 183 (or any drawn round), and both lines should print true. If you want to check your own standing too, find the line in entries whose entrant matches the key shown in the app.

Prizes

Odds below apply to every winning ticket. They describe how much a drawn ticket receives, not the odds of being drawn.

PrizeOdds per winning ticket
$5 or moreEvery winner
$10 or more1 in 8
$20 or more1 in 90
$200 or more1 in 1,050
$2,000 or more1 in 14,250
$209,7871 in 142,500

Once a ticket is drawn, an independent random number drawn by Megapot sets its prize. That number ignores how many tickets you hold, so a 1-ticket winner and a 100-ticket winner have identical odds.

Powered by Megapot.

FAQs

How do I get tickets?

By trading on Polymarket via Polyfox. Every $1 of volume results in 1 ticket in that day's contest. Copy trades and manual trades count the same. Tickets reset at 00:00 UTC.

How are winners chosen?

Each day at 00:00 UTC, Polyfox draws 3 winning tickets at random from every ticket received that day. Because tickets are acquired through trading volume, more volume means more tickets and a higher odds of being drawn. One trader can win once per day โ€” if a drawn ticket belongs to someone who already won that day, the draw runs once again, so the 3 winners are 3 different participants.

What are the prizes?

Every winning ticket pays at least $5. The exact amount of the prize is set by Megapot with a random number from Pyth Entropy, an independent onchain source, so prizes odds vary every day. The full prize of $209,787 is in play for every winning ticket, every day.

Why are some prizes bigger than others?

Prize size comes from a second random number, drawn after the winners are picked randomly. It has no connection to how many tickets a winner held or how much they traded. A 1-ticket winner and a 100-ticket winner have identical odds on the prize.

What can I check onchain?

Prize amounts come from Pyth Entropy, an independent onchain randomness source โ€” no one at Megapot can set or influence that number. And every payout is a public transaction you can open yourself.

Can I verify the prizes?

Yes. Tap Verify on the draw page to open the onchain prize payment transaction for that day. To recompute the winner selection itself, see Verify a draw yourself.

When do I get paid?

Prizes are credited to your balance in the Polyfox mini-app on the day of the draw, and winners are posted in the mini-app. If something looks wrong, contact Polyfox support.

Who is the organizer of the contest?

The contest is powered by Megapot and is subject to terms, conditions, and restrictions set out by Megapot. Read the full terms and conditions. You should make yourself familiar with the applicable terms and conditions and you agree with them by participating in the contest.

About Megapot

Megapot is an onchain prize pool that lets any app give its users a daily chance at a $200K+ prize. Draws are verifiably random, the contracts are audited by three independent firms, and Megapot is backed by Dragonfly, Coinbase Ventures and Bankless Ventures.

Open Polyfox

Last updated on

On this page