Skip to main content
You can buy Megapot tickets for another wallet by calling the protocol directly. Set _recipient to the recipient’s wallet while you remain the buyer and payer. The recipient gets ticket NFTs in their own wallet and can win and claim like any other player.
The megapot.io/gift page has been removed. Campaign claim links and app giveaways are no longer available. New signups in the Megapot app are closed. The app shuts down on December 1, 2026; the protocol continues to run. Read Announcement.
Tickets are never free, you fund every gift. There is no zero-price primitive (setting a ticket price to 0 reverts). When you buy a ticket for another wallet, you pay for it in USDC. The recipient pays nothing.

In code: buy via the recipient param

Every purchase call takes a _recipient argument. To send tickets to another wallet, set _recipient to that wallet while you remain the buyer and payer. You approve and spend the USDC, the tickets are minted to them. Optionally, set _referrers to your own wallet so you also earn referral fees on the tickets you fund (10% of the ticket fee, plus 10% win-share if those tickets win). See Referrals & attribution for the referrer arrays in detail. Here is the minimal flow with Jackpot.buyTickets: approve USDC to the Jackpot contract, then buy tickets for the recipient:
The trailing _source is a free-form bytes32 label for your own analytics. It does not affect payments. If you skip the referrer, pass empty arrays ([], []) for _referrers and _referralSplit.

Buying more than 10, or recurring purchases

Other purchase methods take a _recipient too, so you can buy at scale or on a schedule:
  • BatchPurchaseFacilitator.createBatchOrder: buy more than 10 tickets in one drawing.
  • JackpotAutoSubscription.createSubscription: drip tickets across multiple drawings.
  • JackpotRandomTicketBuyer.buyTickets: buy quick-pick tickets with numbers chosen on-chain.
For the full method menu and which one to pick, see add-to-your-site.md. For exact addresses and signatures, see build/protocol-reference.md.

What recipients experience (and KYC)

Recipients receive standard ticket NFTs and can claim any winnings into their wallet without KYC if they never use Megapot’s app. The identity rules apply through megapot.io. Once a recipient links the wallet to a Megapot account, all of its prize claims count toward their lifetime prize withdrawal total, and cashing out of a Megapot wallet is checked the same way. See Identity Verification (KYC).

Track what you sent

Because the buyer is you and the recipient is the other wallet, query the tickets from the recipient’s side using the Data API wallet endpoints:
This returns the tickets now held by that wallet, including the ones you bought for them. Pair it with GET /v1/wallets/{recipient}/wins to see if they paid off. See pull-data.md for auth, pagination, and the rest of the wallet endpoints.
The _source label you set on a purchase is not queryable through the Data API. Keep your own record if you need to attribute purchases.