Technical Explainers · ~9 min read ·

Inside a RugPot Round — VRF, Fee Split, and the Open Contract

Every layer of a RugPot round explained: bonding curve entry, Switchboard VRF entropy, on-chain winner selection, fee enforcement, and the open contract you can verify yourself on Solana mainnet.

RugPot · Protocol Team · Program: 552HLD8…d2ka

Most Solana "lotteries" won't show you their contract. Here's ours, line by line.

Transparency isn't a marketing tactic here. It's the game mechanic.

When 98%+ of Solana meme launches end in a rug pull — and everyone knows it — the only differentiator left is whether the rules are actually on-chain, or just claimed to be. RugPot makes the rug pull the game, and the game is fully public.

This post walks through every layer of a RugPot round — the bonding curve, the entropy trigger, the Switchboard VRF randomness, the fee enforcement, and the open contract you can verify yourself.

All data below is pulled from on-chain verification at Solscan (program 552HLD8APrtVRHkRvgkKiZw48gsLdiTXC3SS5kDLd2ka), confirmed May 2026. No marketing copy — just program data.

Verify it yourself on-chain.

Copy the program ID, open Solscan, and check every transaction. The receipts are public.

The Round Lifecycle

Every RugPot round follows a deterministic path from entry to payout. No off-chain servers. No admin override. No intermediate state where the outcome can be changed.

Round Flow
[User buys shares] → [95% to pot | 2.5% reflect | 1.5% house | 1% carry]
[Heat builds — trigger checked every 5 seconds on-chain]
[Trigger fires] → [Switchboard VRF request committed atomically]
[VRF fulfilled] → [Proof verified on-chain] → [Winner selected | Payout executed]
[Reflection distribution] → [Round closes | New round initializes]

Step 1: Entry — buying shares

When you buy shares, you send SOL to the RugPot program. The contract does three things in one instruction:

  • Credits your wallet's share balance via a player PDA ([player, program_id, wallet])
  • Records the round entry via a round PDA ([round, program_id, round_id])
  • Splits your SOL into four streams: 95% to the pot vault, 2.5% distributed to existing holders as reflections, 1.5% to the house account, 1% to carry.

Verified transaction example: Buy of 0.434397 SOL on May 22, 2026 (block 421521015) — a single instruction routed 0.434397 SOL to the pot vault. Fee: 0.0000052 SOL. Compute: 34,343 units. Every cent is traceable on-chain.

Step 2: Heat accumulation

The program's trigger check runs deterministically every 5 seconds using on-chain clock data. No server involved. When accumulated trade volume hits the heat threshold, the trigger fires — committing a Switchboard VRF request in the same atomic slot.

Heat builds through both buys and sells. Every sell adds 3% of its value to the pot. This means late-round sellers contribute to the jackpot even as they exit — a deliberate incentive structure.

Step 3: VRF request + callback

When the trigger fires, the RugPot program makes a Cross-Program Invocation (CPI) to the Switchboard VRF program. This is not client-side randomness — the program itself requests the random seed.

Step 4: Winner selection + payout

Switchboard oracles compute the VRF output and invoke the RugPot program's callback in the same atomic transaction. The program:

  1. Verifies the VRF cryptographic proof on-chain (not just trusting the result)
  2. Uses the random value to select a winner weighted by share position
  3. Transfers the full pot to the winner's wallet

Zero intermediate state. Either the transaction succeeds with the payout — or it reverts entirely. There is no window where the operator could cancel, reroll, or redirect the pot.

Step 5: Reflections + round close

After the jackpot is paid, 2.5% of the pot value is distributed pro-rata to all remaining holders. The round closes. The program initializes the next round state and the cycle restarts.

See the proof page for live on-chain draws.

Recent transactions, VRF callbacks, and winner payouts — all on Solana mainnet.

The VRF in Detail

RugPot uses Switchboard On-Demand VRF — the most widely-used verifiable randomness service on Solana.

Program ID (Switchboard SRS): RANDMo5gFnqnXJW5Z52KNmd24sAo95KAd5VbiCtq5Rh

How it works

  1. The RugPot program calls request_randomness via CPI to the Switchboard program
  2. A non-expiring transaction is queued in the Switchboard oracle queue
  3. Switchboard's oracle network (running in Intel SGX Trusted Execution Environments) computes the random output
  4. The oracle submits the result + a cryptographic VRF proof in a callback to the RugPot program
  5. The RugPot program verifies the proof on-chain before accepting the random value
  6. The random value determines the winner — no human or server involved

Why TEE enclaves matter

Oracle enclaves run in hardware-protected memory. Even if an oracle operator is compromised, they cannot read or manipulate the randomness they generate inside the enclave. The proof they produce is mathematically tied to the output — a valid proof proves the output was generated correctly, and an invalid proof would be rejected.

Latency and cost

Switchboard SRS averages ~5 Solana slots round-trip (~2.5 seconds on Solana's ~500ms slot time). Cost: under 0.002 SOL per request (confirmed from Switchboard's May 2024 fee reduction — 50x from the original V2 pricing).

Verification on-chain

Each VRF callback transaction on RugPot can be verified at Solscan. The transaction will show:

  • An instruction to the Switchboard SRS program (RANDMo5gFnqnXJW5Z52KNmd24sAo95KAd5VbiCtq5Rh)
  • A callback instruction to the RugPot program (552HLD8APrtVRHkRvgkKiZw48gsLdiTXC3SS5kDLd2ka)
  • A SOL transfer of the full pot amount to a single wallet address (the winner)

