ClashTX ClashTX Docs
🎰 The Twist

The jackpot

This is a bonding curve with a disclosed, on-chain game built into it. The instant someone's buy completes the curve, the pot splits three ways, all in that same transaction: the winner, a disclosed house wallet, and a rebate pool every buyer can claim from.

The split

Every buy adds real SOL to the curve. Nobody knows in advance which buy will be the one that pushes real_sol_reserves past the target: it depends on everyone's trade sizes and timing up to that point. The instant that happens:

RecipientShareWhen
Last buyer (winner)70%Immediately, same transaction
House wallet20%Immediately, same transaction
Rebate pool (all buyers, pro-rata)10%Claimed later, per buyer
🏆

The pot is the entire accumulated real_sol_reserves at that moment, everyone's deposits, not just the winning buyer's own trade. A small buy can trigger a large payout if enough SOL had already built up.

Why buy before the trigger fires

Early buyers are not betting to be last. They're betting the curve keeps climbing so they can resell to a later buyer at a higher price before the trigger fires. It's the same dynamic as any bonding-curve token or greater-fool game. Only the true last buyer wins the 70% payout, and nobody can predict who that will be in advance; that unpredictability is what keeps the mechanic from being gamed by simply "buying last."

⚠️

The pyramid risk (disclosed, not hidden). If new buyers stop arriving, the curve stalls before its target. No trigger fires, no payout happens, and anyone still holding may be sitting on a token worth less than they paid. If the round doesn't reach its target, there is no payout event, to anyone, including the rebate pool.

The rebate: the real early-buy incentive

The rebate pool is one of the only rewards for buying early that doesn't depend on finding a greater fool. Every buyer's lifetime SOL contribution is tracked in its own small on-chain account (Contribution), updated on every one of their buys. Once the curve completes:

your_share = rebate_pool_total × your_total_sol_in ÷ everyone's_total_sol_in

Anyone can call claim_rebate for themselves, once, to withdraw their exact pro-rata share. It only pays out on a successful completion. A round that times out without reaching its target pays no rebate either, to anyone.

Why it's instant and trustless

The winner/house split isn't a separate claim step, a cron job, or a promise. It's the same instruction that completes the curve. The program debits the curve's lamports directly and credits the winner and the house wallet before the transaction finishes. There's no delay window and no admin key that could intervene. The rebate pool is the one part that's claim-based (see above), because paying an unbounded list of past buyers in a single transaction isn't possible on Solana, not because anyone's trust is required in between.

// simplified from the on-chain program
house_share  = pot × 2000 ÷ 10000   // house cut, in basis points
rebate_pool  = pot × 1000 ÷ 10000   // rebate pool, in basis points
winner_share = pot − house_share − rebate_pool

curve.lamports    -= (house_share + winner_share)  // rebate_pool stays in the account
buyer.lamports    += winner_share
house.lamports    += house_share
curve.real_sol_reserves     = 0
curve.rebate_pool_total     = rebate_pool
curve.rebate_pool_remaining = rebate_pool

The house wallet is fixed and disclosed

The house wallet address is a constant baked into the program's source code at deployment. It cannot be changed afterward, and it's the exact same account on every single buy. Disclosed here now; Explorer verification will work once it's actually deployed there:

House wallet…
House cut20%

There's also a separate 1% trade fee

The house cut above is only part of the jackpot pot, paid once, when a round completes. Separately, every single buy and sell, not just the one that completes the curve, carries a flat trade fee, paid straight to the same house wallet the instant the trade happens:

Trade fee1% of every buy and sell
Paid to…, the same wallet as the jackpot's house share
WhenImmediately, in the same transaction as the trade

This fee is entirely separate from the jackpot pot: it's collected on top of a buy's SOL in, or deducted from a sell's SOL out, before either touches real_sol_reserves. It never changes the size of the pot or the 70/20/10 split above.

Verifying a payout yourself

Every jackpot payout emits a JackpotPaid event (mint, winner, winner_amount, house_amount, rebate_pool) in the same transaction as the completing buy, and every rebate claim emits a RebateClaimed event (mint, buyer, amount). Look up any signature on Explorer and you'll see:

Nothing about any of this depends on trusting this website. It's fully reconstructable from the chain.

What happens to your tokens after completion

They stay in your wallet. Completion doesn't take tokens away from anyone. But since selling also closes the moment the pot is paid out (there's no real SOL left in the curve to sell into), any tokens you didn't sell before completion are illiquid from that point on. Only the buyer who completes the curve receives the winner's SOL payout; everyone else's position is whatever tokens they're holding, plus whatever they can claim from the rebate pool.