
Last updated: May 7, 2026
From casting a vote to verifying it on a public blockchain — here is the full pipeline, in plain language.
When you click a poll option, your selection is sent to our servers, checked for fairness (rate limits, duplicate prevention, fraud signals), counted, and written into the live tally. You receive a short cryptographic proof code — your receipt — within seconds.
Every vote produces a unique receipt: a short cryptographic code that proves your vote was recorded, without revealing who you are. You can use it later on the receipts page to confirm your vote is part of the official tally. Receipts are tied to the vote, not to your identity.
Each poll creator chooses how strict the verification should be. Available methods include:
Each method gives the poll a different level of fraud resistance, but none of them require us to know your real identity.
We never store your IP address, device fingerprint, or email in plain text. Anything that could identify you is one-way hashed before it touches our database. We do not run behavioural analytics on you, and we do not share or sell data for marketing. The infrastructure providers we depend on (CDN, email delivery, database, etc.) are listed in our Privacy Policy.
Once per day at 03:30 UTC, we collect all votes from the previous UTC day, group them by trust tier, and build a separate Merkle tree for each tier — a cryptographic data structure that lets anyone prove a single vote is part of its tree without revealing the other votes. The 32-byte root of every tier's tree is then published to the Base blockchain in a single batched transaction, where it becomes permanent and tamper-evident. From that moment on, even we cannot retroactively change, delete, or insert votes from that day without breaking the on-chain proof.
We split each daily anchor into trust tiers so you can verify your vote against votes of the same trust level:
After your vote is anchored, you can prove its inclusion using just the receipt code and public information. Open the receipts page, paste your receipt, and you will see the on-chain transaction on Basescan along with the Merkle proof. Anyone — not only us — can recompute the math and confirm your vote is in the official set. No login, no API key, no trust required.
Votes cast before our blockchain anchoring system went live will always show "anchoring not available." The receipt is still valid and verifiable from your end, but there is no on-chain proof for those votes because the system did not exist when they were cast. From the moment anchoring went live, every new vote is included in the next day's daily anchor.