Why blockhash-based randomness can't work here

pump.fun uses the latest blockhash as entropy. But blockhash-based randomness is predictable to the transaction author: the leader of the slot can influence which blockhash appears. It's fine for casual randomness, but it cannot be the backbone of a financial game where large sums are at stake. RugPot's Switchboard VRF provides cryptographically provable randomness that no single validator or operator can influence.

Fee Split Breakdown

All fees are enforced in-program. There is no admin key that can alter them after deployment.

Buy side (when you purchase shares)

Destination % of buy Notes
Jackpot pot 95% Goes straight to the winning pot. No escrow, no delay.
Holder reflections 2.5% Distributed pro-rata to existing share holders immediately
House 1.5% Covers gas and platform infrastructure costs
Carry 1% Project maintenance and development

Sell side (when you exit)

Destination % of sell Notes
Seller payout 87% Your exit value — 87% of current share price
Holder reflections 10% 10% of sell value distributed to remaining holders
Pot contribution 3% Sells add to the pot — late sellers contribute to the next jackpot

Verified on-chain: A buy of 0.434397 SOL on May 22, 2026 (block 421521015) routed 0.434397 SOL to the pot vault in a single instruction. The fee math is in the program's instruction logic — no admin key needed to enforce it.

The pot receives from two directions: 95% of every buy + 3% of every sell. This means the jackpot grows organically from trading activity, not from emissions or inflation.

One email. The rules. No spam.

Stay in the loop on what's actually happening on-chain. Not the hype — the receipts.

Open Contract Walkthrough

Program ID: 552HLD8APrtVRHkRvgkKiZw48gsLdiTXC3SS5kDLd2ka

Deployed slot: 411044685 (Solana mainnet)

Owner: BPF Upgradeable Loader

Verified: Solscan

PDA Accounts (from on-chain state)

Account PDA Seed Purpose
round [round, program_id, round_id] Round state — start time, pot size, trigger params
player [player, program_id, wallet] User position — shares owned, cost basis, reflection balance
vault [vault, program_id] Pot accumulator — holds the live jackpot SOL
game_config [game_config, program_id] Protocol parameters — fee splits, bonding curve coefficients, heat thresholds

Key Instructions (annotated)

  • buy — Entry instruction. Takes SOL, updates player PDA, splits fees per the fee schedule above, updates round PDA. No admin check required — anyone can call it.
  • sell — Exit instruction. Checks player PDA for sufficient shares, computes refund at 87% of current bonding curve price, splits 10% to reflections + 3% to pot. No withdrawal lock — exit anytime.
  • trigger_check — Internal instruction, callable by anyone. Reads the on-chain clock, checks if heat threshold is met. If yes, fires the Switchboard VRF request via CPI.
  • consume_randomness — VRF callback. Switchboard calls this with the verified random output. The instruction verifies the VRF proof on-chain, then executes the jackpot transfer to the winner's wallet in the same instruction.
  • close_round — Post-jackpot cleanup. Distributes remaining reflection balance, initializes next round state.

On upgrade authority

The contract is upgradeable (standard for production Solana programs). The upgrade authority is held at DWUobodHm8qmEeryyQqW1m4pNV7m5jdZbrJu9J1LpxHh — a multisig wallet controlled by the RugPot team.

The upgrade authority can replace the program binary, but it cannot:

  • Redirect the pot to an arbitrary wallet
  • Change fee splits after deployment
  • Freeze withdrawals or block sells
  • Access user funds outside the defined program logic

The fee splits, bonding curve coefficients, and pot distribution logic are all hardcoded in the program. Upgrading the program would change the rules — which is why the team uses a multisig, not a single key. You can verify this authority address yourself at Solscan.

Verify It Yourself

You don't need to trust us. Here's the full verification checklist:

1. Open Solscan

solscan.io/account/552HLD8APrtVRHkRvgkKiZw48gsLdiTXC3SS5kDLd2ka

Confirm the program is executable, upgrade authority is as listed above, and total tx count is live.

2. Pick any recent buy transaction

Look at the balance changes:

  • Verify the pot vault received ~95% of the buy amount
  • Verify reflection + house + carry accounts received their splits
  • Confirm no unexpected transfers

3. Find a VRF callback transaction

Filter transactions for instructions to both the RugPot program AND the Switchboard SRS program (RANDMo5gFnqnXJW5Z52KNmd24sAo95KAd5VbiCtq5Rh). The callback transaction will show: Switchboard call → RugPot callback → SOL transfer to winner. This is your full VRF-to-payout atomic sequence.

4. Verify a jackpot payout

Find a transaction where a large SOL amount transfers from the vault to a single wallet. Compare the transfer amount to the pot size shown in the round data at time of trigger — 95% of the pot should go to one wallet.

5. Check the winners page

See past winners with on-chain tx references → Every payout verified against actual Solana mainnet transactions.

See RugPot's live on-chain data →

Live at rugpot.io · Solana mainnet

The rug is the game — and the game is open source.

Every instruction is on-chain. Every fee split is in the program. Every winner is selected by a cryptographic proof from Switchboard's TEE oracle network.