RUNEPool
How RUNEPool works, its use case, key components and how it enhances liquidity provision for RUNE holders
RUNEPool is a feature of THORChain that allows RUNE holders to join the Protocol Owned Liquidity (POL). By buying into the liquidity pool through RUNEPool, users get a share of the liquidity that Thorchain owns across all its pools. This participation helps users earn Annual Percentage Rate (APR) returns and improves the efficiency of the protocol's liquidity, supporting the growth of Thorchain's network.
How does RUNEPool work?
RUNEPool dynamically matches external capital with various pools in the system. Managing 13 different pools, each on its price curve, RUNEPool aggregates and distributes RUNE across these pools. By using the Incentive Pendulum, RUNEPool smoothens out price curves, reducing volatility and making Thorchain products more attractive to investors.
Use Case
RUNEPool offers a single product to gather idle RUNE from centralized exchanges and custodial services, moving them into Thorchain's decentralized infrastructure to generate yield. This enhances the productivity of these assets and builds up POL through community participation.
Benefits
Adding RUNE to RUNEPool abstracts away user experience complexities, focusing on the Incentive Pendulum and fees generated from the pools. RUNEPool allocates funds based on the yield, simplifying decision-making for users.
Key Components
PoL-Enabled Pools: POL-Enabled pools are defined via the mimir key POL-{Asset}. Currently, all (eight) native assets and five USD stable coins are enabled for POL. The exact list is within the mimir endpoint.
RUNEPool Units (RPU): Ownership in RUNEPool is tracked through RUNEPool Units (RPU). These units represent a Pooler’s share in the pool. When a Pooler redeems their units, the total PoL size in RUNE is assessed, and the holder's share is distributed.
Impermanent Loss Management (IL): Users experience aggregate IL across PoL-Enabled pools, reducing the risk compared to any single pool.
How to track RUNEPool performance?
There are multiple dashboards to track the performance of RUNE added to the RUNEPool:
Dashboards continuously evolve as Thorchain expands, but taking the example of Thorchain.network you will find the following in the dashboard:
Provider: The wallet that provided the RUNE
Deposit: How much RUNE was provided by the provider
Value: How much RUNE is currently possible to withdraw from the RUNEPool by a particular wallet.
PnL: The difference between the Value and Deposit is the profit that a provider has made by adding RUNE to the RUNEPool
Latest Deposit: Block # when the last deposit was made by the provider
Lastet Withdrawal: Block # when the last withdrawal was made by the provider
Withdrawn: How much RUNE was withdrawn by the provider
How to use RUNEPool?
This section provides a simple guide on how to use RUNEPool, including adding and withdrawing from the pool, and viewing your position. You can find full technical docs under dev.thorchain.org
Adding to RUNEPool
Create a Transaction: Use a
MsgDeposit
transaction with the memopool+
.RUNE Only: RUNEPool only works with RUNE.
Instructions: For detailed steps, refer to the "Add to the RUNEPool" section in the documentation.
Withdrawing from RUNEPool
Create a Transaction: Use a
MsgDeposit
transaction with the memopool-:<basis-points>:<affiliate>:<affiliate-basis-points>
.Minimum Term: You can only withdraw after the minimum term, defined by the
RUNEPoolDepositMaturityBlocks
configuration.Instructions: For detailed steps, refer to the "Withdraw from the RUNEPool" section in the documentation.
Viewing RUNEPool Holders
All Holders: Use the
rune_providers
endpoint to see a list of all RUNEPool holders.Specific Holder: Use the
rune_providers/{thor owner address}
endpoint to view the position of a specific RUNEPool holder.
How It Works
PoL-Enabled Pools
Enabled Assets: POL is enabled for all eight native assets and five USD stable coins. The exact list can be found in the
mimir
endpoint.
RUNEPool Units (RPU)
Ownership Tracking: RUNEPool Units (RPU) represent your share in the pool.
Redemption: When you redeem your units, you receive a share of the total POL size in RUNE.
Deposit Process
Deposit: When you deposit, the balance moves to the
runepool
module.Pending Units: Units are added to
PendingPoolUnits
.Reserve Exit: The
reserveExitRUNEPool
function moves units fromPendingPoolUnits
toPoolUnits
, reducingReserveUnits
.
Withdraw Process
Pending Units Check: If
PendingPoolUnits
is insufficient, thereserveEnterRUNEPool
function moves RUNE from the reserve to make up the difference.Reserve Increase:
ReserveUnits
are increased, and units move fromPoolUnits
toPendingPoolUnits
.Withdraw Limit: Withdrawals that would exceed
POLMaxNetworkDeposit + RUNEPoolMaxReserveBackstop
are not allowed.
Impermanent Loss Management
Aggregate IL: Users experience aggregate impermanent loss across all PoL-enabled pools, reducing individual pool risks.
Idle RUNE: Undeployed RUNE reduces yield but also limits exposure to impermanent loss.
Showing Profit and Loss (PnL)
Global PnL: The /thorchain/runepool
endpoint returns the global PnL of RUNEPool, including details for the reserve and independent providers.
Individual Provider PnL: The /thorchain/rune_provider/{thor_addr}
endpoint provides position information for a single provider.
This guide should help you understand and utilize RUNEPool effectively. For more detailed instructions, refer to the respective sections in the documentation.
Sources
Last updated