Skip to main content
Docs

How PlayLotto works

Mention a ticker on X, get one entry, and wait for the draw. Everything else, from how jackpots are funded to how winners are paid, is here.

01Overview

PlayLotto runs lotteries that live on X. Every lotto is tied to a ticker such as $DOGELOTTO. You enter by mentioning that ticker in a post. When the countdown ends, winners are drawn from everyone who entered.

The whole product is four steps: mention → entry → draw → winner. There is nothing to buy, nothing to stake and no way to get extra chances.

02Entering

  1. Open a lotto and press Mention $TICKER. X opens with I'm entering $TICKER pre-filled.
  2. Edit the text however you like. The only requirement is that the post still contains the ticker as a cashtag.
  3. Post it. PlayLotto reads new posts from X about once a minute and records your entry automatically. Sign in with X and press Posted? Check my entry to see You're entered straight away.

Your post must be public, must not be a repost, and must be made after the lotto opens and before its draw time. A post made in time counts even if we read it a moment after the countdown ends.

The ticker must appear as a whole cashtag. $DOGELOTTO counts; DOGELOTTO without the dollar sign or $DOGELOTTOX do not. Matching ignores case.

03The one-entry rule

1 X account = 1 entry per lotto. The first qualifying post creates your entry. Every later post from the same account for the same lotto is ignored, whether it is the second mention or the hundredth.

To stop accounts being created just to farm entries, an X account must be at least 30 days older than the lotto it enters (measured when the lotto opens). Posts from newer accounts are ignored, and Posted? Check my entry says so.

There are no multipliers of any kind: no paid entries, no bonus for likes, reposts, followers or token holdings. The same account can enter different lottos, once each.

The rule is enforced by the database itself with a unique constraint on (lotto_id, user_id), not by application code alone. Creating several accounts to get more entries breaks the Official Rules and gets every one of them disqualified.

04Jackpots and fees

Each lotto is funded by the trading fees of its token. The creator can seed a starting jackpot at launch, and fees grow it from there for as long as the lotto is live.

ShareWhere it goes
90%The jackpot, split equally between the winners.
10%The protocol, which uses it to burn $LOTTO.

Fees stop accruing once the draw starts. The jackpot shown on a lotto page is the seed plus 90% of the fees collected so far.

05The $LOTTO burn

$LOTTO is the protocol token. The protocol's 10% of every lotto's fees is used to burn it, permanently reducing supply. Totals per lotto are on the $LOTTO burn page.

$LOTTO is reserved and cannot be used as a lotto ticker. See Disclosures for the risks of holding any token.

06Winners and the draw

The creator chooses between 1 and 10 winners when launching. At draw time each winner is selected uniformly at random from all entries, without replacement, so no account can win twice in the same lotto. If fewer accounts entered than there are winner slots, every entrant wins.

The jackpot is split equally between the winners actually drawn, in whole dollars. Any dollars left over from an uneven split go to the first winner drawn, so the whole jackpot is always paid out. A lotto with no entries completes without a winner.

Every draw can be checked. When a lotto launches it gets a secret random seed, and only the seed's SHA-256 fingerprint is published on the lotto page. At the draw time the entries are ordered by post time, then post id, and written as lines of userId:postId; the list digest is the SHA-256 of those lines joined by newlines. Winner i is chosen from the entries still left as SHA-256(seed:digest:i), first 16 hex digits read as a number, modulo the number left. After the draw the seed is revealed. Anyone can check it matches the fingerprint published before entries opened and re-run the draw; each completed lotto has a Verify this draw button and a downloadable draw record at /api/lottos/:ticker/draw.

CountdownMeaning
04:21:38Live. Entries are open.
DRAWINGThe draw time has passed. Entries are closed and winners are being selected.
COMPLETEDWinners are fixed and shown on the lotto page.

07Launching on pump.fun

Every lotto launches its own token on pump.fun, and that token's creator fees fund the jackpot. Creating a lotto takes one approval in your Solana wallet, covering two transactions, or three with an initial buy:

  1. Create the token on pump.fun with the lotto's name, ticker and image. If you asked for an initial buy of your own token, it goes through right after. Your lotto still launches if the buy doesn't land.
  2. Route its creator fees to PlayLotto's treasury at 100%. pump.fun lets this setting be made only once, so the routing is permanent. You can also deposit SOL here to start the jackpot above $0.

