_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.
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:
_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.
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: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.