Keep the principal.
Sell the yield.
STRIP separates one yield-bearing position into two independently transferable rights: the principal and the positive yield generated until maturity.
Overview
You keep the Principal Claim. You sell the next 90 days of positive yield for 150 USDG. The buyer now owns that yield until maturity.
The underlying assets are deposited into a named external yield source. STRIP holds the exact vault shares onchain, records the two owners independently, and redeems the complete position once at maturity.
STRIP does not manufacture yield, borrow against the deposit, use new deposits to fund old positions, or promise the original principal back. Every payout comes from the assets actually returned by the external vault.
Position lifecycle
A position can only move forward through a small state machine. Trading changes ownership of the Yield Right; it does not alter the vault shares or principal accounting.
Position state ∈ { Open, Settled, Merged }Settled ∧ Merged = falseSettled is the maturity path. Merged is the early-exit path when one wallet owns both rights. A position cannot enter both terminal states.
Principal
The Principal Claim is an ERC-721 that owns the principal side of settlement. Its token ID equals the position ID.
Cₚ(V) = min(P, V)P is the original deposit and V is the amount actually returned by redeeming every vault share. The payout is capped at P. If the vault returns less, the Principal owner receives the lower amount and bears the loss.
A 10,000 USDG position that redeems for 9,400 USDG pays 9,400 USDG to Principal and zero to Yield.
Yield Rights
The Yield Right is a second ERC-721 with the same token ID. It owns only the positive value above the original principal, after the realized-yield fee.
G(V) = max(V − P, 0)Cᵧ(V) = G(V) − floor(G(V) × fᵧ)The right can be transferred, sold at a fixed price, or sold through an English auction. The final owner at settlement receives Cᵧ(V). If V ≤ P, its payout is zero.
Settlement mathematics
All quantities are denominated in the same underlying asset. STRIP does not convert USDG into dollars and does not require a price oracle for settlement.
P- Original principal deposited.
S- Exact vault shares held by STRIP.
Vₜ- Previewed asset value of those shares at time
t. V- Actual assets received when the shares are redeemed.
fᵧ- Realized-yield fee rate. Launch value:
0.05. Q- Price paid to acquire the Yield Right.
Principal payout = min(P, V)The principal side receives all remaining value until it reaches the original deposit.Gross yield = max(V − P, 0)Losses never become a negative balance owed by the Yield owner.Yield fee = floor(Gross yield × fᵧ)Solidity integer arithmetic rounds the fee down to a raw asset unit.Net yield payout = Gross yield − Yield feeThe current Yield Right owner can claim this amount.Asset conservation
Every unit returned by the vault is assigned exactly once.
Principal payout + Net yield payout + Yield fee = VSettlement outcomes
Illustration for P = 10,000 USDG and fᵧ = 5%. Gas and marketplace purchase price are excluded.
Pricing a Yield Right
STRIP does not set a fair price. Sellers and bidders price the right to an uncertain future payoff. If a buyer pays Q, their realized result before gas is:
Buyer P&L = (1 − fᵧ) × max(V − P, 0) − QBuyer ROI = Buyer P&L / QBreak-even redemption value
V* = P + Q / (1 − fᵧ)For P = 10,000, Q = 150, and fᵧ = 5%, break-even requires approximately V* = 10,157.8947 USDG. That is a threshold, not a forecast.
Price as a principal ratio
Upfront yield price ratio = Q / PSimple annualized ratio = (Q / P) × (365 / D)With Q = 150, P = 10,000, and D = 90 days, the buyer pays 1.50% of principal upfront, equivalent to a simple annualized ratio of 6.083%. This is a market-price normalization only. It is not vault APY, expected return, or guaranteed profit.
Seller economics
Immediate seller proceeds = Q − floor(Q × fₘ)Seller exchanges uncertain Cᵧ(V) for certain proceeds at saleCreating a position
Choose USDG, Steakhouse USDG, an amount, and a maturity between one and 365 days. Approve USDG if necessary, then submit createPosition.
The exact underlying amount moves from the depositor to StripCore.
The whitelisted adapter deposits it and returns exact shares.
Principal, shares, source, creator, and maturity are stored.
Principal Claim and Yield Right are minted to the depositor.
Both NFTs use the same position ID. No backend approval or offchain signature creates ownership.
Selling yield
The Yield Right owner approves the marketplace and chooses a fixed price or an auction. The marketplace escrows the NFT, so a listing cannot become stale after an unrelated transfer.
A fixed-price seller can relist at a new price or cancel before maturity. An auction can be cancelled only while it has no bid.
Buying yield
A fixed-price buyer approves the position’s underlying asset and calls buy. Payment, marketplace fee, seller proceeds, and Yield Right transfer happen atomically.
Marketplace fee = floor(Q × fₘ)Seller proceeds = Q − Marketplace feeThe buyer becomes the onchain owner of the Yield Right immediately. The Principal Claim remains with its current owner.
Auctions
Auctions are ascending-price English auctions denominated in the position’s underlying asset. The seller chooses a reserve and an end time that must be at least 15 minutes away and strictly before maturity.
Bmin = R, when no bid existsBmin = B + max(floor(B × 0.01), 1 raw unit), otherwiseR is the reserve and B is the current highest bid. A bidder increasing their own bid transfers only the difference. When a different wallet takes the lead, the previous amount becomes a pull-based refund:
refund[asset][previousBidder] += previousBidOnce time expires, anyone can finalize. The winner receives the Yield Right and the seller receives the winning bid less the marketplace fee. If there was no bid, the NFT returns to the seller.
Settlement
At or after maturity, anyone can settle a position. The action zeroes the stored share balance, marks the position settled, redeems every share, and records final payouts. Reentrancy protection and state changes occur before payout transfers.
Sstored ← 0settled ← trueV ← adapter.redeem(S)(principalPayout, yieldPayout, fee) ← split(P, V)Principal and Yield owners claim separately. Either claim can trigger settlement first when the position is mature. Each successful claim burns its NFT and sets its claim flag before transferring assets.
Early exit
Before maturity, early exit is available only when the same wallet owns both NFTs. mergeAndExit burns both rights, redeems every share, and returns the exact assets received.
owner(Principal #i) = owner(Yield #i) = callerIf ownership is split, neither side can terminate the other side’s exposure. At maturity the settlement path replaces early exit.
Yield sources
V1 supports Steakhouse USDG on Morpho Vaults V2, an ERC-4626-compatible production vault over canonical USDG.
Sources are explicitly registered with their asset, vault, and adapter. Arbitrary target calls are impossible. Disabling a source prevents new deposits but does not change the settlement rights of existing positions.
STRIP changes ownership of cash flows. It does not improve vault solvency, collateral quality, curator behavior, or withdrawal liquidity.
Protocol fees
Charged only on a completed fixed-price sale or winning auction.
Contract hard cap: 2%Charged only on positive yield when the position settles.
Contract hard cap: 10%Fmarket = floor(Sale price × 50 / 10,000)Fyield = floor(Gross yield × 500 / 10,000)Launch rates are immutable in StripConfig. A Yield Right can incur both fees at different moments: the marketplace fee applies to its sale, while the yield fee applies only to positive realized yield.
$STRIP value capture
Eligible USDG fees accumulate in FeeCollector. Anyone can call buyAndBurn. The collector converts USDG to WETH through the verified 0.01% Uniswap V3 pool, unwraps WETH into native ETH, buys $STRIP through Pons V2, and sends the result directly to 0x0000…dEaD.
Revenue USDG → WETH → native ETH → Pons V2 → $STRIP → burnQoracle = floor(Revenue × 10³⁶ / MorphoPrice)minWETH = max(callerMin, 0.99 × poolQuote, 0.99 × Qoracle)Require: nativeSpent = WETHout and STRIPout ≥ callerMinSTRIPThe conversion has two independent 1% protections: one relative to the current pool quote and one relative to the production Morpho USDG/WETH oracle. This oracle is used only for protocol-revenue conversion; position settlement remains entirely oracle-free.
Before graduation, the ETH buys from the verified Pons bonding curve. After graduation, it uses the exact native-ETH Pons Uniswap V4 pool key. Curve purchases remain disabled while Pons’ recipient-specific opening tax is active.
The protocol token is bound once in canonical configuration. Initialization verifies that the token was created by the production Pons V2 factory and that its quote asset is native ETH. The address cannot later be replaced.
Contract system
Creates positions, holds vault shares, settles, claims, and merges.
ERC-721 ownership of the principal-side payout.
ERC-721 ownership of positive yield until maturity.
Escrowed fixed-price listings and English auctions.
Controls which exact sources accept new positions.
Permissionless Pons V2 purchases and irreversible burns.
Canonical addresses, immutable launch fees, one-time token binding.
There are no proxies, governance, multisig, insurance fund, or arbitrary external-call paths.
Protocol invariants
A position’s complete vault balance is redeemed together.
A settled or merged position can never settle again.
Claim flags and NFT burns prevent replay.
Payout authorization reads ERC-721 ownership at claim time.
Yield never becomes negative debt or a protocol liability.
Disabling a source affects new deposits only.
Production addresses
0x9EB7e7B5408b7fdDf53A69b357c3f163DB2A03dB0xCE09520624e38fC4872bCE8DA77630c63c5661830xA795c139bc8Aa96EBE2E9735B1d570075Ba2c3170x88679c2F3696bb894b2e8a55Bb4b38cE45EBB3360xb474fF5f856660865F4c913e0a4e982C88361a190xdB92191618AA4FBf372C2CCA32D4dCafB34FcBe60x59bDCE71aeE504Ffab5ABBB0f16897bfFAD82243Awaiting one-time binding0x5fc5360D0400a0Fd4f2af552ADD042D716F1d1680xBeEff033F34C046626B8D0A041844C5d1A5409dd0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD730x52e65B17fB6E5BA00Ed806f37Afcd2DaA50271Ca0xE994EcC2C3629F3faE3719F39c66681f173784E40x7eD598BcEf8bd9Edd8C97A195C6d13f40801EC7e0xE5e702641Ea86F4ae6cC3cDaeD2B886f976Be044Always verify an address on Blockscout before approving assets.
Risks
- Underlying source. Vault code, curators, collateral, markets, or liquidations can fail.
- Principal loss. The Principal Claim can return less than the amount deposited.
- Yield uncertainty. Realized yield can fall, be zero, or fail to cover the Yield Right’s purchase price.
- Auction exposure. A leading bid remains committed until outbid or finalization.
- Liquidity. Vault liquidity can delay or prevent redemption at a given moment.
- Smart contracts. STRIP and every integrated dependency carry implementation risk.
- Market liquidity. A listing or auction may receive no buyer. There is no insurance.
Developers
Contract views are canonical. Events provide deterministic discovery for positions, ownership transitions, marketplace activity, settlement, claims, fees, and burns.
PositionCreatedPositionSettledPrincipalClaimedYieldClaimedPositionMergedYieldRightListedYieldRightPurchasedYieldAuctionCreatedYieldAuctionBidYieldAuctionFinalizedProtocolFeeAccruedThe included indexer begins at the configured deployment block, scans logs in bounded chunks, waits 12 blocks before treating history as finalized, deduplicates by transaction hash and log position, and polls only recent ranges.
Read APIs
/api/markets/api/positions/[id]/api/activity/api/vaults/api/stats/api/portfolio/[owner]These routes improve speed and discovery only. They do not authorize transfers, determine ownership, or replace contract state.
