Інтеграція рестейкингу EigenLayer
Інтеграція EigenLayer — не просто "підключити бібліотеку". Це вбудовування вашого протоколу або програми в екосистему рестейкингу: або як AVS, що використовує безпеку EigenLayer, або як програма, що допомагає користувачам переставити свій ETH.
Сценарії інтеграції
Сценарій 1: Ваш протокол як AVS Ви будуєте oracle мережу, міст, DA шар. Замість свого набору валідаторів — оператори EigenLayer забезпечують вашу безпеку.
Сценарій 2: DeFi програма з EigenLayer депозитами Ви будуєте lending протокол або AMM та хочете приймати переставлений ETH або LRT як колатераль.
Сценарій 3: Wallet/Portfolio app Додати можливість рестейкингу для ваших користувачів прямо в інтерфейсі.
Технічні інтерфейси
Депозит через контракти EigenLayer
// Депозит LST (напр., stETH) в EigenLayer StrategyManager
IStrategyManager strategyManager = IStrategyManager(EIGENLAYER_STRATEGY_MANAGER);
IERC20 stETH = IERC20(STETH_ADDRESS);
// Approve
stETH.approve(address(strategyManager), amount);
// Депозит
strategyManager.depositIntoStrategy(
IStrategy(STETH_STRATEGY), // Стратегія для stETH
stETH,
amount
);
Делегування
Після депозиту, staker делегує свої shares оператору:
IDelegationManager delegationManager = IDelegationManager(EIGENLAYER_DELEGATION_MANAGER);
delegationManager.delegateTo(
operatorAddress,
approverSignatureAndExpiry, // Якщо оператор permissioned
approverSalt
);
EigenPod для нативного рестейкингу ETH
Для нативних stakers ETH (не LST):
IEigenPodManager eigenPodManager = IEigenPodManager(EIGENPOD_MANAGER);
// Створити EigenPod
eigenPodManager.createPod();
// Адреса створеного pod
address podAddress = eigenPodManager.ownerToPod(msg.sender);
Withdrawal credentials валідатора встановлюються на адресу EigenPod. Тепер винагороди ETH рахуються як переставлені.
Читання on-chain стану
Для програм портфоліо — потрібно показувати стан позиції рестейкингу:
import { ethers } from 'ethers';
const strategyManagerABI = [...]; // ABI з @eigenlayer/eigenlayer-contracts
const strategyManager = new ethers.Contract(
STRATEGY_MANAGER_ADDRESS,
strategyManagerABI,
provider
);
// Отримати shares користувача в конкретній стратегії
const shares = await strategyManager.stakerStrategyShares(
userAddress,
stETH_STRATEGY_ADDRESS
);
// Конвертувати shares у суму базового токена
const strategy = new ethers.Contract(stETH_STRATEGY_ADDRESS, strategyABI, provider);
const underlyingAmount = await strategy.sharesToUnderlying(shares);
The Graph для індексації
EigenLayer subgraph доступний для швидкого запиту історичних даних:
query GetOperatorDelegations($operatorId: String!) {
operator(id: $operatorId) {
totalShares
delegators {
staker {
id
}
shares
strategy {
id
}
}
avss {
avs {
id
metadataURI
}
}
}
}
Інтеграція EigenLayer у існуючу програму — 2-6 тижнів залежно від глибини інтеграції.







