> For the complete documentation index, see [llms.txt](https://docs.bsc.lista.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bsc.lista.org/for-developer/liquid-staking-slisbnb/mechanics.md).

# Mechanics

### ListaStakeManager Introduction

slisBNB is the yield bearing & liquid staking token for Lista. Users can get slisBNB by staking their BNB through ListaStakeManager smart contract which handles the BNB liquid staking on BSC.

<br>

`ListaStakeManager` is what you call to stake, queue a withdrawal, and claim:

<figure><img src="https://1802824789-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F60fXF9rALi6luWHVkkGg%2Fuploads%2FqguGjA5nhG3UPOu0lpAc%2Fimage.png?alt=media&amp;token=69472d5d-3590-466b-bb56-3bd38d1454a8" alt=""><figcaption></figcaption></figure>

### Stake BNB

Users can stake BNB through ListaStakeManager. In return, they receive a corresponding amount of slisBNB as the liquid staking token (LST), representing their staked assets

<br>

### Minting LST

Upon staking, ListaStakeManager mints slisBNB. slisBNB is a transferable ERC-20, so the staked position stays liquid and can be used as collateral elsewhere — including as Moolah collateral, where it is provider-gated (see [Providers](/for-developer/lista-lending/providers.md)).

<br>

### Earning Rewards from Multiple Validators

The staked BNB generate rewards from multiple validators, which are then aggregated and distributed proportionally to LST holders. This ensures that users benefit from the performance of various validators, potentially increasing the overall yield.

<br>

<figure><img src="https://1802824789-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F60fXF9rALi6luWHVkkGg%2Fuploads%2FDTaXoPKU0qybqEbjJH8J%2Fimage.png?alt=media&amp;token=9f9dd9c3-e994-4b6c-9968-d8e8e9b41c8b" alt=""><figcaption><p>Unstaking</p></figcaption></figure>

<figure><img src="https://1802824789-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F60fXF9rALi6luWHVkkGg%2Fuploads%2FbT1w8mxNSp3aoznVUTb2%2Fimage.png?alt=media&amp;token=f5b55f7e-d2b8-45af-ab88-3574183512cc" alt=""><figcaption><p>Withdraw</p></figcaption></figure>

### Unstaking and Withdraw

Users can initiate withdrawal requests to unstake their assets through the smart contract. Upon receiving a withdrawal request, a bot sends a request to unbond BNB from the validators. After the 7-day unbonding period, the slisBNB tokens will be burned, and users can claim the released BNB through the ListaStakeManager.

### Rebalance

ListaStakeManager allows Bot to periodically rebalance the staked BNB across validators to optimize reliability and reward rates.

## Interface

All of these are user-callable on `ListaStakeManager`; the address is on [Smart Contract](/for-developer/liquid-staking-slisbnb/smart-contract.md).

```solidity
function deposit() external payable;                    // stake BNB, receive slisBNB
function requestWithdraw(uint256 amountInSlisBnb) external;
function claimWithdraw(uint256 idx) external;           // idx into getUserWithdrawalRequests(you)

function getUserWithdrawalRequests(address user) external view returns (WithdrawalRequest[] memory);
function getUserRequestStatus(address user, uint256 idx) external view returns (bool isClaimable, uint256 amount);
function convertBnbToSnBnb(uint256 amount) external view returns (uint256);
function convertSnBnbToBnb(uint256 amountInSlisBnb) external view returns (uint256);
```

When you build against this:

* **The amount is `msg.value`.** `deposit()` takes no argument.
* **Approve `ListaStakeManager` on the slisBNB token before `requestWithdraw`.** It pulls your slisBNB with `safeTransferFrom`.
* **Withdrawal is two transactions, and the gap is not yours to control.** `requestWithdraw` queues; a bot unbonds from validators; only after the 7-day unbonding period does `getUserRequestStatus` report `isClaimable`. Poll it rather than assuming a deadline.
* **`requestWithdraw` reverts on dust.** The requested amount must convert to **at least** the contract's `minBnb`.
* **`claimWithdraw` takes an index, not an id.** It indexes the array returned by `getUserWithdrawalRequests` for the caller, so re-read that array rather than caching positions across claims.
* **slisBNB is yield-bearing by exchange rate, not by rebase.** Your balance does not grow; `convertSnBnbToBnb` does. Quote value through it.


---

# 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 following URL with the `ask` and `goal` query parameters:

```
GET https://docs.bsc.lista.org/for-developer/liquid-staking-slisbnb/mechanics.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 `build a script that syncs our docs to a CMS` 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.
