Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/collinsville22/Sable/llms.txt

Use this file to discover all available pages before exploring further.

Staking

Direct WBTC staking into Vesu lending pools for base lending yield plus STRK rewards from the BTCFi Season incentive program.

Overview

Sable’s staking feature allows users to supply WBTC directly to Vesu lending pools and earn:
  • Base lending APY: Interest from borrowers
  • STRK rewards: 100M STRK BTCFi Season incentives
  • Auto-compounding: vToken balance grows automatically

Available Pools

PoolVesu Pool IDvTokenDescription
Vesu PRIME0x0451fe...c3b5vWBTC (0x04ecb0...f56c)Base WBTC lending pool. Highest liquidity.
Re7 xBTC0x03a841...8ecfvWBTC-Re7xBTC (0x0131cc...52a0)Endur staked BTC (xWBTC) lending pool. Higher yield from staking.

Pool Details

Pool Name: Vesu PRIME WBTCPool ID: 0x0451fe483d5921a2919ddd81d0de6696669bccdacd859f72a4fba7656b97c3b5vToken: 0x04ecb0a4c2c3e6f4e16a2ccf90db0497024bad7d3beaec832e0da8c7ce4714f56cAsset: WBTC (pure Bitcoin)Yield Sources:
  • Lending APY: 3-6% (variable, depends on utilization)
  • STRK rewards: ~2-4% APR
  • Total APY: ~5-10%
Risk: Low (single-asset lending, no leverage)
PRIME is the most liquid WBTC pool on StarkNet. Ideal for large deposits and quick withdrawals.

Staking Flow

1

Approve WBTC

User approves WBTC to Vesu Singleton contract:
WBTC.approve(VESU_SINGLETON, stake_amount)
Vesu Singleton: 0x000d8d6dfec4d33bfb6895de9f3852143a17c6f92fd2a21da3d6924d34870160
2

Supply to Pool

Call supply() on Vesu Singleton:
VesuSingleton.supply(
  pool_id,       // e.g., PRIME pool ID
  WBTC_ADDRESS,  // Asset to supply
  stake_amount   // Amount in sats (8 decimals)
)
You receive vTokens representing your staked position.
3

Earn Yield

vToken balance grows automatically as interest accrues:
Initial: 1.0 WBTC staked → 1.0 vWBTC
After 30 days at 8% APY: 1.00657 vWBTC
After 1 year at 8% APY: 1.08 vWBTC
You don’t need to claim rewards. vToken balance auto-compounds continuously.
4

Unstake (Withdraw)

Withdraw your WBTC by burning vTokens:
VesuSingleton.withdraw(
  pool_id,
  WBTC_ADDRESS,
  withdraw_amount  // Amount of WBTC to receive
)
vTokens are burned, you receive WBTC (more than you deposited).

vToken Mechanics

vTokens are interest-bearing receipt tokens that appreciate over time:
vToken Exchange Rate = Total Pool Assets / Total vToken Supply

Example (PRIME pool):
  Total WBTC in pool: 100 WBTC
  Total vWBTC supply: 95 vWBTC
  Exchange rate: 100 / 95 = 1.0526 WBTC per vWBTC
  
  If you hold 1 vWBTC:
    Redeemable: 1 × 1.0526 = 1.0526 WBTC

Why vToken Balance Grows

As borrowers pay interest, the pool’s total assets increase, but vToken supply stays constant:
Day 0:
  Pool assets: 100 WBTC
  vToken supply: 95 vWBTC
  Exchange rate: 1.0526

Day 30 (8% APY):
  Pool assets: 100.657 WBTC (interest accrued)
  vToken supply: 95 vWBTC (unchanged)
  Exchange rate: 1.0596
  
  Your 1 vWBTC now redeems for 1.0596 WBTC (+0.7%)

APY Breakdown

Lending APY Calculation

Base lending APY depends on pool utilization:
Utilization = Total Borrowed / Total Supplied

Borrow Rate (variable):
  • 0-60% util: 2-5% APR
  • 60-80% util: 5-10% APR
  • 80-100% util: 10-30% APR (steep curve)

Supply APY = Borrow Rate × Utilization

Example:
  Borrow rate: 8% APR
  Utilization: 70%
  Supply APY: 8% × 0.7 = 5.6%

STRK Rewards

BTCFi Season: 100M STRK distributed over 6 months to BTC liquidity providers on StarkNet. Allocation:
  • Vesu PRIME: ~40% of rewards pool
  • Re7 xBTC: ~30% of rewards pool
  • Other BTC pools: ~30%
Distribution:
  • Rewards accrue per block based on your % of pool TVL
  • Claimable weekly via Vesu frontend
  • Estimated 2-5% APR in STRK
STRK rewards are not included in vToken appreciation. You must claim separately on Vesu.

Pool TVL & Utilization

