> 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
