Redemption price oracle
The oracle allows you to get the latest ratio and calculate the Redemption Price by one of the formulas mentioned in the Redemption Price explanation.
Although, technically, it isn't a separate oracle contract but a method from Liquid Staking token contracts, we chose to present it as such, as logically it can be perceived as a service, and also for better discoverability.
What is Redemption Price?
The Redemption Price defines the exact amount of assets that a user will get if they redeem their Liquid Staking tokens, after waiting its respective unbonding period. It also defines the amount of Liquid Staking tokens (LSTs) they receive when staking their assets on the Ankr platform.
The formula is:
original_asset = liquid_staking_token / ratio
when the user unstakes their assets. This is why the user gets more assets than the number of the redeemed Liquid Staking tokens.liquid_staking_token = original_asset * ratio
when the user stakes their assets. This is why the user gets less Liquid Staking tokens than the number of the staked assets.
All this is due to Liquid Staking tokens increasing in value overtime to the originally staked assets, which happens because ratio = supply / (TVL + rewards * (1-fee))
. For example, ETH ratio = supply / (TVL + rewards * 0.9)
.
Ankr's Redemption Price should be considered as the primary market, and market prices on Exchanges should be perceived as the second market.
Redemption price
To get the Redemption Price for an LST, use the rateProvider
contracts:
- ankrAVAX on Avalanche (opens in a new tab) (0xd70c8aac058e6dafe3446f78091325f9e29bcee4)
- ankrETH on Arbitrum (opens in a new tab) (0xFC8d81A01deD207aD3DEB4FE91437CAe52deD0b5)
- ankrETH on Avalanche (opens in a new tab) (0xd6Fd021662B83bb1aAbC2006583A62Ad2Efb8d4A)
- ankrETH on Ethereum (opens in a new tab) (0x00F8e64a8651E3479A0B20F46b1D462Fe29D6aBc)
- ankrETH on Polygon zkEVM (opens in a new tab) (0xfc8d81a01ded207ad3deb4fe91437cae52ded0b5)
Ratio for bridged tokens
You may also want to get ratio for bridged tokens.
To remind you what the ratio is, here's the formula: liquid_staking_token/ratio=original_asset
, e.g., ankrETH/ratio=ETH
.
You can get it, calling the getRatioFor()
function.
The function takes a contract address of the original Liquid Staking token, e.g., 0xE95A203B1a91a908F9B9CE46459d101078c2c3cb
(ankrETH), and returns the ratio as a uint256 if the token has been bridged to the network you're calling the function on.
The addresses of all contracts on all supported networks are:
- Arbitrum (opens in a new tab) (0xCb0006B31e6b403fEeEC257A8ABeE0817bEd7eBa)
- Avalanche (opens in a new tab) (0xEf3C162450E1d08804493aA27BE60CDAa054050F)
- BNB Smart Chain (opens in a new tab) (0xCb0006B31e6b403fEeEC257A8ABeE0817bEd7eBa)
- Fantom (opens in a new tab) (0xEf3C162450E1d08804493aA27BE60CDAa054050F)
- Linea (opens in a new tab) (0xc437DF90B37C1dB6657339E31BfE54627f0e7181)
- Mode (opens in a new tab) (0xEf3C162450E1d08804493aA27BE60CDAa054050F)
- Optimism (opens in a new tab) (0xCb0006B31e6b403fEeEC257A8ABeE0817bEd7eBa)
- Polygon (opens in a new tab) (0xEf3C162450E1d08804493aA27BE60CDAa054050F)
- Polygon zkEVM (opens in a new tab) (0xEf3C162450E1d08804493aA27BE60CDAa054050F)
Avalanche
Avalanche ratio()
Returns the number of ankrAVAX tokens the user gets when staking their 1 AVAX. Practically, the returned value is also ratio, since 1 * ratio
is effectively ratio
. ankrAVAX/ratio=AVAX
.
Parameters
The function returns:
- price (uint256) — ankrAVAX ratio.
Smart contracts
Examples
You can query for a ratio on the contract page by the links above, anytime.
Avalanche getRatioFor()
Returns the ratio for any Liquid Staking token if it was bridged to Avalanche. ankrETH/ratio=ETH
, etc.
Parameters
The function takes:
- token (address) — contract address of the original Liquid Staking token. For example,
0xE95A203B1a91a908F9B9CE46459d101078c2c3cb
which is the address of ankrETH.
The function returns:
- ratio (uint256) — ratio for any Liquid Staking token that was bridged to Avalanche.
Smart contracts
Examples
You can query for a ratio on the contract page by the links above, anytime.
Binance
Binance ratio()
Returns the number of ankrBNB tokens the user gets when staking their BNB. Practically, the returned value is also ratio, since 1 * ratio
is effectively ratio
. ankrBNB/ratio=BNB
.
Parameters
The function returns:
- price (uint256) — ankrBNB ratio.
Smart contracts
Examples
You can query for a ratio on the contract page by the links above, anytime.
Binance getRatioFor()
Returns the ratio for any Liquid Staking token if it was bridged to BNB Smart Chain. ankrETH/ratio=ETH
, etc.
Parameters
The function takes:
- token (address) — contract address of the original Liquid Staking token. For example,
0xE95A203B1a91a908F9B9CE46459d101078c2c3cb
which is the address of ankrETH.
The function returns:
- ratio (uint256) — ratio for any Liquid Staking token that was bridged to BNB Smart Chain.
Smart contracts
Examples
You can query for a ratio on the contract page by the links above, anytime.
Ethereum
Ethereum ratio()
Returns the number of ankrETH tokens the user gets when staking their ETH. Practically, the returned value is also ratio, since 1 * ratio
is effectively ratio
. ankrETH/ratio=ETH
.
Parameters
The function returns:
- price (uint256) — ankrETH ratio.
Smart contracts
Examples
You can query for a ratio on the contract page by the links above, anytime.
Fantom
Fantom ratio()
Returns the number of ankrFTM tokens the user gets when staking their FTM. Practically, the returned value is also ratio, since 1 * ratio
is effectively ratio
. ankrFTM/ratio=FTM
.
Parameters
The function returns:
- price (uint256) — ankrFTM ratio.
Smart contracts
Examples
You can query for a ratio on the contract page by the links above, anytime.
Fantom getRatioFor()
Returns the ratio for any Liquid Staking token if it was bridged to Fantom. ankrETH/ratio=ETH
, etc.
Parameters
The function takes:
- token (address) — contract address of the original Liquid Staking token. For example,
0xE95A203B1a91a908F9B9CE46459d101078c2c3cb
which is the address of ankrETH.
The function returns:
- ratio (uint256) — ratio for any Liquid Staking token that was bridged to Fantom.
Smart contracts
Examples
You can query for a ratio on the contract page by the links above, anytime.
Flow
Flow ratio()
Returns the number of ankrFLOW tokens the user gets when staking their FLOW. Practically, the returned value is also ratio, since 1 * ratio
is effectively ratio
. ankrFLOW/ratio=FLOW
.
Parameters
The function returns:
- price (uint256) — ankrFLOW ratio.
Smart contracts
Examples
You can query for a ratio on the contract page by the links above, anytime.
Linea
Linea getRatioFor()
Returns the ratio for any Liquid Staking token if it was bridged to Linea. ankrETH/ratio=ETH
, etc.
Parameters
The function takes:
- token (address) — contract address of the original Liquid Staking token. For example,
0xE95A203B1a91a908F9B9CE46459d101078c2c3cb
which is the address of ankrETH.
The function returns:
- ratio (uint256) — ratio for any Liquid Staking token that was bridged to Linea.
Smart contracts
Examples
You can query for a ratio on the contract page by the links above, anytime.
Mode
Mode getRatioFor()
Returns the ratio for any Liquid Staking token if it was bridged to Mode. ankrETH/ratio=ETH
, etc.
Parameters
The function takes:
- token (address) — contract address of the original Liquid Staking token. For example,
0x12D8CE035c5DE3Ce39B1fDD4C1d5a745EAbA3b8C
which is the address of ankrETH.
The function returns:
- ratio (uint256) — ratio for any Liquid Staking token that was bridged to Mode.
Smart contracts
Examples
You can query for a ratio on the contract page by the links above, anytime.
Optimism
Optimism getRatioFor()
Returns the ratio for any Liquid Staking token if it was bridged to Optimisms. ankrETH/ratio=ETH
, etc.
Parameters
The function takes:
- token (address) — contract address of the original Liquid Staking token. For example,
0xE95A203B1a91a908F9B9CE46459d101078c2c3cb
which is the address of ankrETH.
The function returns:
- ratio (uint256) — ratio for any Liquid Staking token that was bridged to Optimism.
Smart contracts
Examples
You can query for a ratio on the contract page by the links above, anytime.
Polkadot
Polkadot ratio()
Returns the number of aDOTb tokens the user gets when staking their DOT.
Parameters
The function returns:
- price (uint256) — aDOTb ratio.
Smart contracts
Examples
You can query for a ratio on the contract page by the links above, anytime.
Polygon
Polygon ratio()
Returns the number of ankrPOL tokens the user gets when staking their POL. Practically, the returned value is also ratio, since 1 * ratio
is effectively ratio
. ankrPOL/ratio=POL
.
Parameters
The function returns:
- price (uint256) — ankrPOL ratio.
Smart contracts
Examples
You can query for a ratio on the contract page by the links above, anytime.