# Launching a Pool

{% embed url="<https://www.youtube.com/watch?t=418s&v=dCNlTnqCm-M>" %}
Create a new pool
{% endembed %}

## Deployment

Launching a Pool only takes a few clicks. The factory will handle all the work of deploying associated contracts to the blockchain and configuring them with your desired parameters. Afterwards, you can fund the contract with the rewards you’d like to distribute. To enforce transparency and decentralization, there is no way to adjust configurations after they are created.

You can deploy your own Pool [here](https://app.gysr.io/distribute).

#### Selecting modules

During configuration, you can select from the six types of Pools: the Geyser, Fountain, Aquarium, Stream, Waterfall, or ERC721 Waterfall.

If you have interest in a separate type of module that we don’t yet support, please reach out to the team [here](mailto:team@gysr.io).<br>

## Configuration

Each Pool will require you to define the a set of configuration values during creation. These control the behavior of the pool, the stake and reward assets, and the time incentives for users. Please keep in mind that these cannot be changed later.

### **Geysers**

* `Staking token` - the ERC20 staking asset
* `Reward token` - the ERC20 reward asset
* `Period` - the length of time to earn the maximum multiplier (set this to 0 to have no multiplier)
* `Minimum multiplier` - this is the multiplier every user has applied at the moment they start staking (set this to 1 if you wish users to start with no time multiplier)
* `Maximum multiplier` - this the multiplier users will receive once they’ve staked for the length of the period (set this to 1 to disable the time multiplier)

*Most Geysers will use a minimum multiplier of 1x and then scale it up as time goes on depending on how long they want to incentivize users to stay, however you can specify any positive number.*<br>

### **Fountains**

* `Staking token` - the ERC20 staking asset
* `Reward token` - the ERC20 reward asset
* `Period` - The length of time a user must be staked to earn the entirety of their rewards (set this to 0 to have no penalty)
* `Minimum penalty` - The penalty multiplier that would be applied if a user unstakes directly after staking (set this to 1 to have no penalty)

*Vesting considerations: To incentivize users staying for 90 days, you might set the period to 90 days and the minimum penalty to 0.5x. This would mean that on day 1 if they unstaked, they’d only receive 50% of their rewards. If a user unstaked on day 45, they’d receive 75%. Only after 90 days would a user be entitled to unstake 100% of their earnings.*

### Aquarium

* `Staking token` - the ERC721 staking asset
* `Reward token` - the ERC20 reward asset
* `Period` - the length of time a user must be staked to earn the entirety of their rewards (set this to 0 to have no penalty)
* `Minimum penalty` - the penalty multiplier that would be applied if a user unstakes directly after staking (set this to 1 to have no penalty)

*See the vesting considerations for the Fountain above, as the same reward mechanics apply here.*

### Stream

* `Reward token` - the ERC20 reward asset
* `Period` - the period of time that rewards are guaranteed for. When adding a user, the pool must have sufficient funding to cover the updated rate for at least this amount of time&#x20;

### Waterfall

* `Staking token` - the ERC20 or ERC721 staking asset
* `Period` - the length of time a user must be staked to earn the entirety of their rewards (set this to 0 to have no penalty)
* `Minimum penalty` - the penalty multiplier that would be applied if a user unstakes directly after staking (set this to 1 to have no penalty)

*See the vesting considerations for the Fountain above, as the same reward mechanics apply here.*


---

# 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://docs.gysr.io/guide/launching-a-pool.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.
