Skip to main content
Looking for Contributors! This Skill needs an implementation.Contributing a Skill involves:
  1. Writing a reference implementation with full functionality
  2. Adding comprehensive tests
  3. Writing documentation with usage examples
See the ethers-provider Skill for an example of a complete Skill implementation.Interested? Open an issue or PR at github.com/evmts/voltaire.
Skill — Copyable reference implementation. Use as-is or customize. See Skills Philosophy.
Restake ETH and LSTs to secure additional networks via EigenLayer.

Planned Implementation

Deposit

import { EigenLayer } from './EigenLayer.js';

const eigen = EigenLayer({
  provider,
  strategyManager: STRATEGY_MANAGER,
});

// Deposit stETH into EigenLayer
await eigen.depositIntoStrategy({
  strategy: STETH_STRATEGY,
  token: STETH,
  amount: parseEther('10'),
  signer,
});

Delegation

// Delegate to an operator
await eigen.delegateTo({
  operator: OPERATOR_ADDRESS,
  signature: { /* EIP-712 signature */ },
  signer,
});

// Undelegate
await eigen.undelegate({ signer });

Withdrawals

// Queue withdrawal
const withdrawal = await eigen.queueWithdrawal({
  strategies: [STETH_STRATEGY],
  shares: [shareAmount],
  signer,
});

// Complete withdrawal after delay
await eigen.completeQueuedWithdrawal({
  withdrawal,
  tokens: [STETH],
  receiveAsTokens: true,
  signer,
});

Resources

  • lido — Get stETH to restake