Abstract
sBTC Options Vault is a decentralized DeFi protocol on the Stacks blockchain that enables Bitcoin holders to earn passive income through automated covered call option strategies. Inspired by Ribbon Finance (Ethereum) and Friktion (Solana), it brings this proven yield strategy to the Bitcoin ecosystem for the first time.
Users deposit sBTC and receive vault shares. Every 7-day epoch, covered call options are automatically created, and premiums collected from buyers generate yield for vault depositors. The entire process is managed by on-chain Clarity smart contracts.
Problem
Bitcoin, with its $1.7 trillion market cap, is the world's largest crypto asset. However, the vast majority of BTC holders simply "hodl" — yield opportunities are limited:
- ✗CeFi platforms (Celsius, BlockFi) carry insolvency risks
- ✗DeFi yield mostly exists in Ethereum/Solana ecosystems — limited for BTC
- ✗Wrapped BTC (wBTC) creates trust concerns and bridge risks
- ✗Staking is not possible with Bitcoin's PoW architecture
Bitcoin holders need transparent, on-chain yield mechanisms where they can put their assets to work in a trustless manner.
Solution: sBTC Options Vault
What is sBTC?
sBTC is a fully decentralized token that pegs Bitcoin 1:1 to the Stacks blockchain. It preserves Bitcoin's security guarantees while enabling interaction with smart contracts on Stacks.
Covered Call Strategy
The covered call is one of the most common and safest option strategies in traditional finance:
Scenario: BTC currently at $84,000
1. Vault depositors deposit sBTC
2. Protocol creates covered call options at $88,200 strike (5% OTM)
3. Buyers pay premium (e.g., 0.01 sBTC) per option
4. After 7 days:
BTC < $88,200 (OTM): Option expires worthless, vault keeps premium
BTC > $88,200 (ITM): Buyer receives payout, vault still keeps premium
Why 5% OTM? Statistically, the probability of BTC rising more than 5% in 7 days is low. This ensures vault depositors earn premium income in most epochs.
Epoch Lifecycle
Start
- Calculate strike price: Spot × 1.05 (5% OTM)
- Calculate premium: Black-Scholes model (IV: 80%)
- Create 100 option listings (batch TX)
Active (7 days)
- Buyers purchase options (premium flows to vault)
- Oracle updates BTC price every 10 minutes
Settlement
- Automatic settlement with oracle price
- OTM: Vault keeps all collateral + premiums
- ITM: Difference paid to buyers, vault keeps premiums
Next Epoch
- New epoch starts automatically
- Cycle repeats with fresh parameters
Technical Architecture
Smart Contracts (Clarity — Stacks)
| Contract | Purpose |
|---|---|
| vault-logic-v2 | Core logic: deposit, withdraw, epoch management, settlement, fees |
| vault-data-v1 | Data layer: shares, epochs, TVL — upgradeable architecture |
| options-market-v5 | Options marketplace: listings, purchases, payouts, batch operations |
| price-oracle-v2 | Multi-source BTC/USD oracle: staleness checks, tolerance bands |
| mock-sbtc | Test token (SIP-010): faucet mint of 1 sBTC (testnet phase) |
Contract Addresses (Stacks Mainnet)
Deployer:
SP387HJN7F2HR9KQ4250YGFCA4815T1F9X7N74C5W
Vault Mechanism
Deposit
shares = (amount × total_shares) / total_sbtc
User deposits sBTC, receives proportional vault shares
Withdraw
sbtc = (shares × total_sbtc) / total_shares
Shares are burned, proportional sBTC is returned
Withdrawal Protection: Max 25% of vault per 24-hour period — prevents flash-drain attacks.
Options Market v5
10,000
Max Listings
per epoch
100
Batch Size
per TX
Direct
Auto Premium
to vault
Auto
Expiry
cleanup
Upgradeable Architecture
Data Layer (Permanent)
vault-data-v1
user-shares, epochs
total-sbtc, total-shares
vault-paused, market-contract
Logic Layer (Upgradeable)
vault-logic-v2 (current)
deposit(), withdraw()
start-epoch(), settle()
emergency-settle()
Logic contract can be upgraded while preserving all user balances and epoch history
Price Oracle
CoinGecko
Source 1
Binance
Source 2
Kraken
Source 3
2%
Tolerance
max deviation
12 blk
Staleness
~2 hours
5
Submitters
capacity
$1K-$1M
Range
valid
Pricing Model
Black-Scholes Formula
Option premiums are calculated using the industry-standard Black-Scholes pricing model:
C = S · N(d1) - K · e-rT · N(d2)
S = Spot price (BTC/USD)
K = Strike price (S × 1.05)
T = Time to expiry (blocks → years, 10 min/block)
r = Risk-free rate (5% annual)
σ = Implied Volatility (80% default)
N() = Cumulative normal distribution (Abramowitz-Stegun approximation)
Example Calculation
* Actual APY depends on option sell-through rate and ITM/OTM outcomes.
Fee Structure
2%
Management Fee
Per epoch, calculated on total collateral
10%
Performance Fee
On earned premiums only
Example:
Collateral: 1.55 sBTC | Premium earned: 0.03 sBTC
Management: 1.55 × 0.02 = 0.031 sBTC
Performance: 0.03 × 0.10 = 0.003 sBTC
Total fees: 0.034 sBTC → Treasury
Security
Smart Contract Security
Withdrawal rate limiting
Max 25% withdrawal per 24h period
Vault pause mechanism
All operations can be halted in emergencies
Emergency settlement
Stuck epochs can be force-settled (owner-only, paused)
Oracle staleness check
Prices older than 12 blocks are rejected
Payout cap
Payouts never exceed vault balance (underflow protection)
Admin multisig
Multi-signature governance contract (deployed)
Zero-amount validation
Zero deposits/withdrawals/premiums are rejected
Oracle Security
3
Sources
independent
Median
Method
anti-manipulation
+/- 2%
Tolerance
band
5
Submitters
decentralization
User Guide (Testnet)
Test Phase — Risk Free
The protocol is currently in its testing phase. You can experience all features risk-free using mock sBTC tokens obtained from the faucet.
Launch AppGet sBTC from Faucet
- Connect your Stacks wallet (Leather or Xverse)
- Click the "Faucet" button in the header
- 1 mock sBTC will be minted to your wallet — completely free
- You can use it multiple times
Deposit to Vault
- Go to the "Deposit" tab on the dashboard
- Enter the amount of sBTC you want to deposit
- Confirm the transaction with "Deposit"
- Receive vault shares in return — share value grows as premiums are earned
Buy an Option
- Navigate to the "Options Market" page
- Browse available listings: Strike Price, Premium, Collateral, Expiry
- "Buy Option" — premium is paid from your wallet in sBTC
- Premium is automatically forwarded to the vault as yield
Settlement & Payout
- If ITM (BTC > Strike): Click "Claim Payout" to collect your profit
- If OTM (BTC < Strike): Option expires, premium stays in vault
Keeper Bot & Automation
The protocol runs 24/7 with 3 automated services:
Price Oracle
Every 10 min
- 3-source BTC/USD fetch
- Median calculation
- On-chain update if >2% change
Epoch Manager
Every 5 min
- Detect expired epochs
- Auto-settle with oracle
- Start new epoch + batch listings
Health Monitor
Every 5 min
- TVL change alerts (>10%)
- Oracle staleness check
- Keeper wallet balance watch
Technical Constants
| Parameter | Value |
|---|---|
| PRECISION | 10^8 (8 decimal) |
| PRICE-PRECISION | 10^6 (6 decimal) |
| Strike OTM | 5% |
| Epoch Duration | 1008 blocks |
| Management Fee | 2% (200 BPS) |
| Performance Fee | 10% (1000 BPS) |
| Max Withdrawal | 25% / 24h |
| Staleness Limit | 12 blocks |
| Oracle Tolerance | 2% (200 BPS) |
| Faucet Amount | 1 sBTC |
| Max Listings | 10,000 / epoch |
| Batch Size | 100 listings / TX |
| Default IV | 80% |
| Risk-free Rate | 5% |
Roadmap
Phase 1
Completed- ✓Core vault contract (deposit, withdraw, epoch management)
- ✓Price oracle (3-source, staleness-controlled)
- ✓Options marketplace (batch listing, buy, claim)
- ✓Frontend (Next.js 16, Tailwind 4, wallet integration)
- ✓Keeper bot (price, epoch, monitoring)
- ✓22 unit tests + Stacks mainnet deployment
Phase 2
Completed- ✓Data-logic separation (upgradeable architecture)
- ✓Withdrawal rate limiting + Emergency settlement
- ✓Multi-submitter oracle + Batch listing (100/TX)
- ✓Security hardening (CSP, rate limit, input validation)
- ✓SEO optimization (OG image, Twitter card, sitemap)
Phase 3
In Progress- Real sBTC integration (replacing mock)
- Governance token (DAO management)
- Insurance fund (user protection)
- Multi-asset vault support
- Automatic IV calculation with real market data
Phase 4
Planned- Cross-chain option bridges
- Exotic options (put, spread, straddle)
- DAO-governed strategy parameters
- Institutional-grade API
- Security audit (CertiK / Trail of Bits)
Comparison
| Feature | sBTC Vault | Ribbon | Friktion |
|---|---|---|---|
| Blockchain | Stacks (BTC L2) | Ethereum | Solana |
| Asset | sBTC (Bitcoin) | ETH, wBTC | SOL, BTC |
| Strategy | Covered Call | CC + Put | CC + Crab |
| Settlement | On-chain Oracle | Opyn | Pyth |
| Epoch | 7 days | 7 days | 7 days |
| Status | Testnet (Live) | Live -> Aeon | Closed |
| Fees | 2% + 10% | 2% + 10% | 2% + 10% |
Our Advantage: Native yield in Bitcoin's own ecosystem (Stacks) via sBTC. No bridge risk, no wrapping, Bitcoin finality.
Risk Disclosures
Smart contract risk
Contracts have not yet undergone an independent audit
Oracle risk
Price sources could be manipulated (3 sources + tolerance mitigates)
ITM risk
BTC price increase causes payout deduction from vault collateral
Test phase
Currently using mock sBTC — no real BTC risk
Network risks
Stacks network outages, high transaction fees
Liquidity risk
Low participation may result in unsold options
Important
This is an experimental DeFi protocol. Only use amounts you can afford to lose. This is not investment advice.
Start Exploring
sBTC Options Vault brings trustless, on-chain, automated yield to the Bitcoin ecosystem. The covered call strategy — one of traditional finance's safest option strategies — is now accessible to everyone on Stacks.