PlayLotto checks the routing on chain before the lotto goes live. Your wallet signs everything; PlayLotto never holds your keys or funds.

Pump.fun pays creator fees in SOL. As they arrive, 90% is added to the jackpot at the current SOL price and 10% goes to burning $LOTTO. The team makes each burn and records its transaction on the $LOTTO page.

08Getting paid

When a lotto is drawn, each winner is paid in US dollars to their X Money by default. @PlayLotto replies to the winner on X with the news and a link to their claim page. Payments are sent by the PlayLotto team, and each one is recorded on the winner's public receipt.

If a winner doesn't have X Money (it's for US residents aged 18+) or would rather not use it, they're paid in USDC to a Solana wallet instead. Winners can choose that any time before they're paid by signing in with X on their claim page. If X Money can't take a payment, @PlayLotto asks the winner on X which wallet to use; they can reply with the address or add it on the claim page.

MethodHow it works
X MoneySent from PlayLotto's X Money balance to the winner's X account, in dollars.
Solana walletThe full prize in USDC, a dollar stablecoin, on Solana. The transaction is linked from the receipt and checked on chain.

Every payout has a public receipt with its timeline, and the Payments page lists them all. A winner who needs to give a wallet has 30 days to do it.

PlayLotto will never ask for a private key or seed phrase, and only ever asks for a wallet in a reply from @PlayLotto or on your claim page.

09Creating a lotto

Go to Create and set a name, a ticker, a starting jackpot, a draw duration in hours and the number of winners. Optionally upload a token image (PNG, JPEG, WebP or GIF, up to 512 KB); otherwise PlayLotto generates coin art for the ticker.

Tickers are letters, digits and underscores, stored uppercase and unique across PlayLotto. Your lottos appear on your dashboard when you are connected with X.

10Profiles

Every entrant has a PlayLotto profile at /profile/handle showing the lottos they entered and anything they won. Profile names and images come from X.

11API

The web app is built on a small JSON API. All amounts are whole US dollars and all times are Unix milliseconds.

EndpointDoes
GET /api/lottosAll lottos. ?creator= filters by creator; ?user= adds that account's entry state.
POST /api/lottosCreate a lotto as the signed-in account: name, ticker, jackpot, hours, winners, image?.
GET /api/lottos/:tickerOne lotto with its latest entrants and winners.
POST /api/lottos/:ticker/verifyLooks for the signed-in account's posts with the ticker and returns whether it is entered.
GET /api/auth/x/loginStarts Sign in with X. ?next= is where to return.
GET /api/auth/meThe signed-in account, or null.
POST /api/auth/logoutSigns out.
GET /api/lottos/:ticker/drawThe draw record: the seed fingerprint, and after the draw the revealed seed, ordered entries and winners.
GET /api/token-image/:tickerThe token image.
GET /api/avatar/:handleProfile image stand-in used in development.

12FAQ

I posted twice. Do I have two entries? No. One account, one entry, always.

I deleted my post. Am I still entered? Yes. The entry is recorded when the post is first seen.

Can I buy more chances? No. There is no paid entry of any kind.

Who pays the jackpot? The lotto's token: 90% of its pump.fun creator fees, plus any SOL the creator deposited at launch.

How do I get paid if I win? To your X Money by default. If you'd rather have USDC in a Solana wallet, or X Money isn't available to you, choose that on your claim page. See Getting paid.

What is $LOTTO? PlayLotto's own token. 10% of every lotto's fees is used to buy and burn it. Holding it gives no entries and no better odds.

Can I run my own lotto? Yes. Create a lotto: it launches its own token on pump.fun in the same step.

Is PlayLotto run by X? No. PlayLotto is not affiliated with X Corp.

13Support

Questions about an entry, a draw or a payout: email support@playlotto.app or message @PlayLotto on X. Include the lotto's ticker and, for payouts, the receipt link.

PlayLotto will never ask for your password, private key or seed phrase. Anyone who does is not us.