How it works
Ripstr is a gacha for NFTs. Someone lists an NFT and locks SOL behind it; someone else pays a price they can see in advance and gets a random one of those NFTs. Everything in between — the odds, the price, the payout, the fee split — is decided by on-chain rules that nobody can lean on mid-flight.
There are only two roles.
Depositors put an NFT into the pool and lock SOL behind it. That SOL is called the position's backing. It never leaves the depositor's control except in the two ways described below, and it is never lent, pooled, or spent on anyone else's position. In exchange, the depositor earns a share of every acquisition fee the pool collects for as long as their position stays in the pool.
Purchasers pay one price and receive one randomly selected NFT from the pool. They do not choose which one. What they do get to choose — after the draw — is whether to keep the NFT or hand it back for the SOL that was backing it.
The one rule that surprises everyone
More backing makes your NFT rarer, not more common.
A position's selection weight is the inverse of its backing:
weight = 10^24 / backing_lamports
Selection probability is weight / total_weight. So a position backed with 0.01 SOL is drawn a hundred times more often than one backed with 1.00 SOL. Backing is not a bid to be picked — it is the price you are asking, and the pool charges you rarity for asking more.
For example, in a pool of six listings backed between 0.01 and 0.80 SOL, the per-pull odds run from 54.812% on the cheapest position down to 0.685% on the most expensive — an 80× spread across an 80× spread in backing, exactly as the formula predicts.
This is the whole shape of the protocol. Everything else follows from it: the price is low because cheap positions dominate the draw, the cheap positions churn out fast, and the expensive positions sit in the pool collecting fees for a long time.
A pull, end to end
- You request an acquisition. The pool quotes an acquisition fee derived from the current pool composition, plus a fixed, nonrefundable oracle fee that pays for randomness. You can attach your own bounds — a maximum fee, a minimum pool value, a slippage tolerance — and the request reverts rather than settling outside them.
- A randomness request is committed. Ripstr uses Switchboard On-Demand with a commit-then-reveal flow. The commitment is created before any random value exists, and the set of positions your request can draw from is frozen at that moment.
- The queue advances in order. Requests settle strictly in the order they were created. Deposits made while requests are open wait in a first-in-first-out staging line, so nobody can reshape the pool an earlier request is drawing from.
- A position is selected. The revealed value is reduced modulo the total weight and used to descend a weight tree. The selected position is marked allocated to you and leaves the pool — after taking its own share of the fee your purchase just paid.
- You settle. You have 24 hours of exclusive choice: keep the NFT, keep it and relist it with your own backing, sell it back for 85% of its backing in SOL, or take that same value as $RIP. You can never walk away with both the NFT and the backing.
If randomness never arrives, or the price drifts outside your bounds, or the pool empties before your turn, the request refunds — as a credit you pull, not a push that can be blocked. The oracle fee is never refunded.
What each side is actually trading
A depositor is writing a standing bid. By backing an NFT with 0.4 SOL, they are saying: whoever draws this may hand it back to me for 85% of 0.4 SOL, and I'll take the NFT. Until that happens, they collect fees.
A purchaser is buying a lottery ticket whose expected value they can compute before signing. The acquisition fee is the harmonic mean of every backing in the pool, plus a 10% surcharge. It is dominated by the cheapest positions, which is also what they are most likely to draw.
Where the money goes
Every acquisition fee is split, in this order:
- a slice may be diverted to a $RIP buy allowance for the purchaser, sized by how long the pool has been quiet,
- 1% to protocol revenue,
- 5% of the remainder to the crown — the single highest-backed position in the pool,
- everything left is divided equally across every active position, regardless of size.
Equal split is deliberate. A big position does not earn more per pull; it earns more over time, because its low selection weight keeps it in the pool through many more pulls. Size buys duration, not rate.
Risks
Where to go next
- Positions & weighting — how backing sets your odds, and what backing is actually for.
- Pricing & allocation — how the price is computed, and how randomness is ordered.
- Settlement — the four things a purchaser can do with a draw.
- Fees & protocol revenue — who gets paid, and when.
- $RIP — supply, emissions, the market, and buybacks.
- Create a pool — anyone can deploy their own Ripstr pool.
- Deployments — the protocol's program addresses.