Under the hood
How Pickfetti works
No magic, no login, no black box. Here is what happens between pasting your link and sharing the winner.
1. You paste a public post or reel link
Open the giveaway on Instagram, tap Share → Copy link, paste it in. Within a couple of seconds you’ll see the post owner, the caption, the comment count Instagram reports, and the price — which is free for posts up to 500 comments. Nothing is fetched or charged until you confirm.
We read only what is publicly visible: the same comments anyone sees logged out. That means we never ask for your Instagram login, password, or app permissions, and there is nothing that could put your account at risk. It also means private accounts can’t be used — for those, paste the comments manually.
2. You set the rules from your caption
- Winners & alternates — pick several winners at once, plus backups in case someone doesn’t reply.
- One entry per person (default) or every qualifying comment counts.
- Tag friends — minimum number of different @mentions. Tagging the same friend twice counts once; a person’s mentions are pooled across their comments, so “tag 3 friends” works even if they used two comments.
- Keyword / hashtag / emoji — a comment must contain at least one of the terms you list (case-insensitive).
- Exclusions — the post author is excluded by default; add teammates, alt accounts or serial entrants; ignore replies; limit to a date/time window.
- Winners must follow — list the host account(s). See step 4.
Every rule you set is printed on the proof page, so entrants see exactly what applied.
3. We fetch every comment we can and show you the funnel
Comments and replies are paged through until Instagram has no more to give. You’ll see how many we retrieved versus how many Instagram reports — the difference is deleted, hidden and spam-filtered comments that no tool can access (why the numbers differ). Then the rules run and you get a funnel: comments → unique people → eligible entries, with a reason for every exclusion (no tag, blocklisted, duplicate, outside window…). Adjust the rules and it recomputes instantly.
4. The draw: a fresh seed, a deterministic shuffle
When you hit Pick winners, we lock the eligible entry list, generate a fresh 256-bit seed from the operating system’s cryptographic random source, and use it to drive an HMAC-SHA256 stream that performs a Fisher–Yates shuffle over the entries in their original order. The first N shuffled entries are the winners, the next M are alternates. Rejection sampling means no modulo bias — every entry has exactly the same chance.
If you asked us to verify follows, we check the drawn candidates (not the whole list) against the host account’s public data. Someone who provably doesn’t follow is skipped and listed on the proof page; when we can’t tell (private account), they are never rejected on a guess. Checking winners rather than everyone is what keeps this free for you.
5. Proof you can share
Each draw gets a public page at pickfetti.com/d/<code> showing the winners and alternates, the host, the rules, the counts, the seed, a hash of the entry list, and a link that recomputes the draw live (/d/<code>/verify.json). You also get a winner card image sized for Stories and a CSV of every comment with its eligibility. Hosts can hide a proof page or delete a draw at any time. Learn more in What makes a draw provably fair.
What we deliberately don’t do
- We don’t post, DM, like or follow anything on your behalf — we never have access.
- We don’t verify likes or Story shares (Instagram doesn’t expose them reliably), and we say so instead of pretending.
- We don’t support TikTok, YouTube or Facebook. Instagram, done properly.