Typical Metrics:
TVL: $15-25M
Total Supplied: 150-250 WBTC
Total Borrowed: 80-150 WBTC
Utilization: 50-70%
Lending APY: 4-6%
STRK APR: 3-4%
Total APY: 7-10%

Stake vs Unstake

ActionFunctionEffect
Stakesupply()Deposit WBTC, receive vTokens
Unstakewithdraw()Burn vTokens, receive WBTC
Partial Unstakewithdraw(amount)Burn some vTokens, receive partial WBTC

Example Staking Journey

Action: Stake 1.0 WBTC into PRIME

Transaction:
  WBTC.approve(VESU_SINGLETON, 100_000_000)  // 1.0 WBTC
  VesuSingleton.supply(PRIME_POOL_ID, WBTC, 100_000_000)

Result:
  Received: 0.95 vWBTC (current exchange rate: 1.0526)
  WBTC balance: 0
  vWBTC balance: 0.95

Vesu Singleton Contract

Address: 0x000d8d6dfec4d33bfb6895de9f3852143a17c6f92fd2a21da3d6924d34870160 Key Functions:
// Supply asset to pool (stake)
fn supply(
    pool_id: felt252,
    asset: ContractAddress,
    amount: u256
);

// Withdraw asset from pool (unstake)
fn withdraw(
    pool_id: felt252,
    asset: ContractAddress,
    amount: u256
);

// View functions
fn balance_of(
    pool_id: felt252,
    asset: ContractAddress,
    user: ContractAddress
) -> u256;  // Returns vToken balance

fn total_assets(
    pool_id: felt252,
    asset: ContractAddress
) -> u256;

fn total_supply(
    pool_id: felt252,
    asset: ContractAddress
) -> u256;  // vToken supply

Comparing to Vault Deposits

FeatureStaking (Direct Vesu)Vault Deposits
Underlying AssetWBTC supplied to VesuWBTC deployed to multi-step strategies
Receipt TokenvWBTC (Vesu’s ERC-4626)yvBTC (Sable’s ERC-4626)
Yield SourceLending APY + STRKLending + Staking + LP + Leverage
APY Range5-10% (PRIME), 11-17% (Re7)8-25% (depends on vault)
RiskLow-MediumLow-High (depends on vault)
ComplexitySimple (1-step supply)Complex (multi-protocol strategies)
Withdraw TimeInstant (if liquidity available)May require flash loan unwind
Auto-CompoundYes (vToken appreciation)Yes (share price growth)
When to stake directly:
  • You want simplicity and lower risk
  • You need quick withdrawals
  • You prefer single-protocol exposure
When to use vaults:
  • You want maximum yield
  • You’re comfortable with leverage/LP strategies
  • You can tolerate multi-protocol risk

Liquidity & Withdrawals

Withdrawals depend on pool liquidity:
Pool Liquidity = Total Supplied - Total Borrowed

Example (PRIME pool):
  Total supplied: 200 WBTC
  Total borrowed: 120 WBTC
  Available liquidity: 80 WBTC
  
  You can withdraw up to 80 WBTC instantly.
  Larger withdrawals require waiting for borrowers to repay.
At very high utilization (>95%), withdrawals may be delayed until borrowers repay or new deposits arrive.

Risk Factors

  • Vesu protocol bug or exploit
  • Sable frontend bug (does not affect funds)
  • StarkNet consensus failure
Mitigation: Vesu is audited and battle-tested. TVL > $50M.

STRK Rewards Claiming

STRK rewards are distributed by Vesu, not Sable:
1

Visit Vesu App

Go to app.vesu.xyz and connect your wallet.
2

Check Claimable Rewards

Navigate to “Rewards” tab. View your accrued STRK from WBTC staking.
3

Claim STRK

Click “Claim” to receive STRK tokens to your wallet.
Claiming has gas costs. Wait until you have a meaningful amount (e.g., > $10) to claim.

Staking Pools Contract Addresses

Vesu PRIME

ComponentAddress
Pool ID0x0451fe483d5921a2919ddd81d0de6696669bccdacd859f72a4fba7656b97c3b5
vWBTC Token0x04ecb0a4c2c3e6f4e16a2ccf90db0497024bad7d3beaec832e0da8c7ce4714f56c
AssetWBTC (0x03fe2b97c1fd336e750087d68b9b867997fd64a2661ff3ca5a7c771641e8e7ac)

Re7 xBTC

ComponentAddress
Pool ID0x03a8416bf20d036df5b1cf3447630a2e1cb04685f6b0c3a70ed7fb1473548ecf
vWBTC-Re7xBTC Token0x0131cc2844c5c3e2c908edbf8eea85b8a2e5b0a52dcb8d1e8e5a0f5da6a752a0
AssetxWBTC (Endur)

Next Steps

Stake Your WBTC

Step-by-step guide to earning yield

Claim STRK Rewards

How to claim BTCFi Season rewards

Vesu Integration

Technical docs on Vesu pools

Compare to Vaults

Staking vs Vault deposits explained