bRUNE (Liquid Bonded RUNE)
bRUNE allows users to access THORChain node bonding through a liquid staking token, bRUNE. Instead of bonding RUNE directly to a node, users deposit RUNE into the bRUNE contract and receive bRUNE in return. Each bRUNE is always backed by at least 1 RUNE in the contract + unclaimed accrued yield. The contract bonds RUNE to a diversified set of THORChain nodes on the behalf of users and distributes the resulting bonding yield proportionally to bRUNE stakers.
Key Features
Simple access to RUNE yield: Bonding is the most profitable way to earn yield on RUNE, but traditionally requires direct coordination with node operators and minimum size commitment. bRUNE abstract this process away and allows anyone to stake any amount of RUNE in under a minute and earn a share of THORChain revenue.
Instant liquidity in and out: Bonding traditionally exposes users to long unbonding periods, with deposits and withdrawals depending on Nodes churning out, which can take time and comes at a cost for Node Operators. With bRUNE, users can enter and exit at any time through RUJI Trade.
Risk diversification: bRUNE automatically allocates RUNE across a wide number of nodes, mitigating the risk of loss of accrued rewards due to slashing in case of staking with a single node.
Fully integrated with Rujira stack: Under the hood, bRUNE is implemented as an AMM strategy and fully integrated with RUJI Trade. Deposits are executed as buy orders for bRUNE, while withdrawals are executed as sell orders back into RUNE. Pricing is determined by the utilization of bonded versus liquid RUNE in the contract and available liquidity in the bRUNE/RUNE pair.
Node Allocation
bRUNE bonds RUNE across a set of whitelisted THORChain nodes. During the initial testing phase, the whitelist is permissioned and managed by Rujira. Over time, this is expected to transition to a permissionless system where nodes can self-register.
RUNE deposits are distributed across whitelisted nodes with a target of equal allocation. Allocation is adjusted based on the node operator fee:
Nodes charging between 0% and the
min_node_feereceive equal allocation.Nodes charging above the
min_node_feereceive progressively lower allocation.
The min_node_fee parameter is currently set to 20%, preventing over-allocation to nodes with very low fees and discouraging a race to the bottom that could negatively affect node performance.
A max_bond parameter limits the amount of RUNE that can be allocated to any single node. During testing, this works in conjunction with the whitelist to cap total bonded RUNE. In the future, this will be replaced by a dynamic limit based on the THORChain bondHardCap, defined as the bonded RUNE of the lowest 67% of active nodes. Any RUNE bonded beyond this level does not generate additional rewards.
Utilization and Liquidity
To support instant withdrawals, the bRUNE contract does not bond 100% of deposited RUNE. Instead, it targets a utilization ratio (target_utilization), bonding only a portion of funds while keeping the remainder liquid.
Current target utilization (testing): 80%
Expected long-term target utilization: 90%
Because not all RUNE is bonded at all times, end-user yield is lower than direct node bonding, but users gain access to continuous liquidity and flexibility.
Yield and Fees
Bonding rewards originate from THORChain system income earned by node operators. Gross yield is reduced by several factors before reaching bRUNE holders:
Node operator commission
bRUNE protocol fee
Utilization ratio
Yield is distributed in RUNE to staked bRUNE holders. Users may choose to receive rewards as claimable RUNE or automatically compound them into additional staked bRUNE.
The bRUNE contract charges a 10% fee on bonding yield, collected as protocol revenue for Rujira.
Rewards are collected every time a node churn, and to smooth the APR, the collected rewards are distributed over the revenue_smear period, currently set to 7 days.
Example
Assume we have an average 25% gross yield for node operators, an average node commission of 10%, and a 90% target utilization ratio for the bRUNE contract.
From the 25% gross yield, 10% (= 2.5%) goes to nodes, leaving 22.5% yield to bonders.
With a target utilization of 90%, the bRUNE contract receives 90% of those 22.5%, or ~20.3%.
From those 20.3%, 10% (= ~2.0%) is collected by Rujira as protocol revenue.
The remaining ~18.3% yield is distributed in RUNE among staked bRUNE. Assuming 100% of bRUNE is staked, that means end users receive a net yield of ~18.3%.
Actual yield per bRUNE may vary depending on:
Average node commission: the higher, the lower the yield.
Utilization rate: the higher, the higher the yield but the lower the available liquidity for instant withdrawal.
Percentage of total bRUNE that is staked: the lower, the higher the yield for stakers.
Deposits, Withdrawals, and Secondary Use
Depositing RUNE happens in one of two ways:
When the bRUNE contract has capacity, RUNE is deposited directly to mint bRUNE at a 1:1 rate.
When the contract is full, bRUNE can be acquired from other users.
In both cases, the deposit or purchase happens by executing an order in the bRUNE/RUNE pair on RUJI Trade orderbook.
Once you hold bRUNE, it can be used in several ways:
Stake to earn the bonding yield, either paid out in RUNE or auto-compounded into more staked bRUNE.
Provide liquidity in the bRUNE/RUNE pair using Custom Concentrated Liquidity positions.
Withdrawals are executed by selling bRUNE back into RUNE. The execution price depends on contract utilization and the available liquidity in the bRUNE/RUNE pair.
Last updated
