Интеграция с Rocket Pool (liquid staking)
Rocket Pool — второй по размеру liquid staking протокол на Ethereum ($3B+ TVL), известен своей децентрализованностью: тысячи независимых node operators, минимальный trusted set. rETH — его liquid staking token.
rETH: value-accruing token
rETH не rebasing: баланс пользователя фиксирован, но каждый rETH стоит всё больше ETH с течением времени. Это делает rETH более совместимым с DeFi чем stETH в нативном виде.
Exchange rate растёт асинхронно при поступлении rewards от валидаторов.
Mint rETH (deposit ETH)
interface IRocketTokenRETH {
function getEthValue(uint256 rethAmount) external view returns (uint256);
function getRethValue(uint256 ethAmount) external view returns (uint256);
function getExchangeRate() external view returns (uint256);
}
interface IRocketDepositPool {
function deposit() external payable;
function getBalance() external view returns (uint256);
function getMaximumDepositAmount() external view returns (uint256);
}
// Deposit ETH → rETH через DepositPool
IRocketDepositPool depositPool = IRocketDepositPool(ROCKET_DEPOSIT_POOL);
depositPool.deposit{value: ethAmount}();
// rETH автоматически зачислается на адрес отправителя
Важно: Rocket Pool имеет deposit capacity limit. При заполненном пуле deposit ревертится. Нужно проверять getMaximumDepositAmount() перед deposit.
Альтернатива: rETH на вторичном рынке
При заполненном deposit pool можно купить rETH на Uniswap или Curve (rETH/ETH пул):
// Через Uniswap V3
const rETHUniswapPool = '0xa4e0faA58465A2D369aa21B3e42d43374c6F9613'; // rETH/WETH
// Через Curve
const rETHCurvePool = '0x0f3159811670c117c372428D4E69AC32325e4D0F';
Exchange rate и price feeds
IRocketTokenRETH rETH = IRocketTokenRETH(RETH_ADDRESS);
// Текущий exchange rate (ETH за 1 rETH, в wei)
uint256 ethPerRETH = rETH.getExchangeRate();
// Конвертации
uint256 ethValue = rETH.getEthValue(rethAmount);
uint256 rethValue = rETH.getRethValue(ethAmount);
Chainlink также предоставляет rETH/ETH price feed.
Redemption (burn rETH → ETH)
interface IRocketTokenRETH {
function burn(uint256 rethAmount) external;
}
// Burn rETH → получить ETH
IRocketTokenRETH(RETH_ADDRESS).burn(rethAmount);
Redemption работает только если в пуле достаточно ETH. При нехватке ликвидности — нужно ждать или продавать rETH через DEX.
Decentralization преимущества для протоколов
Некоторые DeFi протоколы (Aave, MakerDAO) предпочитают rETH как collateral за более децентрализованную природу. При добавлении LST-коллатерала — Rocket Pool рассматривается как меньший systemic risk чем Lido.
Интеграция Rocket Pool — 1-2 недели. Документация docs.rocketpool.net актуальна и подробна.







