Stripr

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
Mainnet
AAPL
Tokenized stock · pays dividends
Deposit
PT-AAPL
Principal

The claim on the share. Recombine with YT to redeem.

YT-AAPL
Yield

Earns every dividend while locked, or sell it for USDC.

Dividend declaredPaid to locked YT
Fig. 1 Depositing AAPL mints PT-AAPL and YT-AAPL; every dividend the issuer pays goes to whoever holds the locked YT.

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.

ExposureTodayAll or nothing: price and dividends come togetherStriprChoose the share (PT), the dividends (YT), or both
IncomeTodayBlended into the token priceStriprAccrues to locked YT and is claimable as stock or USDC
OwnershipTodaySell the share to give up the incomeStriprSell YT for USDC and keep the share through PT

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.

  1. 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.

    strip
  2. Keep, 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_yt
  3. A 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_dividend
  4. Claim 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

Your share of locked YT1%
Paid per locked YT0.25 USDC

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.

1 AAPL=1 PT-AAPL+1 YT-AAPL

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

Market["market", stock_mint]

One per stock. Stores the admin, the mints, the stock’s multiplier and both dividend indexes, and signs for every vault.

owns
Stock vault

Deposited shares

YT escrow

Locked YT

Dividend vault

USDC payouts

mint authority
PT mint

Principal tokens

YT mint

Yield tokens

YieldPosition["position", market, user]

One per user and market: locked YT, plus earned and claimed cash and stock dividends.

Offer["offer", market, seller, id]

One per listing: PT or YT for sale, its price and what’s left. Its own escrow holds the tokens.

Instructions

  • initialize_market

    Creates the market, PT and YT mints, and all three vaults.

    Admin
  • strip

    Deposits stock and mints equal PT + YT in share units.

    User
  • redeem

    Burns equal PT + YT and releases the stock.

    User
  • lock_yt

    Moves YT into escrow and starts earning.

    User
  • unlock_yt

    Returns YT; earned dividends stay claimable.

    User
  • sync_multiplier

    Pays reinvested dividends to locked YT when the stock’s multiplier rises.

    Anyone
  • distribute_dividend

    Deposits a cash dividend and advances the dividend index.

    Admin
  • claim_stock_yield

    Pays out reinvested dividends in the stock.

    User
  • claim_yield

    Pays out cash dividends.

    User
  • create_offer

    Escrows PT or YT for sale at a fixed USDC price.

    Seller
  • fill_offer

    Buys all or part of an offer at the price the buyer saw.

    Buyer
  • cancel_offer

    Returns unsold tokens and closes the offer.

    Seller
Dividend accountingstate.rs
// 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.

Live from Solana mainnet

What each xStock last paid

Verify on explorer
Each xStock's most recent dividend, read from its Token-2022 Scaled UI Amount multiplier on Solana mainnet.
StockLast dividendPer 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.

Live from Solana mainnetExplorer

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.

  1. 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
  2. Next02

    More markets

    • More mainnet markets (SPYx, NVDAx, TSLAx, MSFTx)
    • Permissionless keeper that syncs multipliers when issuers update them
  3. 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.