# Requirements

<figure><img src="/files/vw5JBGQafMR4YdMDff2i" alt=""><figcaption></figcaption></figure>

Requirements are an important aspect of Genesis Pools, allowing protocols to set specific criteria for staking positions and staking users' profiles. By default, Genesis Pools only accept compatible spZKLABs, which are staking positions from a wrapped LP. However, protocols can set additional requirements to accurately target specific positions or users.

One common requirement is the amount of staked positions. Only positions with at least the required amount can be deposited into the Genesis Pool. The unit taken into account for the amount will be the one of the position's LP.

Another requirement is locks. Protocols can require specific lock settings on staked positions to validate their deposit. For example, a duration requirement may stipulate that the staked position should have a total lock duration of at least x days, while an end time requirement may require that the staked position be locked until at least a specific date.

Protocols can also set up a whitelist to authorize only specific addresses to interact with their Genesis Pools. This mechanism can be used to reward loyal users, distribute targeted compensation, or replace an airdrop.

In cases where the native Genesis contracts do not have specific requirements needed by a protocol, custom requirement contracts can be plugged in. This allows projects to set very specific requirements for staking positions and users, ensuring that only qualified participants can interact with the Genesis Pool.


---

# Agent Instructions: 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:

```
GET https://zksync-labs.gitbook.io/zksync-labs/genesis-pools/requirements.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
