lp-cardsrange maker cards for one coin
VALUE
24H
LIVE CARDS
PACKS RIPPED
VAULT
BURNED
packs

A pack rips when creator fees push the vault past pack cost. Five cards, one transaction, every draw recomputable from the chain.

THE RIP
RIPENTROPYCARDSVAULT

The program never rips on a schedule. It rips inside the same transaction that moved the vault across 2 SOL, which is always a trade. The entropy comes from the pool's reserves at that instant, the signature of the fill that crossed the line, and the hash of the slot. Anyone can take those three inputs, hash them, and see the same five draws the program saw.

RARITY TABLE
RARITYDRAW RANGESHAREBAND WIDTHWEIGHT
common0 to 3932160.00%±40%1
rare39322 to 5570525.00%±20%2
holo55706 to 6356912.00%±10%4
gem63570 to 652732.60%±4%8
shiny65274 to 655350.40%±10%4

The draw is a 16 bit number. The range it lands in sets the rarity, and the rarity sets everything the card is: how wide its band is, how much of the pack's 2 SOL it receives, and whether its fees compound or burn. Weight is the card's share of the pack: a pack's 2 SOL is split in proportion to the weights of its five cards, half kept as SOL and half swapped to the token in the rip transaction.

ENTROPY
pool reserves, u64 token and u64 sol
→ last fill signature, 64 bytes
→ slot hash of the rip slot, 32 bytes
→ sha256 → 32 bytes
→ card k takes bytes 2k, 2k+1 as u16

Reserves are read from the pool account, not reported by anyone. The fill signature is the signature of the transaction doing the rip. The slot hash is read from the slot hashes sysvar. The three are concatenated in that order and hashed once with sha256.

ALL RIPS
RIPSLOTENTROPYVAULT BEFOREVAULT AFTERDRAWSCARDS

A rip's vault after is its vault before minus 2 SOL. If they ever differ by anything else the program is wrong and the chain will show it.