Put Warrant Backing (USDC)
고지 사항: 이 백서는 영어 버전이 공식 문서입니다. 다른 언어 버전은 참고용입니다。
Overview
섹션 제목: “Overview”Put Warrants are backed by USDC stablecoins locked in smart contracts. This provides:
- Real-time verifiable reserves
- Instant settlement capability
- No counterparty risk
- Transparent collateral management
Architecture
섹션 제목: “Architecture”Smart Contract Vault
섹션 제목: “Smart Contract Vault”┌─────────────────────────────────────────────────────────────────┐│ PUT COLLATERAL VAULT │├─────────────────────────────────────────────────────────────────┤│ ││ ┌─────────────────────────────────────────────────────────┐ ││ │ PIPOPutVault.sol │ ││ │ ───────────────────────────────────────────────────── │ ││ │ │ ││ │ Deposits: │ ││ │ ├── Platform Pool: $2,000,000 USDC │ ││ │ ├── Writer A: $500,000 USDC │ ││ │ ├── Writer B: $300,000 USDC │ ││ │ └── Writer C: $400,000 USDC │ ││ │ │ ││ │ Total USDC Locked: $3,200,000 │ ││ │ Total Put Liability: $3,200,000 │ ││ │ Reserve Ratio: 100% │ ││ │ │ ││ │ Functions: │ ││ │ ├── deposit() → Lock USDC, mint Put tokens │ ││ │ ├── withdraw() → Burn tokens, unlock USDC │ ││ │ ├── settle() → Pay exercisers from vault │ ││ │ └── verify() → Public reserve verification │ ││ │ │ ││ └─────────────────────────────────────────────────────────┘ ││ ││ Contract Address: 0x... ││ Network: BSC / Base ││ Verified: Yes (Etherscan/BscScan) ││ │└─────────────────────────────────────────────────────────────────┘Collateralization Process
섹션 제목: “Collateralization Process”For Platform Pool
섹션 제목: “For Platform Pool”Platform Put Issuance:├── 1. Platform allocates USDC from treasury├── 2. USDC deposited to vault contract├── 3. Put warrant tokens minted├── 4. Tokens added to AMM pool└── 5. Trading begins
Ratio: 1:1 (100% collateral)For KYB Writers
섹션 제목: “For KYB Writers”Writer Put Issuance:├── 1. Writer completes KYB verification├── 2. Writer deposits USDC to vault├── 3. Specifies: underlying, strike, expiry├── 4. Put warrant tokens minted to writer├── 5. Writer sells tokens on AMM├── 6. Writer receives premium (USDC)└── 7. Collateral remains locked until expiry
Minimum: $50,000 per positionRatio: 100% of strike notionalUSDC as Collateral
섹션 제목: “USDC as Collateral”Why USDC?
섹션 제목: “Why USDC?”| Factor | USDC | Other Options |
|---|---|---|
| Stability | $1 peg | Volatile (ETH, BTC) |
| Liquidity | Very high | Varies |
| Redemption | 1:1 for USD | N/A |
| Custody | Self-custodied | Counterparty risk |
| Regulation | US regulated | Varies |
| Track Record | 5+ years | Varies |
USDC Risk Considerations
섹션 제목: “USDC Risk Considerations”USDC Risks and Mitigations:├── De-peg Risk│ ├── Mitigation: Monitor peg, pause if >1% deviation│ └── Historical: Brief de-peg in March 2023, recovered├── Regulatory Risk│ ├── Mitigation: Circle is US regulated, transparent│ └── Backup: Can support multiple stablecoins├── Smart Contract Risk│ ├── Mitigation: USDC contracts well-audited│ └── Insurance: Covered under protocol insurance└── Blacklist Risk ├── Mitigation: KYC all large writers └── Policy: Compliant operations onlySettlement Flow
섹션 제목: “Settlement Flow”Exercise Settlement
섹션 제목: “Exercise Settlement”┌─────────────────────────────────────────────────────────────────┐│ PUT EXERCISE SETTLEMENT │├─────────────────────────────────────────────────────────────────┤│ ││ 1. EXERCISE REQUEST ││ ┌─────────────────────────────────────────────────────────┐ ││ │ User: Submit exercise(amount) during window │ ││ │ ├── Put tokens locked │ ││ │ └── Exercise intent recorded │ ││ └─────────────────────────────────────────────────────────┘ ││ │ ││ ▼ ││ 2. PRICE FINALIZATION ││ ┌─────────────────────────────────────────────────────────┐ ││ │ Oracle: Publish settlement price │ ││ │ ├── Multi-source aggregation │ ││ │ └── Committee signature │ ││ └─────────────────────────────────────────────────────────┘ ││ │ ││ ▼ ││ 3. PAYOUT CALCULATION ││ ┌─────────────────────────────────────────────────────────┐ ││ │ Contract: Calculate payout │ ││ │ ├── payout = (strike - oracle) / strike × notional │ ││ │ ├── fee = payout × 1% │ ││ │ └── net = payout - fee │ ││ └─────────────────────────────────────────────────────────┘ ││ │ ││ ▼ ││ 4. DISTRIBUTION ││ ┌─────────────────────────────────────────────────────────┐ ││ │ Vault: Transfer USDC │ ││ │ ├── USDC sent to exerciser │ ││ │ ├── Put tokens burned │ ││ │ └── Writer's collateral reduced │ ││ └─────────────────────────────────────────────────────────┘ ││ │└─────────────────────────────────────────────────────────────────┘Writer Operations
섹션 제목: “Writer Operations”Deposit Flow
섹션 제목: “Deposit Flow”// Writer deposits USDC to write putsfunction deposit( address underlying, uint256 strike, uint256 expiry, uint256 amount // USDC amount = put notional) external { // Transfer USDC from writer to vault USDC.transferFrom(msg.sender, address(this), amount);
// Mint put warrant tokens to writer putToken.mint(msg.sender, amount);
// Record writer position positions[msg.sender][putToken] = Position({ collateral: amount, minted: amount, premium: 0 // Updated when sold });
emit Deposit(msg.sender, putToken, amount);}Withdrawal Flow
섹션 제목: “Withdrawal Flow”// Writer withdraws after expiry (if OTM)function withdraw(address putToken, uint256 amount) external { require(block.timestamp > putToken.expiry(), "Not expired"); require(!putToken.exercised(), "Exercised positions cannot withdraw");
// Writer must return put tokens putToken.transferFrom(msg.sender, address(this), amount); putToken.burn(amount);
// Release USDC collateral USDC.transfer(msg.sender, amount);
emit Withdrawal(msg.sender, putToken, amount);}Partial Exercise Handling
섹션 제목: “Partial Exercise Handling”Pro-Rata Settlement
섹션 제목: “Pro-Rata Settlement”Scenario: Multiple writers, partial pool exercise
Put Pool:├── Platform Pool: $2M (62.5%)├── Writer A: $0.5M (15.6%)├── Writer B: $0.3M (9.4%)└── Writer C: $0.4M (12.5%)Total: $3.2M
Total Exercise: $500K (15.6% of pool)
Settlement:├── Platform Pool pays: $500K × 62.5% = $312.5K├── Writer A pays: $500K × 15.6% = $78K├── Writer B pays: $500K × 9.4% = $47K└── Writer C pays: $500K × 12.5% = $62.5K
Each writer's collateral reduced proportionally.Real-Time Verification
섹션 제목: “Real-Time Verification”On-Chain Proof
섹션 제목: “On-Chain Proof”// Public function - anyone can verifyfunction verifyReserve(address putToken) external view returns ( uint256 required, uint256 held, bool sufficient) { required = putToken.totalSupply(); held = USDC.balanceOf(address(this)); sufficient = held >= required;}
// Detailed breakdownfunction getReserveDetails(address putToken) external view returns ( uint256 totalLiability, uint256 platformCollateral, uint256 writerCollateral, uint256 reserveRatio) { totalLiability = putToken.totalSupply(); platformCollateral = platformDeposits[putToken]; writerCollateral = totalWriterDeposits[putToken]; reserveRatio = (platformCollateral + writerCollateral) * 10000 / totalLiability;}Verification Interface
섹션 제목: “Verification Interface”┌─────────────────────────────────────────────────────────────────┐│ PUT RESERVE VERIFICATION │├─────────────────────────────────────────────────────────────────┤│ ││ Warrant: SPACEX-PUT-150B-Q42025 ││ Contract: 0x7a8...3f2 ││ ││ On-Chain Data: ││ ├── Total Supply: 1,000,000 PUT tokens ││ ├── Notional: $1 per token ││ ├── Total Liability: $1,000,000 ││ │ ││ ├── Vault USDC Balance: $1,000,000 ││ │ ├── Platform Pool: $700,000 ││ │ └── KYB Writers: $300,000 ││ │ ││ └── Reserve Ratio: 100.00% ✓ ││ ││ Verification: ✅ FULLY COLLATERALIZED ││ ││ Block: 15,234,567 ││ Timestamp: 2025-10-15 12:00:00 UTC ││ ││ [View on BscScan] [Verify Contract] ││ │└─────────────────────────────────────────────────────────────────┘Writer Dashboard
섹션 제목: “Writer Dashboard”Position Management
섹션 제목: “Position Management”┌─────────────────────────────────────────────────────────────────┐│ PUT WRITER POSITIONS │├─────────────────────────────────────────────────────────────────┤│ ││ Active Positions: ││ ││ ┌──────────────────────────────────────────────────────────┐ ││ │ SPACEX-PUT-150B-Q42025 │ ││ │ ├── Collateral Locked: $200,000 USDC │ ││ │ ├── Tokens Minted: 200,000 │ ││ │ ├── Tokens Sold: 180,000 (remaining: 20,000) │ ││ │ ├── Premium Received: $22,000 (11%) │ ││ │ ├── Current Status: OTM (SpaceX @ $185B) │ ││ │ ├── Days to Expiry: 75 │ ││ │ └── Actions: [Buyback] [View Details] │ ││ └──────────────────────────────────────────────────────────┘ ││ ││ Portfolio Summary: ││ ├── Total Collateral: $500,000 ││ ├── Total Premium: $45,000 ││ ├── Effective Yield: 9.0% ││ ├── Annualized: 18.0% ││ └── Max Potential Loss: $125,000 ││ ││ [Write New Put] [Withdraw Available] [Risk Report] ││ │└─────────────────────────────────────────────────────────────────┘API Reference
섹션 제목: “API Reference”Deposit Collateral
섹션 제목: “Deposit Collateral”const deposit = await pipo.depositPutCollateral({ underlying: 'SPACEX', strike: 150000000000, // $150B expiry: 'Q42025', amount: 200000 // $200K USDC});
// Response{ txHash: '0x...', putTokenAddress: '0x...SPACEX-PUT-150B-Q42025', tokensMinted: 200000, collateralLocked: 200000, vaultBalance: 1200000 // Total in vault after deposit}Verify Reserve
섹션 제목: “Verify Reserve”const reserve = await pipo.verifyPutReserve('SPACEX-PUT-150B-Q42025');
// Response{ warrant: 'SPACEX-PUT-150B-Q42025', totalSupply: 1000000, vaultBalance: 1000000, reserveRatio: 1.0, verified: true, breakdown: { platform: 700000, writers: 300000 }, blockNumber: 15234567}