Every raffle you have ever entered had a host. Someone drew the ticket, read the number, handed over the prize. You waited for them. The jackpot on this site does not work that way, and the difference is smaller in the code than it is in the head.
When the 30-day timer runs out, the Draw button stops being greyed out. From that moment, the first person with a connected wallet who clicks it runs the draw. Not the project. Not an admin. Whoever is standing there. I keep turning this over because it is such a quiet feature and such a strange one to actually sit with.
In the front end, the jackpot bar reads a single view called getJackpotInfo, which hands back the current balance, the time of the last draw, a running total paid out, the number of minted seconds, and one boolean: canDraw. While that boolean is false, the button says "Next draw" and counts down from the last draw plus thirty days. When it flips true, the button wakes up.
The click itself calls drawJackpot. The only thing the page checks before letting you make that call is whether you have connected a wallet at all. There is no owner check, no allowlist, no secret admin route hiding behind the visible one. The lever is bolted to the wall in public, and the sign next to it does not say "staff only."
A hosted raffle carries an implied promise: someone is responsible for it happening. If the host forgets, you complain to the host. A permissionless draw has no such person. If the timer expires and nobody clicks, nothing happens. The prize just sits there, ready, waiting for a hand. That is either unsettling or freeing depending on your temperament, and honestly I feel both at once.
The freeing part is that you are never at anyone's mercy. You do not have to trust that the operator will run the draw fairly or run it at all, because you can run it yourself the second it is allowed. The uncomfortable part is the flip side of the same coin: nobody is going to do it for you. Responsibility does not disappear when you remove the host. It spreads out thin across everyone and lands on whoever happens to be paying attention.
There is a funny social physics to that. A button anyone can press is a button that mostly nobody presses, right up until someone does. It is the group project where the work is trivial and still gets left undone, because "someone will get to it" is a sentence every single person can tell themselves at once. The draw does not care about that dynamic. It waits.
Here is the part I find genuinely interesting. The person who triggers the draw is not the same as the person who wins it. Clicking the button is not entering the raffle; the entrants are the minted seconds, decided by whatever the contract does when the draw runs. The clicker pays the network fee to make the draw happen and then, most likely, watches someone else receive the prize.
So the act of pulling the lever is close to a small civic gesture. You spend a little to move the machine forward, and the benefit flows to the pool, not to you specifically. In practice someone always does step up, usually a participant who wants the thing resolved, or just a person who noticed the button was live and could not resist a button that was live. Either way the motive barely matters. The draw only needs one finger.
I like that the design does not pretend this away with fake ceremony. There is no countdown show, no host voice, no confetti scheduled in advance. It is a boolean going true and a transaction anyone can send. The drama, if there is any, is entirely in the fact that a real prize is sitting behind a button with no name on it.
What a permissionless draw proves is narrow and real: the resolution of the jackpot does not depend on the goodwill or availability of any one operator. That is a genuine property, and it is the whole point of putting the trigger in the open. It removes a single point of "please let them actually do it."
What it does not prove is anything about fairness of selection, size of the pool, or your chances. Those live in the contract, and a public button says nothing about them. An open lever is a statement about who may act, not a guarantee about what happens when they do. It would be easy to read "anyone can draw" as "therefore it is fair," and those are two separate claims that happen to sit next to each other.
None of this is financial advice, and a minted second is not an investment or a lottery ticket dressed up as art. Most participants in any draw do not win, and the jackpot is a feature of the project, not a reason to expect a return. The ordinary caveats hold: a real fee on Base for any transaction including the draw click, actions that cannot be undone once sent, keys that are gone for good if lost, and phishing pages that copy the real contract to catch a careless connect. Triggering a draw is still a transaction. Read what you are signing before you sign it, the same as any other.
→ The monthly jackpot: a draw nobody has to run · The site has no database · Referrals, but onchain
getJackpotInfo() view returns (uint256 balance, uint256 lastDraw, uint256 totalPaid, uint256 mintedCount, bool canDraw), drawJackpot(), and event JackpotPaid(uint256 indexed tokenId, address indexed winner, uint256 amount, uint256 drawDay). The loadJackpot function enables the Draw button only when canDraw is true and otherwise counts down from lastDraw plus 2592000 seconds (30 days); drawJackpot checks only that a wallet is connected before calling the contract, with no owner or allowlist gate in the client code.