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

# Kelp DAO (kelp)

> Liquid restaking protocol built on EigenLayer. Deposit LSTs (stETH, ETHx, etc.) and receive rsETH, a non-rebasing liquid restaked token.

Liquid restaking protocol built on EigenLayer. Deposit LSTs (stETH, ETHx, etc.) and receive rsETH, a non-rebasing liquid restaked token.

| Fact | Value |
| - | - |
| Category | Restaking |
| Family | none |
| Namespace | `Kelp` on ethereum |
| Chains | ethereum |

## What it offers

* **depositAsset**: Deposit LST to receive rsETH

## Notes

* Accepts stETH, ETHx, and other LSTs
* Approve the LST to lrtDepositPool before depositing
* minRSETHAmountExpected provides slippage protection
* Use getRsETHAmountToMint() to preview output before depositing

## Its names in a program

On Ethereum, `Kelp` is a namespace: its contracts need no import.

```ts theme={null}
function main() {
  // Ethereum's lrtDepositPool, `0x036676389e48133B63a802f8635AD39E752D375D`.
  require(Kelp.LRTDepositPool != 0);
}
```

## Deployments

| Chain | Contract | Address | In a program |
| - | - | - | - |
| [Ethereum](https://docs.eco.com/sauce-sdk/reference/chains/ethereum.md) | lrtDepositPool | `0x036676389e48133B63a802f8635AD39E752D375D` | `Kelp.LRTDepositPool` |
| [Ethereum](https://docs.eco.com/sauce-sdk/reference/chains/ethereum.md) | rsETH | `0xA1290d69c65A6Fe4DF752f95823fae25cB99e5A7` | `Kelp.RsETH` |

## ABI

### `LRTDepositPoolABI`

`import LRTDepositPoolABI from "./protocols/kelp/LRTDepositPoolABI.json";` Speaks for: lrtDepositPool.

* `depositAsset(address asset, uint256 depositAmount, uint256 minRSETHAmountExpected, string referralId)`
* `getRsETHAmountToMint(address asset, uint256 amount) view returns (uint256 rsethAmountToMint)`

### `RsETHABI`

`import RsETHABI from "./protocols/kelp/RsETHABI.json";` Speaks for: rsETH.

* `balanceOf(address account) view returns (uint256)`
* `approve(address spender, uint256 amount) returns (bool)`

## Next steps

* [Protocols](https://docs.eco.com/sauce-sdk/reference/protocols.md): the other protocols, by what they do.
* [Protocols and tokens](https://docs.eco.com/sauce/names.md): calling a contract by its namespace, or through its ABI.
* [Glossary](https://docs.eco.com/sauce/glossary.md): the words these pages use, in plain terms.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.