The whole mechanism, start to finish, with the numbers the program uses.
lp-cards is a token launched on pump.fun with its creator fee address set to a program derived vault. There is no team wallet in the loop. The program that owns the vault has no admin instruction, no pause, no parameter update. The constants on this page are compiled into it. The token's trading happens wherever pump.fun routes it; the cards quote into that same pool.
A card is a program account that owns two token accounts, one for SOL and one for the token, and a price band. The band is two prices, low and high, stored as 64.64 fixed point. Inside the band the card quotes. Outside it the card is silent. That is the whole identity of a card: a band and an inventory. The art on each card is drawn from those two things and from the fills it has taken, so no two cards look alike for long.
Creator fees accrue in the vault. The program checks the vault inside every fee event. When the balance is at or above 2 SOL the same transaction rips a pack. A pack is five cards. Each card's rarity comes from a draw, a 16 bit number cut out of a sha256 hash of three things the program reads from the chain at that instant: the pool's reserves, the signature of the fill that crossed the line, and the hash of the current slot. Card k uses bytes 2k and 2k+1. The draw ranges are fixed: common 60%, rare 25%, holo 12%, gem 2.6%, shiny 0.4%.
The pack's 2 SOL is split by weight. Common 1, rare 2, holo 4, gem 8, shiny 4. Each card receives weight over the sum of the pack's weights times 2 SOL. Half of that stays as SOL in the card's SOL account. Half is swapped into the token in the rip transaction and lands in the card's token account. The swap is a buy, so every rip is a buy of the token sized at 1 SOL.
Each card's band is centered on the price at the moment of the rip. Common is plus or minus 40%, rare 20%, holo 10%, gem 4%, shiny 10%. A wide band stays in play through big moves but quotes thinly. A tight band quotes densely and earns more spread per fill but is left behind by a move larger than its width. The rarity draw decides which trade off the card gets.
Cards do not post resting orders. On every fill in the pool whose price lands inside a card's band, the card leans. If the fill price is below the band's midpoint, the card buys. If above, it sells. The lean size is 200 basis points of the card's inventory on the side it is spending, capped so the card's own trade moves the pool by no more than 50 basis points. The lean happens in the same transaction as the fill through a hook the program registers with the pool. A card that leans is a buyer when the token is cheap inside its own band and a seller when it is dear. That difference, accumulated, is the card's realized gain.
Every fill inside the band increments the card's fill count. After every fill the program recomputes the card's grade: realized gain over seeded capital, clamped to a fifth, cut into nine steps and added to one. Grade one is a fresh card. Grade ten has captured 20% of its seed. Nothing about grade uses time.
At 25, 100 and 400 fills a card evolves. The band tightens around the current price by a factor of 0.75 per stage, so stage three is 0.42 of the original width. Inventory grows by half, paid half from the card's own realized gain and half from the vault. If the card has not earned its half or the vault cannot pay its half, the card is marked evolving and keeps quoting at its current stage until a later fill when both can pay. There is no deadline.
When price leaves a band entirely the card ends up holding only one side of its inventory, all SOL below the band or all token above it. It is out of play. It stops leaning. When two out of play cards of the same rarity exist, the next fill event in the pool fuses them: the program creates one new card of that rarity, stage equal to the higher of the two, band centered on the current price at that rarity's width, inventory equal to the sum. The two old cards are marked fused and point at the new one. The number of cards falls and the depth per card rises.
If a card's inventory, valued at the current price, falls below half of what it was seeded with, it is retired. Its remaining inventory is transferred to the live card of the same rarity with the highest grade, and if none is live, to the vault. The card is marked retired and keeps its final numbers in the binder forever.
A shiny is drawn 0.4% of the time. It has a holo width band and a holo weight, but its fees do not compound. Every lamport a shiny earns in spread accrues in its SOL account, and when that reaches 0.05 SOL the next fill event spends it buying the token in the pool and burning what it bought. Each burn is recorded with the ten highest graded holder cards at that moment. Shinies are the only way supply falls.
The twenty largest token accounts each get a mirror card that owns nothing. It shows the wallet's share of supply, the fills it has taken against cards, and a grade from share alone. Holder cards exist so the binder shows the people as well as the pool, and so burns can name them.
The site reads the vault account, every card account, every pack account and the event ring directly from the chain every second. Price comes from Birdeye every second. Value is price times circulating supply. The six hour chart loads once per visit. Nothing on the site is computed off chain except the holder cards, which are built from the twenty largest accounts the chain reports.
| FIELD | VALUE |
|---|---|
| pack cost | 2 SOL |
| cards per pack | 5 |
| lean | 200 bps |
| impact cap | 50 bps |
| evolution fills | 25, 100, 400 |
| band factor per stage | 0.75 |
| retirement line | 50% of seed |
| shiny burn threshold | 0.05 SOL |
| event ring | 256 |
| holder cards | 20 |
| RARITY | DRAW RANGE | SHARE | BAND WIDTH | WEIGHT |
|---|---|---|---|---|
| common | 0 to 39321 | 60.00% | ±40% | 1 |
| rare | 39322 to 55705 | 25.00% | ±20% | 2 |
| holo | 55706 to 63569 | 12.00% | ±10% | 4 |
| gem | 63570 to 65273 | 2.60% | ±4% | 8 |
| shiny | 65274 to 65535 | 0.40% | ±10% | 4 |