> For the complete documentation index, see [llms.txt](https://etherfi.gitbook.io/etherfi/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://etherfi.gitbook.io/etherfi/developers/contracts-and-integrations/how-to.md).

# How To

You can interact directly with smart contract via Etherscan even when ether.fi's web page or dapp is down.

## Withdrawals

#### Standard Withdrawal with Delays

this is the standard queued withdrawal without fee and without rate limit:

1. **Unwrap weETH to eETH**: If you hold weETH, you need to unwrap to eETH. Use [weETH.unwrap](https://etherscan.io/address/0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee#writeProxyContract#F16). Note that you need [eETH.approve](https://etherscan.io/address/0x35fA164735182de50811E8e2E824cFb9B6118ac2#writeProxyContract#F1) with spender = [weETH](https://etherscan.io/address/0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee) contract.
2. **Initiate withdrawal**: You can use [LiquidityPool.requestWithdraw](https://etherscan.io/address/0x308861A430be4cce5502d0A12724771Fc6DaF216#writeProxyContract#F18), then you will receive the [WithdrawRequestNFT](https://etherscan.io/address/0x7d5706f6ef3F89B3951E23e557CDFBC3239D4E2c) which is ERC721 NFT representing your queued withdrawal.
3. **Check the status of the withdrawal**: use [WithdrawRequestNFT.isFinalized(nftTokenId)](https://etherscan.io/address/0x7d5706f6ef3F89B3951E23e557CDFBC3239D4E2c#readProxyContract#F17). You can preview the exact ETH you will receive with [WithdrawRequestNFT.getClaimableAmount(nftTokenId)](https://etherscan.io/address/0x7d5706f6ef3F89B3951E23e557CDFBC3239D4E2c#readProxyContract#F13). Once a request is finalized, its payout is locked in: later rebases no longer change the amount.
4. **Claim**: use [WithdrawRequestNFT.claimWithdraw(nftTokenId)](https://etherscan.io/address/0x7d5706f6ef3F89B3951E23e557CDFBC3239D4E2c#writeProxyContract#F3)

#### Instant Withdrawal without Delay

this is the instant redemption with a small exit fee and a rate limit. The fee and the rate limit are set per token (eETH / weETH), and the instant withdrawal is only allowed when the buffer liquidity is above the low watermark (a percentage of eETH TVL). Both the fee and the watermark are hard-capped at 5% in code; read the live values onchain as below.

1. **(optional) Check the fee and low watermark:** use [EtherFiRedemptionManager.tokenToRedemptionInfo(token)](https://etherscan.io/address/0xDadEf1fFBFeaAB4f68A9fD181395F68b4e4E7Ae0#readProxyContract#F28) with *token* = the [eETH](https://etherscan.io/address/0x35fA164735182de50811E8e2E824cFb9B6118ac2) or [weETH](https://etherscan.io/address/0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee) address. It returns the rate-limit bucket plus `exitFeeInBps` and `lowWatermarkInBpsOfTvl` for that token.
2. **Check if redeemable**: use [EtherFiRedemptionManager.canRedeem(amount, token)](https://etherscan.io/address/0xDadEf1fFBFeaAB4f68A9fD181395F68b4e4E7Ae0#readProxyContract#F6) where *amount* is the ETH amount of the eETH/weETH being redeemed. You can also check the available buffer with [getInstantLiquidityAmount(token)](https://etherscan.io/address/0xDadEf1fFBFeaAB4f68A9fD181395F68b4e4E7Ae0#readProxyContract#F10).
3. **Redeem**: Use either [redeemEEth(amount, receiver, outputToken)](https://etherscan.io/address/0xDadEf1fFBFeaAB4f68A9fD181395F68b4e4E7Ae0#writeProxyContract#F5) or [redeemWeEth(amount, receiver, outputToken)](https://etherscan.io/address/0xDadEf1fFBFeaAB4f68A9fD181395F68b4e4E7Ae0#writeProxyContract#F7). *outputToken* selects what you receive: `0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE` for ETH, or the stETH address for stETH. Note that you need [eETH.approve](https://etherscan.io/address/0x35fA164735182de50811E8e2E824cFb9B6118ac2#writeProxyContract#F1) or [weETH.approve](https://etherscan.io/address/0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee#writeProxyContract#F1) with spender = [EtherFiRedemptionManager](https://etherscan.io/address/0xDadEf1fFBFeaAB4f68A9fD181395F68b4e4E7Ae0) contract.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://etherfi.gitbook.io/etherfi/developers/contracts-and-integrations/how-to.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
