RUNEPool

Baseline concepts

There are some "baseline" facts to understand about RUNEPool:

  • RUNEPool is not the same as staking.
  • RUNEPool does not provide a "global APY".
  • There is no per-position breakdown of how much you've earned/lost over time; PnL (profits-and-loss) values are in real-time.
  • Every address participating in RUNEPool will have a different PnL, based on deposit time and pool performance since deposit(s).
  • As of August 2024, the "minimum deposit lock-up period" is 30 days, not 90. Official documentation has yet to be updated.

ELI5 economic model

A "ELI5" (explain-like-I'm-five) explanation of RUNEPool's earnings "model" is a common request in the THORSwap Discord. Here's a simple explanation, which assumes you are familiar with THORChain LPs:

RUNEPool's economic model can be thought of like an asymmetrical LP deposit of RUNE (i.e. highly dependent upon RUNE:asset price ratio), but with one distinct difference: RUNEPool exposes you to multiple pools, unlike a standard LP where you are exposed to a single asset/pool.

In reality, RUNEPool is more like a user holding multiple dual-sided LPs, with one for each pool that RUNEPool consists of. This is even covered in THORChain's Medium blog post.

Regarding yield and performance: generally speaking, when RUNE is performing well (USD value is up), a position's PnL will decrease (possibly negative). However, when RUNE is performing poorly (USD value is down), a position's PnL will increase.

Please note the emphasis on the phrase "generally speaking"; this description is not a guarantee. As said above, every position's PnL will vary based on deposit time (just like that of an LP).

Viewing your position

There are multiple UIs to view your RUNEPool position:

Viewing pools and metrics

There are multiple UIs examine pool metrics such as POL weight and LUVI, or just general RUNEPool information as an aggregate:

Determining withdrawal quantity

When withdrawing from RUNEPool, the only transaction seen on THORChain's blockchain is the withdrawal request itself. This comes in the form of a memo instructs THORChain to initiate the withdrawal, and (effectively) the percentage to withdraw (ex: POOL-:10000 means withdraw 100% from RUNEPool).

The actual quantity of RUNE returned to the user's wallet is not found on the blockchain (i.e. you will not find it on RuneScan), which poses a problem when using third-party services for tax or financial ledger purposes (ex. Koinly); THORChain simply adds to the user's wallet the relevant amount of RUNE.

So how do we determine what actual RUNE quantity was returned to a wallet?

To do this, we need the original withdrawal request transaction ID, as well as a "special" URL that can see within the internal THORChain accounting/ledger layer called Cosmos.

The URL is https://thornode-v2.ninerealms.com/cosmos/tx/v1beta1/txs/YOURTRANSACTIONID

This will return a JSON blob with various information. The amount is stored deep within nested sections:

  • tx_responselogseventsrune_pool_withdraw

Once you find rune_pool_withdraw, look for a key called rune_amount and its associated value. This number will be in 1e8 format (i.e. 10^8), so you will need to do some basic math to turn it into actual RUNE quantity. Two examples:

  • 77266305 → 77266305 / 10^8 → 0.77266305 RUNE
  • 7551111378 → 7551111378 / 10^8 → 75.51111378 RUNE

References

The official THORSwap and THORChain RUNEPool documentation is quite good. We urge people considering contributing to RUNEPool to read (not skim!) these resources: