Yield stripping for tokenized stocks
Split a stock into its principal and its yield.
xStocks pay dividends by raising a multiplier on the token. Stripr turns that into a yield you can own and trade: strip a stock into PT, the claim on the share, and YT, which captures every multiplier increase - read on-chain, no oracle, no admin.
- Live markets
- Dividends paid
- Network
- Solana Mainnet
The claim on the share. Recombine with YT to redeem.
Earns every dividend while locked, or sell it for USDC.
Stripr at a glance
- Problem
- Tokenized stocks bundle price and income into one token. On-chain investors can’t hold, move or value a stock’s dividends on their own.
- Solution
- Strip each share into a Principal Token and a Yield Token, backed by stock in a program-owned vault. Locked YT earns every dividend, and holders can sell future dividends for USDC on-chain.
- How it’s built
- One Anchor 1.2 program with 12 instructions: PDA-owned vaults, O(1) dividend accounting that reads the xStocks multiplier, and a PT/YT offer book, plus a Next.js app.
- Status
- Live on Solana mainnet with the real AAPLx market, and on Devnet with five demo markets and order books. 19 end-to-end and 8 unit tests pass. Not yet audited.
The problem
Stocks came on-chain. Their income didn’t get its own market.
Tokenized equities are live on Solana, but each token is still an indivisible bundle of price exposure and dividend income.
Price and income are bundled
Owning a tokenized share means taking all of its price risk just to receive its dividends. There is no way to hold the cash flow on its own.
Dividends can’t be priced or traded
No on-chain instrument represents a stock’s future payouts, so yield can’t be bought, sold, hedged or built into other products.
On-chain dividends are silent
Tokenized stocks on Solana reflect dividends by raising a multiplier on the token (Token-2022 Scaled UI Amount). The value arrives blended into the price.
How it works
One stock in. Two tokens out. Dividends on autopilot.
Every step is a single Solana transaction, and every PT and YT is backed 1:1 by the stock held in the vault.
Strip the stock
Deposit AAPLx. The program holds it in a vault it controls and mints equal amounts of PT-AAPL and YT-AAPL to your wallet.
stripKeep, sell or earn
Keep YT locked to earn, or list it for USDC and get paid for future dividends today. Buyers fill listings on-chain and can lock in the same transaction.
create_offer · fill_offer · lock_ytA dividend lands
xStocks reinvest dividends by raising the token’s multiplier; Stripr passes that growth to locked YT as extra stock. Cash payouts are split the same way, in one transaction.
sync_multiplier · distribute_dividendClaim or redeem
Claim earned stock and USDC whenever you like. Return equal PT and YT to withdraw the stock; dividends you earned stay claimable.
claim · redeem
Try the math
What would a dividend pay you?
Each payout is split across locked YT in proportion to how much each position holds.
You receive
25.00USDC
Only locked YT earns. YT that isn’t locked when a dividend lands forfeits that payout to the holders who stayed locked.
The tokens
Two tokens, one share, zero ambiguity.
Stripping never creates value out of thin air. It separates what a share is worth from what a share pays.
Principal Token
PT-AAPL
- Represents
- The claim on the underlying share
- Earns
- No payouts; it carries the stock itself
- Redeems
- With equal YT, for the stock, any time
- Trade
- Standard SPL token; list it for USDC in the app
- Built for
- Holders who want the share without the income
Yield Token
YT-AAPL
- Represents
- The right to the share’s dividends
- Earns
- Reinvested dividends in the stock, plus cash payouts, while locked
- Redeems
- With equal PT, for the stock, any time
- Trade
- Standard SPL token; lock it to earn or sell it for USDC
- Built for
- Income investors and dividend traders
Who it’s for
Different investors want different parts of a share.
Stripr lets each side hold exactly the exposure it wants, from the same underlying stock.
Income investors
Want a stock’s dividends without paying for the whole share or riding its price swings.
With Stripr
Buy YT-AAPL from holders in the app for a fraction of the share price, lock it, and collect every dividend.
Long-term holders
Believe in the company, but would rather have cash now than small payouts over years.
With Stripr
Strip, keep PT-AAPL for the share, and sell the YT for USDC today. Selling future dividends takes one transaction.
DeFi builders
Need clean yield primitives for real-world assets.
With Stripr
Build on PT and YT: standard SPL tokens that AMMs, lending markets and structured products can integrate.
Under the hood
A single Anchor program, designed to be boring in the best way.
Every account is a PDA, every vault is program-owned, and every payout costs the same no matter how many people hold YT.
Accounts
One per stock. Stores the admin, the mints, the stock’s multiplier and both dividend indexes, and signs for every vault.
Deposited shares
Locked YT
USDC payouts
Principal tokens
Yield tokens
One per user and market: locked YT, plus earned and claimed cash and stock dividends.
One per listing: PT or YT for sale, its price and what’s left. Its own escrow holds the tokens.
Instructions
- Admin
initialize_marketCreates the market, PT and YT mints, and all three vaults.
- User
stripDeposits stock and mints equal PT + YT in share units.
- User
redeemBurns equal PT + YT and releases the stock.
- User
lock_ytMoves YT into escrow and starts earning.
- User
unlock_ytReturns YT; earned dividends stay claimable.
- Anyone
sync_multiplierPays reinvested dividends to locked YT when the stock’s multiplier rises.
- Admin
distribute_dividendDeposits a cash dividend and advances the dividend index.
- User
claim_stock_yieldPays out reinvested dividends in the stock.
- User
claim_yieldPays out cash dividends.
- Seller
create_offerEscrows PT or YT for sale at a fixed USDC price.
- Buyer
fill_offerBuys all or part of an offer at the price the buyer saw.
- Seller
cancel_offerReturns unsold tokens and closes the offer.
// distribute_dividend: one index update, whatever the holder countlet delta = amount * ACC_PRECISION / total_yt_locked;acc_dividend_per_yt += delta; // settle: what a position earned since its last updatelet accrued = yt_locked * acc_dividend_per_yt / ACC_PRECISION;if accrued > dividend_debt { unclaimed += accrued - dividend_debt; dividend_debt = accrued;}Simplified from programs/stripr/src/state.rs, which uses checked u128 math.
O(1) distribution
A dividend updates one cumulative index. There is no loop over holders, so cost stays flat as the holder base grows.
Solvent by construction
Accrual rounds down and debt rounds up, so total claims can never exceed deposits. Unit-tested across 200 rounds of uneven locks and payouts.
Always fully backed
PT and YT are only minted against stock in the vault, in share units at the stock’s multiplier, and must be burned together to release it.
Tight access control
Vaults, mints and offer escrows belong to program PDAs. Only the admin can pay cash dividends, only the seller can cancel an offer, and all arithmetic is checked.
Why Solana
Corporate actions need a chain where every holder is cheap to reach.
Dividends touch every holder of a stock. Solana makes that practical on-chain, and the tokenized stocks are already here.
What each xStock last paid
| Stock | Last dividend | Per share | ||
|---|---|---|---|---|
Issuers pay by raising each token's multiplier, so the dividend is visible on-chain and needs no oracle.
Payouts that scale with holders, not fees
A dividend reaches every locked YT through one index update in one transaction. With sub-cent fees, even small, frequent payouts are worth distributing.
Tokenized stocks already live here
Issuers like xStocks mint tokenized equities on Solana with Token-2022 extensions, so the assets Stripr is designed for are native to the chain.
Composable by default
Strip and lock settle atomically in a single transaction, and PT and YT are plain SPL tokens that wallets, DEXs and lending markets already understand.
Apple xStock
AAPLx · Xsb…JzJp
xStocks reinvest dividends by raising this multiplier. Stripr reads it on-chain and pays that growth to locked YT holders as extra stock.
Roadmap
From hackathon primitive to a market for stock yield.
What ships today, and what it takes to bring Stripr to real tokenized stocks on mainnet.
- Now01
Hackathon build
- Anchor program: strip, redeem, lock, unlock, distribute, claim
- O(1) pro-rata dividend index with unit-tested solvency
- Web app with wallet connect, live positions and admin payouts
- YT earns reinvested dividends from the xStocks Scaled UI Amount multiplier
- On-chain offer book to sell future dividends (YT) or principal (PT) for USDC
- End-to-end tests with a real AAPLx market and an xStock-like Token-2022 mint
- Devnet markets with on-chain analytics and a test-token faucet
- Network switch between Devnet and Mainnet in the app
- Deployed on Solana mainnet with the real AAPLx xStocks market
- Next02
More markets
- More mainnet markets (SPYx, NVDAx, TSLAx, MSFTx)
- Permissionless keeper that syncs multipliers when issuers update them
- Later03
Yield markets
- Maturity-dated PT and YT series
- PT/YT AMM with an implied dividend yield
- Independent security audit
FAQ
Questions, answered.
The short version of how Stripr works, what it guarantees, and what it doesn’t do yet.
What are PT and YT?
When you strip a stock, Stripr mints two SPL tokens in equal amounts. The Principal Token (PT) is the claim on the share itself. The Yield Token (YT) is the right to the share’s dividends. Together they always redeem for the original stock.
Is every token really backed?
Yes. Stripped stock sits in a vault owned by the market’s program address. PT and YT are minted only against deposits, one of each per share, and a PT and YT pair always redeems for one share of the stock. Only the reinvested surplus above that goes to YT holders.
Where do the dividends come from?
Two sources. xStocks reinvest dividends by raising the token’s Scaled UI Amount multiplier, so each vault needs fewer raw tokens to back the same shares. Stripr releases that surplus to locked YT as extra stock. Any cash payout, such as USDC deposited by the market admin, is split across locked YT too.
Can I sell my future dividends?
Yes. List your YT at a USDC price in the market’s Trade section; it sits in an on-chain escrow until someone buys it or you cancel. You keep your PT, and dividends your YT already earned stay claimable. Buyers can lock the YT they buy in the same transaction.
Do I need to lock YT to earn?
Yes. Only locked YT earns. The app can lock new YT in the same transaction as the strip, and you can unlock at any time. Anything already earned stays claimable after you unlock.
What if not all YT is locked?
Each dividend is split across locked YT only, so holders who stay locked receive a larger share of every payout.
Can I get my stock back?
Any time. Redeem equal amounts of PT and YT and the program releases the stock. If some of your YT is locked, the app unlocks it in the same transaction.
Are there protocol fees?
No. This version charges no protocol fees; you only pay Solana network fees.
Is Stripr on mainnet? Is it audited?
Yes. The program is deployed on Solana mainnet and the AAPLx market is open, with real xStocks and real USDC. Devnet stays one click away in the header if you’d rather try it with test tokens first. Stripr hasn’t been audited, so treat mainnet use as experimental and start small.
Strip your first stock in one transaction.
Connect a Solana wallet, deposit, and start earning from the next dividend.