THORChain Docs
DEVSNODES
  • Introduction
  • Using THORChain
    • Roles
      • Liquidity Providers (LPs)
      • Swappers
      • Arbitrageurs
      • Node Operators
    • RUNE
  • How It Works
    • Fees
    • Governance
    • Security
    • Incentive Pendulum
    • Emission Schedule
    • Constants and Mimir
    • THORChain Name Service
  • Ecosystem
  • Technology
    • Bifrost, TSS and Vaults
    • Midgard
    • Cosmos SDK
    • CosmWasm
    • IBC
    • THORChain & Cosmos
  • Frequently Asked Questions
    • Node Operators
    • Liquidity Providers
    • Asset Types
    • Savers
    • Lending
    • RUNEPool
  • THORChain Finance
    • Liquidity
    • Trade Assets
    • Secured Assets
    • TOR
    • RUNEPool
    • Synthetics
    • Savers
    • Lending
  • THORNodes
    • THORNode Overview
      • Node Operations
      • THORNode Stack
      • Risks, Costs and Rewards
    • Cluster Launcher
      • Setup - Linode
      • Setup - Azure
      • Setup - Hetzner Bare Metal
      • Setup - Google Cloud
      • Setup - HCloud
      • Setup - Digital Ocean
      • Setup - AWS
    • Deploying
    • Joining
    • Managing
    • Pooled THORNodes
    • Fullnode
      • Thornode - Kubernetes
      • Thornode - Linux
      • Thornode - Docker
      • Midgard - Linux
      • Midgard - Docker
      • Proxy Setup
    • Alerting
    • Leaving
    • 🛑Emergency Procedures
    • ✔️CHECKLIST
    • Multi-node Deployment
    • Developing
  • Website
  • Community Discord
  • Community Telegram
  • Developer Discord
Powered by GitBook
On this page
  • How does RUNEPool work?
  • How to track RUNEPool performance?
  • How to use RUNEPool?
  • How It Works
  • Sources
Export as PDF
  1. THORChain Finance

RUNEPool

How RUNEPool works, its use case, key components and how it enhances liquidity provision for RUNE holders

PreviousTORNextSynthetics

Last updated 9 months ago

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 , 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

  1. 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.

  2. 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.

  3. 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:

  • 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?

Adding to RUNEPool

  1. Create a Transaction: Use a MsgDeposit transaction with the memo pool+.

  2. RUNE Only: RUNEPool only works with RUNE.

  3. Instructions: For detailed steps, refer to the "Add to the RUNEPool" section in the documentation.

Withdrawing from RUNEPool

  1. Create a Transaction: Use a MsgDeposit transaction with the memo pool-:<basis-points>:<affiliate>:<affiliate-basis-points>.

  2. Minimum Term: You can only withdraw after the minimum term, defined by the RUNEPoolDepositMaturityBlocks configuration.

  3. Instructions: For detailed steps, refer to the "Withdraw from the RUNEPool" section in the documentation.

Viewing RUNEPool Holders

  1. All Holders: Use the rune_providers endpoint to see a list of all RUNEPool holders.

  2. 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

  1. Deposit: When you deposit, the balance moves to the runepool module.

  2. Pending Units: Units are added to PendingPoolUnits.

  3. Reserve Exit: The reserveExitRUNEPool function moves units from PendingPoolUnits to PoolUnits, reducing ReserveUnits.

Withdraw Process

  1. Pending Units Check: If PendingPoolUnits is insufficient, the reserveEnterRUNEPool function moves RUNE from the reserve to make up the difference.

  2. Reserve Increase: ReserveUnits are increased, and units move from PoolUnits to PendingPoolUnits.

  3. 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.

jsonCopy code{
  "pol": {
    "rune_deposited": "408589258319",
    "rune_withdrawn": "208496086616",
    "value": "206166561256",
    "pnl": "6073389553",
    "current_deposit": "200093171703"
  },
  "providers": {
    "units": "232440861",
    "pending_units": "0",
    "pending_rune": "0",
    "value": "319161454",
    "pnl": "56394430",
    "current_deposit": "262767024"
  },
  "reserve": {
    "units": "149915806863",
    "value": "205847399802",
    "pnl": "6016995123",
    "current_deposit": "199830404679"
  }
}

Individual Provider PnL: The /thorchain/rune_provider/{thor_addr} endpoint provides position information for a single provider.

jsonCopy code{
  "rune_address": "thor19phfqh3ce3nnjhh0cssn433nydq9shx76s8qgg",
  "units": "232440861",
  "value": "319161517",
  "pnl": "56394493",
  "deposit_amount": "3500000000",
  "withdraw_amount": "3237232976",
  "last_deposit_height": 14357483,
  "last_withdraw_height": 14358846
}

This guide should help you understand and utilize RUNEPool effectively. For more detailed instructions, refer to the respective sections in the documentation.

Sources

Dashboards continuously evolve as Thorchain expands, but taking the example of you will find the following in the dashboard:

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

Incentive Pendulum
thorchain.network/runepool
thorchain.net/thorfi/runepool
runescan.io/txs?type=runepool
Thorchain.network
dev.thorchain.org
dev.thorchain.org/concepts/rune-pool.html
RUNEPool Community Call
Original Issue
[ADD] RUNEPool MR
RUNEPool Implementation MR