Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Maximizing Rewards with BTC: The Most Capital-Efficient Method
Staking allows BTC token holders, such as those who purchased BTC on an exchange or bridged to Botanix, to assign some or all of their tokens to specific validators. This process enhances the voting power of these same validators.
There are two ways to participate in staking: directly staking to a validator or delegating to a stake pool. In either scenario, delegators maintain control over their staked tokens.
Stake Pools <> Liquid Staking
On Botanix, stake pools consist of multiple validator nodes. By delegating to a stake pool, you can distribute your stake across numerous validators simultaneously. In return, you'll receive a liquid stake pool token (e.g., rovBTC) that can be immediately utilized in DeFi, providing instant liquidity.
Network Advantages
Stake pools contribute to the network's decentralization by spreading stake across various validator nodes. Each stake pool has distinct criteria and strategies for validator selection, with some pools requiring geographic decentralization and meeting specific performance standards for validators.
Instant Liquidity and DeFi
Liquid staking tokens gain utility from their ability to integrate with DeFi. RovBTC has partnered with key DeFi partners throughout Botanix, and we anticipate a wide range of integrations in the coming months. Learn more by visiting the ecosystem page.
Rover is a liquid staking protocol built on Botanix. Rover allows users on Botanix to participate in staking and earn yield on their Bitcoin, while remaining liquid via a Liquid Staking Token (LST) called rovBTC. Each rovBTC is fully 1:1 backed and redeemable for BTC. One of the key benefits of rovBTC is that it is liquid and can be traded and used on various decentralized exchanges and dAPPS. RovBTC can be used for trading, lending, to provide liquidity, or as collateral across DeFi applications on Botanix.
Rover is launching in two phases - the first phase is the points program, where users on Botanix can deposit their Bitcoin, receive rovBTC, earn native Bitcoin yield and points according to their pro-rata share of the total amount of deposited Bitcoin. The second phase of Rover's lunar mission is a migration to Proof of Stake (PoS). This will occur shortly after Botanix transitions to PoS itself. When this happens, the Bitcoin locked in Rover will be delegated to validators and start participating in the Botanix Proof of Stake.
RovBTC
is the main user-facing vault contract of the Rover protocol. It allows holders of native BTC, pBTC, or already-staked stBTC to deposit their assets and receive rovBTC – an ERC-4626 compliant receipt token that represents a share of the protocol's pooled collateral and its staking rewards.
Behind the scenes every deposit is converted into stBTC (a yield-bearing representation of pBTC) and kept inside the vault. As the underlying stBTC balance grows due to staking rewards, each rovBTC token becomes redeemable for an ever-growing amount of BTC.
This page explains the complete staking lifecycle, the fees that apply, and the roles that safeguard the contract.
depositBTC
The user sends native BTC (gas token) together with the call
BTC
depositPBTC
The user already holds pBTC
pBTC
depositStakedBTC
The user already holds stBTC
stBTC
Contract must not be paused.
assets
must be non-zero.
The desired deposit must not push the vault above maxDepositTVL
(if the limit is set).
BTC ⇒ pBTC – If the user sends native BTC the contract immediately wraps it into pBTC via pBTC.deposit{value: msg.value}()
.
pBTC ⇒ stBTC – pBTC is approved to the staking contract and staked with stBTC.deposit(assets, address(this))
.
stBTC direct – For depositStakedBTC
the user directly transfers stBTC to the vault, so only an ERC-20 transfer is required.
The amount of rovBTC minted equals the amount of stBTC shares the vault received (sharesReceived
). This keeps rovBTC perfectly aligned with the underlying stBTC position.
Users can leave the vault through three public functions:
withdraw
– burn enough rovBTC so that exactly assets
pBTC are returned.
redeem
– burn a specific amount of rovBTC shares and receive pBTC (amount determined by previewRedeem
).
redeemNativeBTC
– like redeem
but unwraps pBTC to native BTC and transfers it to receiver
.
Net assets are delivered to the user (pBTC
transfer or unwrap + native BTC transfer).
The protocol may charge a fee on staking gains – never on principal. The fee percentage is stored in rewardsFee
and can be changed by an account holding the RovBTC Admin role.
Deposit(caller, receiver, assets, shares)
– standard ERC-4626 deposit event.
Referral(caller, assets, referralId)
– emitted on each deposit function, carries an optional referral identifier.
RewardFeeCollected(gains, feeAmount)
– emitted whenever a withdrawal produces gains.
previewDeposit(assets)
– exact rovBTC a user will receive for assets
pBTC.
previewWithdraw(assets)
– shares required to receive exactly assets
pBTC (net of fee).
previewRedeem(shares)
– net pBTC the user will receive for redeeming shares
rovBTC.
calculateTVL()
/ totalAssets()
– expose the current total value locked (in pBTC terms).
BTC – Native Bitcoin on Botanix.
pBTC – Wrapped BTC ERC-20 token, 1:1 with native BTC.
stBTC – Staked BTC ERC-20 token accruing staking rewards.
rovBTC – ERC-4626 vault token representing a share of the Rover stake pool.
Rover: Secure, Audited, and Non-Custodial
Rover has undergone audits by three leading independent auditors, ensuring its security and reliability.
Liquid staking with rovBTC is non-custodial, meaning Rover has no access to the funds deposited into rovBTC. Even if Rover were to cease operations, holders would still be able to withdraw their BTC from validators, along with any accumulated staking rewards.
Rover is a liquid staking solution for BTC on Botanix developing in tandem with their roadmap. Phase 1 (Deposit) lets users mint rovBTC 1:1 backed by bridged BTC and earn Protocol Points. Phase 2 aligns with Botanix’s migration from Proof‑of‑Authority (PoA) to Proof‑of‑Stake (PoS), enabling delegation of the pooled BTC to validators so that rovBTC accrues native staking yield from transaction fees.
Stage 1 Rover deploys to mainnet with a one‑way bridge, real‑time monitoring dashboards, and an initial audit reports, setting the stage for staking integration.
Introduces the delegation module: pooled BTC is assigned to whitelisted validators, rewards are accounted for on‑chain, and rovBTC becomes an interest‑bearing token backed by the deposited BTC from stage 1. Stage 2 will be developed and released as Botanix matures from a proof of authority model, at launch, to their proof of stake model.
The Botanix EVM is fully equivalent with Ethereum or other EVM compatible chains. If you're familiar with using Ethereum mainnet, then the Botanix EVM will be the same except that everything will be denominated in BTC (gas fees etc).
Navigate here for a user guide: https://docs.botanixlabs.com/botanix/user-tutorials/overview
Network Name: Botanix
New RPC URL: rpc.botanixlabs.com
ChainID: 3637
Symbol: BTC
Explorer: https://botanixscan.io/
While Bitcoin has served as a store of value for many holders over the years, DeFi is unlocking its potential for much more. On Botanix, rovBTC is usable across the following protocols:
Arch is a decentralized exchange on Botanix that leverages concentrated liquidity and automated liquidity managers (ALMs) to create efficient, high-yield markets. On Arch, rovBTC can be traded or deployed into liquidity pools, especially against BTC, where ALMs help optimize fees and minimize rebalances for liquidity providers.
Dolomite is a decentralized lending and trading platform that supports advanced collateral management and seamless asset utility. Users can lend and borrow rovBTC on Dolomite, unlocking capital efficiency while still maintaining exposure to staked Bitcoin.
Palladium is a Bitcoin-native DeFi platform on Botanix that enables users to mint the censorship-resistant stablecoin pUSD by staking rovBTC as collateral. This integration allows Bitcoin holders to unlock interest-free liquidity while retaining exposure to their staked assets.
Bitzy is a decentralized exchange built on Botanix that offers fast and flexible trading. Users can instantly swap, trade, and provide liquidity with assets like rovBTC, benefiting from features such as AMM swaps, aggregation, and yield-boosted liquidity pools.
Artura is a decentralized perpetual exchange (DEX) built on Bitcoin Layer 2s like Botanix, offering synthetic trading with up to 150x leverage on assets such as memecoins, AI tokens, and Runes. Users can utilize rovBTC as collateral, provide it as liquidity, and engage in leveraged trading on rovBTC pairs, enabling capital-efficient exposure to Bitcoin-native assets.
GMX is a decentralized spot and perpetual exchange enabling users to trade cryptocurrencies like BTC, ETH, and AVAX with up to 100x leverage directly from their wallets. Integrating rovBTC allows users to trade Bitcoin-native assets with leverage, enhancing capital efficiency and expanding DeFi opportunities within the ecosystem.
BIMA is a decentralized yield platform offering permissionless access to institutional-grade investment strategies, all without selling your Bitcoin. By depositing rovBTC into BIMA vaults, users can tap into diverse strategies and high-yield opportunities.
Phase 2 will deploy as Botanix matures from Proof of Authority to Proof of Stake.
Points are determined using the following calculation
Points are accrued per block calculated as rovBTC / per block. For more information visit.
10% of all referred user's points (10% of points earned from staking, not points earned from referrals).
rovBTC is integrated throughout Botanix's DeFi ecosystem. Check here for our ecosystem list.
rovBTC is a reward-bearing BTC derivative that maintains a fixed token balance in your wallet while its value appreciates over time through an increasing exchange rate. As rewards accumulate, the rovBTC/BTC exchange rate gradually rises, reflecting the growing value of the underlying asset. When you choose to redeem your rovBTC, you’ll receive more BTC than your original deposit, making it a passively appreciating and capital-efficient asset.
No, purchasing rovBTC on the secondary market will not earn you staking rewards or points. The rewards and points system is specifically designed to encourage users to stake and then utilize rovBTC within the DeFi ecosystem.
rovBTC price feeds will be available via oracles on Botanix. We are currently in the process of setting up oracle feeds and will update this page when they are ready.
This section outlines all the fees associated with utilizing Rover. Understanding these fees is crucial for users to manage their interactions with the platform.
Rover charges a fee on staking rewards accrued at the time of withdrawal. The staking rewards fee is charged only on the net rewards accrued from the Botanix staking rewards, and will not reduce the principal capital deposited into the protocol.
Once Botanix develops further along it's roadmap and releases full PoS, Rover will delegate BTC stakes to validators who take a commission on all rewards.
Earn Points with Invite Codes
Existing users will be able to earn additional points through invite codes. When a friend signs up using your code, you will receive 10%, or 0.1 points, for every 1 BTC they stake. You can find your custom invite code on the stake page under "Your Referral Code" to see how many referrals you have accumulated and points earned.
Earning points and yield on your BTC has never been easier
Head over to the link below to start staking and walk through the following instructions
Steps
Add Botanix to your Metamask Wallet
Bridge BTC
Use Botanix Bridge to deposit BTC onto the chain
Confirm transaction and wait for block confirmations
Use your BTC for Gas fees and staking
Stake BTC or stBTC
Head to
Click the “Connect Wallet” button on the app and select your preferred wallet from the available options.
Click the “Stake Now” button to open the staking window, where you can either stake all of your Bitcoin by clicking the “MAX” button or enter a specific amount to stake.
Once confirmed, click the “STAKE BTC” button and wait for the transaction to complete.
Confirm your rovBTC Balance
Once your BTC is staked, you'll receive an equivalent amount of rovBTC. You can check if it’s been deposited to your account by clicking your wallet button on the top right, where it should reveal a dropdown window with your rovBTC balance shown.
rovBTC will appear in your EVM wallet (ERC-20 style)
You can now use it across the Botanix ecosystem and start earning BTC yield and Points
Unstake (Redeem BTC)
You can unstake your rovBTC back to Rover's contract whenever you want
Claim your original BTC + proportional rewards
A useful guide for bridging BTC derivatives into botanix and rover can be found :
The Rover Points Program is our way of recognizing and rewarding users who actively contribute to the protocol’s growth and stability.
Points are automatically calculated based on your onchain activity. Track your points here: https://www.roverstaking.com/leaderboard
You can earn them through the following actions:
Staking rovBTC
Earn points continuously while your rovBTC remains staked. The longer you stake, the more points you accumulate. (1x Multiplier)
Holding rovBTC
Simply holding rovBTC in your wallet earns you points over time. No interaction required — just hold and accrue points. (1x Multiplier)
Liquidity Provisioning
Supply rovBTC/BTC liquidity on Arch or Bitzy (2x Multiplier)
Supply rovBTC/pUSD liquidity on Arch or Bitzy (3x Multiplier)
Supply rovBTC/stBTC on GMX or Arch (2x Multiplier)
Lending Markets
Deposit rovBTC as collateral on Dolomite (2x Multiplier)
Collateralize
Collateralize pUSD with rovBTC on Palladium (2x Multiplier)
Supply Vault
Deposit rovBTC into Artura's vault (2X Multiplier)
Deposit rovBTC into Bima's vault (2X Multiplier)
Referrals
Earn Points with Invite Codes
Refer a user to rovBTC and earn a 10% bonus on your points (navigate here for more info)
Activity
Description
Multiplier
Staking rovBTC
Earn points continuously while staking.
1×
Holding rovBTC
Accrue points passively just by holding rovBTC in your wallet.
1×
rovBTC/BTC Liquidity (Arch or Bitzy)
Provide liquidity to rovBTC/BTC pools.
2×
rovBTC/pUSD Liquidity (Arch/ or Bitzy)
Provide liquidity to rovBTC/pUSD pools.
3×
rovBTC/stBTC Liquidity (GMX or Arch)
Supply liquidity to the rovBTC/stBTC pool on GMX.
2×
Lending on Dolomite
Depsoit rovBTC as collateral via Dolomite.
2×
Collateralizing pUSD (Palladium)
Use rovBTC to collateralize pUSD on Palladium.
2×
Artura Vault Deposit
Deposit rovBTC into Artura’s rovBTC vault to earn yield and points.
2×
Bima Vault Deposit
Deposit rovBTC into Bima's rovBTC vault to mint USBD.
2x
Referrals
Refer users using invite codes and earn a 10% point bonus from their activity.
—
This page gives a birds-eye view of how assets move through the Rover protocol — from Layer-1 Bitcoin all the way to rovBTC and back.
Bridging back to L1 is optional — users can also keep the unlocked BTC on Botanix.
User locks BTC in the Bridge on Layer-1.
The bridge mints the equivalent amount of Botanix native BTC (gas token).
All three flows converge on the same outcome: the vault ends up holding stBTC and the user receives rovBTC shares.
The stBTC balance inside the vault grows over time as staking rewards are harvested (stBTC.harvest()
). Consequently each rovBTC share becomes worth more pBTC/BTC.
User calls withdraw
, redeem
, or redeemNativeBTC
.
Vault redeems the required stBTC back to pBTC.
A fee on gains (if any) is transferred to rewardsFeeReceiver
.
Net pBTC is transferred, or unwrapped to native BTC, and optionally bridged back to L1.
Staking — Deep-dive into fees and calculations.
Third-Party Integrations — Code examples for front-end and on-chain use-cases.
Bitcoin L1
BTC
Native Bitcoin held by end-users
Botanix
Bridge
Locks / unlocks BTC on L1 and mints / burns wrapped BTC on Botanix
Botanix
pBTC (ERC-20)
1 : 1 wrapped BTC used inside EVM
Botanix
stBTC (ERC-20)
pBTC deposited into the staking pool earning protocol rewards
Botanix
RovBTC (ERC-4626)
Vault holding stBTC and issuing rovBTC shares
Native BTC
depositBTC
Vault wraps BTC → pBTC → stakes to stBTC, then mints rovBTC
pBTC
depositPBTC
Vault stakes pBTC to stBTC, then mints rovBTC
stBTC
depositStakedBTC
Vault pulls stBTC directly and mints rovBTC
Bridge
Bridge UI / SDK
Centralised exchanges, wallets
Wrap / Unwrap
pBTC.deposit
/ pBTC.withdraw
Wallets, bridges, aggregators
Stake / Unstake pBTC
stBTC.deposit
/ stBTC.redeem
Yield optimisers
Vault
RovBTC
(this repo)
Lending markets, portfolio trackers, treasuries
This guide is aimed at front-end and smart-contract developers that want to add rovBTC support to their dApps, dashboards or automated strategies.
All code samples use the Botanix test-net RPC and the ethers v6 library, but the same concepts apply to other stacks.
rovBTC (ERC-4626)
0x9BC574a6f1170e90D80826D86a6126d59198A3Ef
IRovBTC
pBTC (ERC-20)
0x0D2437F93Fed6EA64Ef01cCde385FB1263910C56
IPBTC
stBTC (ERC-20)
0xF4586028FFdA7Eca636864F80f8a3f2589E33795
ISTBTC
Replace the placeholders with the network-specific addresses published by the Rover team.
export const ROV_BTC = "0x…";
export const P_BTC = "0x…";
export const ST_BTC = "0x…";
import { Contract, JsonRpcProvider, parseUnits, formatUnits } from "ethers";
import { ROV_BTC } from "./const";
import rovBTCAbi from "./abi/rovBTC.json";
const provider = new JsonRpcProvider("https://testnet.botanix.io");
const rovBTC = new Contract(ROV_BTC, rovBTCAbi, provider);
export async function getUserInfo(user: string) {
const [shares, previewRedeem] = await Promise.all([
rovBTC.balanceOf(user),
rovBTC.previewRedeem(parseUnits("1", 18)) // 1 rovBTC → pBTC
]);
const tvl = await rovBTC.totalAssets();
return {
shares: formatUnits(shares, 18),
oneShareWorth: formatUnits(previewRedeem, 18),
tvl: formatUnits(tvl, 18)
};
}
The same helpers (
previewDeposit
,previewWithdraw
,calculateTVL
) are available and gas-cheap because they areview
functions.
import { BrowserProvider, parseUnits } from "ethers";
import rovBTCAbi from "./abi/rovBTC.json";
import { ROV_BTC } from "./const";
export async function depositNativeBTC(amountBtc: string, referralId = 0) {
const provider = new BrowserProvider(window.ethereum!);
const signer = await provider.getSigner();
const rovBTC = new Contract(ROV_BTC, rovBTCAbi, signer);
const tx = await rovBTC.depositBTC(
parseUnits(amountBtc, 18), // assets argument (pBTC precision)
await signer.getAddress(), // receiver
referralId,
{
value: parseUnits(amountBtc, 18) // msg.value = native BTC sent
}
);
await tx.wait();
}
import pBTCAbi from "./abi/pBTC.json";
import { P_BTC } from "./const";
export async function depositPBTC(amount: string, referralId = 0) {
const provider = new BrowserProvider(window.ethereum!);
const signer = await provider.getSigner();
// 1️⃣ Approve pBTC
const pBTC = new Contract(P_BTC, pBTCAbi, signer);
await (await pBTC.approve(ROV_BTC, parseUnits(amount, 18))).wait();
// 2️⃣ Deposit
const rovBTC = new Contract(ROV_BTC, rovBTCAbi, signer);
await (await rovBTC.depositPBTC(parseUnits(amount, 18), await signer.getAddress(), referralId)).wait();
}
import stBTCAbi from "./abi/stBTC.json";
import { ST_BTC } from "./const";
export async function depositStBTC(amount: string, referralId = 0) {
const provider = new BrowserProvider(window.ethereum!);
const signer = await provider.getSigner();
const stBTC = new Contract(ST_BTC, stBTCAbi, signer);
await (await stBTC.approve(ROV_BTC, parseUnits(amount, 18))).wait();
const rovBTC = new Contract(ROV_BTC, rovBTCAbi, signer);
await (await rovBTC.depositStakedBTC(parseUnits(amount, 18), await signer.getAddress(), referralId)).wait();
}
From your component you can call any of the above helpers depending on the asset type detected in the user's wallet.
Below is a TypeScript Hardhat script that periodically moves idle pBTC from a treasury address into the vault.
import { ethers } from "hardhat";
import rovBTCAbi from "../abi/rovBTC.json";
import pBTCAbi from "../abi/pBTC.json";
import { ROV_BTC, P_BTC } from "../const";
async function main() {
const signer = (await ethers.getSigners())[0]; // eg. Cold-wallet relayer
const pBTC = new ethers.Contract(P_BTC, pBTCAbi, signer);
const rovBTC = new ethers.Contract(ROV_BTC, rovBTCAbi, signer);
const amount = await pBTC.balanceOf(signer.address);
if (amount.isZero()) return console.log("Nothing to deposit");
await (await pBTC.approve(ROV_BTC, amount)).wait();
await (await rovBTC.depositPBTC(amount, signer.address, 0)).wait();
console.log(`Deposited ${ethers.formatUnits(amount, 18)} pBTC`);
}
main().catch(console.error);
Your contract can stake treasury assets or build strategies on top of rovBTC. Import the minimal interface and interact just like any ERC-4626.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
interface IRovBTC {
function depositPBTC(uint256 assets, address receiver, uint256 referralId) external returns (uint256 shares);
}
contract RovBTCTreasury {
address public immutable ROV_BTC;
constructor(address _rovBtc) {
ROV_BTC = _rovBtc;
}
// The contract must already hold pBTC (e.g. via fees)
function stake(uint256 amount) external {
IRovBTC(ROV_BTC).depositPBTC(amount, address(this), 0);
}
}
Because rovBTC follows the ERC-4626 token standard you can plug it into any yield aggregator that supports the interface without additional wrappers.
Need pBTC or stBTC to test your integration? Use the public faucet:
Visit https://faucet.botanix.io
.
Claim test BTC, swap it for pBTC at https://swap.botanix.io
.
Stake pBTC into stBTC at https://stake.botanix.io
(optional).
For technical questions join our Discord or open a GitHub discussion.