Rollover & Calendar Spread
免責事項: このホワイトペーパーは英語版が正式な文書となります。他言語の翻訳は参照用です。
Overview
Section titled “Overview”Rollover allows users to extend their warrant exposure beyond the original expiry without liquidating and re-purchasing. Calendar Spread Swap is the underlying mechanism that prices this extension.
Why Rollover?
Section titled “Why Rollover?”User Problems Solved
Section titled “User Problems Solved”| Problem | Traditional Solution | PIPO Rollover |
|---|---|---|
| Thesis needs more time | Sell, rebuy (slippage, fees) | One-click extension |
| Expiry approaching OTM | Accept loss or average down | Roll to later expiry |
| Capital efficiency | Pay full premium again | Pay differential only |
| Tax optimization | Realize gain/loss | Defer recognition |
Example
Section titled “Example”Original Position:- 1,000 SPACEX-CALL-200B-Q42025- Cost basis: $0.35 per token- Current price: $0.40 (ITM)- Expiry: December 2025
User Situation:- Believes SpaceX will reach $200B but not by Q4 2025- Wants to extend to Q2 2026
Without Rollover:- Sell 1,000 tokens @ $0.40 = $400 (realize $50 profit)- Buy 1,000 Q2-2026 tokens @ $0.55 = $550- Net cost: $150 additional capital
With Rollover:- Execute rollover: Q42025 → Q22026- Pay differential: $0.55 - $0.40 + fees = $0.16 per token- Net cost: $160 (slightly higher due to fees, but no slippage)- No taxable event until final sale/exerciseCalendar Spread Swap Mechanism
Section titled “Calendar Spread Swap Mechanism”Pricing Formula
Section titled “Pricing Formula”Rollover Cost = (Far Price - Near Price) + Platform Fee + Time Value Adjustment
Where:- Far Price = Current AMM price of destination expiry- Near Price = Current AMM price of source expiry- Platform Fee = 1% of notional- Time Value Adjustment = Risk-free rate × time difference × notionalDetailed Formula
Section titled “Detailed Formula”Rollover Cost per Token = (P_far - P_near) + (r × Δt × N) + (f × N)
Where:P_far = Price of far-dated warrantP_near = Price of near-dated warrantr = Risk-free rate (5% annualized)Δt = Time difference in yearsN = Notional value per token ($1)f = Platform fee rate (1%)
Example:P_far = $0.55P_near = $0.40r = 5%Δt = 0.5 years (Q4 2025 → Q2 2026)N = $1f = 1%
Rollover Cost = ($0.55 - $0.40) + (0.05 × 0.5 × $1) + (0.01 × $1) = $0.15 + $0.025 + $0.01 = $0.185 per tokenRollover Types
Section titled “Rollover Types”1. Same-Strike Rollover
Section titled “1. Same-Strike Rollover”Most common: extend expiry while keeping same strike.
SPACEX-CALL-200B-Q42025 → SPACEX-CALL-200B-Q220262. Strike Adjustment Rollover
Section titled “2. Strike Adjustment Rollover”Roll to different strike while extending expiry.
SPACEX-CALL-200B-Q42025 → SPACEX-CALL-220B-Q22026Additional adjustment:
Strike Adjustment = (K_new - K_old) / K_old × Delta × Notional3. Partial Rollover
Section titled “3. Partial Rollover”Roll only a portion of the position.
Roll 500 of 1,000 tokens:- 500 tokens: Q42025 → Q22026- 500 tokens: Remain in Q42025User Interface
Section titled “User Interface”Rollover Dashboard
Section titled “Rollover Dashboard”┌─────────────────────────────────────────────────────────────────┐│ ROLLOVER CENTER │├─────────────────────────────────────────────────────────────────┤│ ││ Current Position: SPACEX-CALL-200B-Q42025 ││ ├── Holding: 1,000 tokens ││ ├── Current Price: $0.40 ││ ├── Days to Expiry: 45 ││ └── Status: Near expiry (rollover recommended) ││ ││ ═══════════════════════════════════════════════════════════ ││ ││ Rollover Options: ││ ││ ┌────────────────────────────────────────────────────────┐ ││ │ Destination: [Q1 2026 ▼] [Q2 2026] [Q3 2026] [Q4 2026] │ ││ └────────────────────────────────────────────────────────┘ ││ ││ ┌────────────────────────────────────────────────────────┐ ││ │ Strike: [$200B ▼] (same) [$180B] [$220B] │ ││ └────────────────────────────────────────────────────────┘ ││ ││ ┌────────────────────────────────────────────────────────┐ ││ │ Amount: [1,000] tokens (max: 1,000) │ ││ └────────────────────────────────────────────────────────┘ ││ ││ ───────────────────────────────────────────────────────── ││ Rollover Quote: ││ ├── Far Expiry Price: $0.55 ││ ├── Near Expiry Price: $0.40 ││ ├── Price Differential: $0.15 ││ ├── Time Value (5% × 0.25yr): $0.0125 ││ ├── Platform Fee (1%): $0.01 ││ ├── Total per Token: $0.1725 ││ └── Total Cost: $172.50 USDC ││ ───────────────────────────────────────────────────────── ││ ││ [Preview Transaction] [Execute Rollover] ││ │└─────────────────────────────────────────────────────────────────┘Rollover Process
Section titled “Rollover Process”Step-by-Step Flow
Section titled “Step-by-Step Flow”┌─────────────────────────────────────────────────────────────────┐│ ROLLOVER EXECUTION FLOW │├─────────────────────────────────────────────────────────────────┤│ ││ 1. User selects position to roll ││ │ ││ ▼ ││ 2. User chooses destination (expiry, strike) ││ │ ││ ▼ ││ 3. System calculates rollover cost ││ │ ││ ▼ ││ 4. User reviews and approves USDC spend ││ │ ││ ▼ ││ 5. Atomic transaction executes: ││ ├── a. Near-dated tokens sent to contract ││ ├── b. USDC payment processed ││ ├── c. Near-dated tokens burned ││ └── d. Far-dated tokens minted to user ││ │ ││ ▼ ││ 6. Confirmation displayed ││ ├── New position details ││ ├── Transaction hash ││ └── Updated portfolio view ││ │└─────────────────────────────────────────────────────────────────┘Pricing Transparency
Section titled “Pricing Transparency”Formula Display
Section titled “Formula Display”PIPO always shows the rollover pricing formula:
┌─────────────────────────────────────────────────────────────────┐│ PRICING BREAKDOWN │├─────────────────────────────────────────────────────────────────┤│ ││ Rollover: SPACEX-CALL-200B-Q42025 → Q22026 ││ ││ Component Formula Value ││ ────────────────────────────────────────────────────────── ││ Far Expiry Price AMM quote Q22026 $0.5500 ││ Near Expiry Price AMM quote Q42025 $0.4000 ││ ────────────────────────────────────────────────────────── ││ Price Differential (Far - Near) $0.1500 ││ ────────────────────────────────────────────────────────── ││ Time Value 5% × 0.5yr × $1.00 $0.0250 ││ Platform Fee 1% × $1.00 $0.0100 ││ ────────────────────────────────────────────────────────── ││ Total per Token $0.1850 ││ ────────────────────────────────────────────────────────── ││ Amount 1,000 tokens ││ ══════════════════════════════════════════════════════════ ││ TOTAL ROLLOVER COST $185.00 ││ │└─────────────────────────────────────────────────────────────────┘Calendar Spread Trading
Section titled “Calendar Spread Trading”For Advanced Users
Section titled “For Advanced Users”Beyond simple rollovers, sophisticated users can trade calendar spreads directly:
Calendar Spread = Long Far-Dated + Short Near-Dated
Position: Long Q22026-CALL, Short Q42025-CALL├── Profit if: Time value decay favors far-dated├── Risk: Near-dated moves against you faster└── Use case: Volatility arbitrage, term structure tradingSpread Order Book (Future)
Section titled “Spread Order Book (Future)”┌─────────────────────────────────────────────────────────────────┐│ CALENDAR SPREAD ORDER BOOK │├─────────────────────────────────────────────────────────────────┤│ ││ Spread: Q42025 / Q22026 SPACEX-CALL-200B ││ ││ BID (Buy Q22026, Sell Q42025) ASK (Sell Q22026, Buy Q42025)││ ───────────────────────────── ─────────────────────────────││ $0.14 × 500 $0.16 × 800 ││ $0.13 × 1,000 $0.17 × 500 ││ $0.12 × 2,000 $0.18 × 1,500 ││ ││ Mid: $0.15 | Spread: $0.02 (13%) ││ ││ [Place Spread Order] ││ │└─────────────────────────────────────────────────────────────────┘Rollover Restrictions
Section titled “Rollover Restrictions”When Rollover is NOT Available
Section titled “When Rollover is NOT Available”| Condition | Reason |
|---|---|
| During exercise window | Must choose exercise or hold |
| Position already ITM > 50% | High manipulation risk |
| Destination series doesn’t exist | Must wait for series launch |
| Insufficient liquidity | Slippage protection |
| User has pending exercise | Settle first |
Slippage Protection
Section titled “Slippage Protection”Max Slippage Settings├── Default: 2%├── User configurable: 0.5% - 5%└── Transaction reverts if exceededAPI Reference
Section titled “API Reference”Get Rollover Quote
Section titled “Get Rollover Quote”const quote = await pipo.getRolloverQuote({ sourceWarrant: '0x...SPACEX-CALL-200B-Q42025', destinationExpiry: 'Q22026', destinationStrike: 200000000000, // $200B amount: 1000});
// Response{ sourcePrice: 0.40, destinationPrice: 0.55, differential: 0.15, timeValue: 0.025, platformFee: 0.01, totalPerToken: 0.185, totalCost: 185.00, validUntil: '2025-10-15T12:00:00Z', // Quote valid for 5 minutes slippageEstimate: 0.5 // percent}Execute Rollover
Section titled “Execute Rollover”const tx = await pipo.executeRollover({ sourceWarrant: '0x...SPACEX-CALL-200B-Q42025', destinationExpiry: 'Q22026', amount: 1000, maxCost: 190.00, // Slippage protection deadline: Math.floor(Date.now() / 1000) + 300 // 5 minute deadline});
// Response{ txHash: '0x...', newWarrantAddress: '0x...SPACEX-CALL-200B-Q22026', tokensReceived: 1000, actualCost: 185.50, timestamp: '2025-10-15T12:01:30Z'}