Skip to content

Instantly share code, notes, and snippets.

@Aboudjem
Last active March 30, 2026 08:07
Show Gist options
  • Select an option

  • Save Aboudjem/109a6eb8e073b05dbf47cf6b9ee8119c to your computer and use it in GitHub Desktop.

Select an option

Save Aboudjem/109a6eb8e073b05dbf47cf6b9ee8119c to your computer and use it in GitHub Desktop.
Integra PRD: 12-yield-splitter (HTML)
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1.0"><title>PRD: Yield Splitter</title><style>*{margin:0;padding:0;box-sizing:border-box}body{background:#0A0A1A;color:#E8E8F0;font-family:'Inter',system-ui,sans-serif;line-height:1.7}a{color:#00CEC9;text-decoration:none}a:hover{text-decoration:underline}.hero{padding:48px 32px 36px;border-bottom:1px solid #2A2A4A;background:linear-gradient(135deg,#0A0A1A 0%,#1A1040 50%,#0A0A1A 100%)}.hero h1{font-size:2rem;font-weight:800;color:#fff;margin-bottom:8px}.hero .meta{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.badge{display:inline-block;padding:4px 12px;border-radius:6px;font-size:12px;font-weight:700}.badge-owner{background:rgba(108,92,231,0.15);color:#A29BFE;border:1px solid rgba(108,92,231,0.3)}.badge-week{background:rgba(0,206,201,0.15);color:#00CEC9;border:1px solid rgba(0,206,201,0.3)}.badge-est{background:rgba(0,184,148,0.15);color:#00B894;border:1px solid rgba(0,184,148,0.3)}.container{max-width:900px;margin:0 auto;padding:32px 24px}.section{background:#12122A;border:1px solid #2A2A4A;border-radius:12px;padding:24px;margin-bottom:20px}.section h2{font-size:0.8rem;font-weight:700;color:#8888AA;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid #2A2A4A}.section h3{font-size:0.95rem;font-weight:600;color:#E8E8F0;margin:12px 0 6px}.section p{font-size:0.95rem;margin-bottom:8px}.section ul{list-style:none;padding:0}.section ul li{padding:6px 0 6px 20px;position:relative;font-size:0.95rem}.section ul li::before{content:'>';position:absolute;left:0;color:#A29BFE;font-weight:700;font-family:monospace}.section code{background:rgba(108,92,231,0.1);padding:2px 6px;border-radius:4px;font-size:0.88rem;color:#A29BFE}table{width:100%;border-collapse:collapse;font-size:0.9rem;margin:8px 0}th{text-align:left;padding:8px 12px;background:rgba(108,92,231,0.08);color:#A29BFE;font-size:0.75rem;text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid #2A2A4A}td{padding:8px 12px;border-bottom:1px solid rgba(42,42,74,0.5)}.checklist li::before{content:'\2610' !important;color:#8888AA !important;font-family:inherit !important}.back{display:inline-block;margin-bottom:16px;color:#8888AA;font-size:0.9rem}.footer{text-align:center;padding:24px;color:#555577;font-size:0.82rem;border-top:1px solid #2A2A4A;margin-top:32px}</style></head><body><div class="hero"><a class="back" href="https://gist.githack.com/Aboudjem/0af8c2ce9d5b62038a18eeff09603553/raw/integra-testnet-master-plan.html">&larr; Back to Master Plan</a><h1>Yield Splitter</h1><div class="meta"><span class="badge badge-owner">Nawar</span><span class="badge badge-week">Week 2-3</span><span class="badge badge-est">0.5-1d</span></div><p style="color:#8888AA;font-size:0.9rem">yield.integralayer.com</p></div><div class="container"><div class="section"><h2>Overview</h2><div class=""><p>Splits an IRWA token into two independently tradeable components: a Principal Token (PT) representing underlying asset ownership, and a Yield Token (YT) representing the future income stream. Speculators buy YT for leveraged yield exposure while conservative holders keep PT for stable value. This is Pendle-style yield splitting applied to real estate — a primitive that doesn't exist in traditional RE and unlocks an entirely new trading dimension on Integra.</p></div></div>
<div class="section"><h2>Features</h2><div class=""><ul><li><strong>Split Wizard</strong> — Step-by-step flow to split any owned IRWA token into matching PT + YT pair with clear explanations of each component</li></ul><ul><li><strong>Merge Back</strong> — Recombine matching PT + YT tokens back into the original IRWA token at any time</li></ul><ul><li><strong>Yield Accrual</strong> — YT holders accumulate income over time, claimable in IRL on demand</li></ul><ul><li><strong>Yield Distribution</strong> — Admin/oracle pushes simulated monthly yield (5% APY equivalent on testnet) to the contract for each asset</li></ul><ul><li><strong>PT/YT Marketplace</strong> — Dedicated page listing all available PT/YT pairs with current yield rates, prices, and liquidity depth</li></ul><ul><li><strong>Auto-Named Tokens</strong> — Each split mints new ERC-20 tokens named <code>PT-{AssetName}</code> and <code>YT-{AssetName}</code> for wallet clarity</li></ul><ul><li><strong>Accrued Yield Dashboard</strong> — View claimable yield per YT position with historical claim history</li></ul><ul><li><strong>DEX Liquidity Integration</strong> — PT and YT tokens automatically available for trading on the DEX and GOB</li></ul><ul><li><strong>Collateral Eligibility</strong> — PT tokens accepted as lending collateral with higher LTV than raw IRWA</li></ul><ul><li><strong>Event Log</strong> — All splits, merges, distributions, and claims emit on-chain events with full traceability</li></ul></div></div>
<div class="section"><h2>Functions</h2><div class=""><ul><li><code>split</code> — Burns IRWA tokens, mints equal amounts of PT + YT for the caller</li></ul><ul><li><code>merge</code> — Burns matching PT + YT, returns the original IRWA tokens</li></ul><ul><li><code>claimYield</code> — Claims accrued yield for a YT holder, paid out in IRL</li></ul><ul><li><code>distributeYield</code> — Admin/oracle pushes yield amount to the contract for a given IRWA asset</li></ul><ul><li><code>getAccruedYield</code> — Returns claimable yield for a specific YT token and holder address</li></ul><ul><li><code>getPTAddress</code> — Returns the PT token contract address for a given IRWA asset</li></ul><ul><li><code>getYTAddress</code> — Returns the YT token contract address for a given IRWA asset</li></ul></div></div>
<div class="section"><h2>User Flow</h2><div class=""><ul><li>Connect wallet via Web3Auth</li></ul><ul><li>Select an owned IRWA token from portfolio</li></ul><ul><li>Click "Split" and confirm the transaction</li></ul><ul><li>Receive 1 PT + 1 YT per IRWA token in wallet</li></ul><ul><li>Trade PT or YT on the DEX or GOB, or hold for yield</li></ul><ul><li>As a YT holder, claim accrued yield in IRL at any time</li></ul><ul><li>Optionally merge matching PT + YT back into the original IRWA token</li></ul></div></div>
<div class="section"><h2>Deliverables</h2><div class="checklist"><ul class="checklist"><li>YieldSplitter smart contract deployed on integra-testnet-1</li></ul><ul class="checklist"><li>PT and YT ERC-20 token pair creation per IRWA asset</li></ul><ul class="checklist"><li>Split wizard UI with PT vs. YT explanation</li></ul><ul class="checklist"><li>Merge interface for recombining tokens</li></ul><ul class="checklist"><li>Yield claim interface with accrual dashboard</li></ul><ul class="checklist"><li>PT/YT marketplace listing page with yield rates</li></ul><ul class="checklist"><li>Testnet yield simulation (monthly distribution cron)</li></ul><ul class="checklist"><li>On-chain event emissions for all actions</li></ul></div></div>
<div class="section"><h2>Integration Points</h2><div class=""><ul><li><strong>Depends on:</strong> IRWAToken.sol (reads/burns IRWA tokens), AssetPassport.sol (property metadata)</li></ul><ul><li><strong>Used by:</strong> DEX (spec #13) for PT/YT trading pairs, Lending app for PT collateral, Bonding Curve (spec #11) for YT launches, Liquidator (spec #32) for PT-collateralized positions</li></ul><ul><li><strong>Explorer:</strong> Integra Explorer</li></ul></div></div>
<div class="section"><h2>XP Rewards</h2><div class=""><table><thead><tr><th>Action</th><th>Points</th></tr></thead><tbody><tr><td>Split an IRWA token</td><td>30 XP</td></tr><tr><td>Merge PT + YT back</td><td>20 XP</td></tr><tr><td>Claim yield</td><td>10 XP per claim</td></tr><tr><td>Provide PT or YT liquidity on DEX</td><td>25 XP</td></tr><tr><td>First split of a new asset type</td><td>50 XP bonus</td></tr></tbody></table></div></div>
<div class="section"><h2>Success Metrics</h2><div class=""><table><thead><tr><th>Metric</th><th>Target</th></tr></thead><tbody><tr><td>Total IRWA tokens split</td><td>100+ in first month</td></tr><tr><td>Unique splitters</td><td>50+ wallets</td></tr><tr><td>Yield claims executed</td><td>200+ claims</td></tr><tr><td>PT/YT trading volume</td><td>10% of total DEX volume</td></tr><tr><td>Average time to first split (new user)</td><td>< 2 minutes</td></tr></tbody></table></div></div>
</div><div class="footer">Integra Testnet PRD — Yield Splitter — Chain: integra-testnet-1 (EVM 26218)</div></body></html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment