> ## Documentation Index
> Fetch the complete documentation index at: https://voltaire.tevm.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# EigenLayer

> Restaking ETH and LSTs with EigenLayer

<Warning>
  **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](https://github.com/evmts/voltaire/tree/main/examples/ethers-provider) for an example of a complete Skill implementation.

  Interested? Open an issue or PR at [github.com/evmts/voltaire](https://github.com/evmts/voltaire).
</Warning>

<Info>
  **Skill** — Copyable reference implementation. Use as-is or customize. See [Skills Philosophy](/concepts/skills).
</Info>

Restake ETH and LSTs to secure additional networks via EigenLayer.

## Planned Implementation

### Deposit

```typescript theme={null}
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

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

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

### Withdrawals

```typescript theme={null}
// 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

* [EigenLayer Documentation](https://docs.eigenlayer.xyz/)
* [EigenLayer Contracts](https://github.com/Layr-Labs/eigenlayer-contracts)

## Related

* [lido](/skills/lido) — Get stETH to restake
