Create Pools

Definition

Staking pools live inside a staking market and inherit their rules. Issuer deploys staking pool and specifies how it operates:

  • it accepts one or many tokens to be locked
  • in order to issue rewards
  • that follow a reward distribution algorithm

In other words, stakers lock an input asset in a staking pool to get a new "reward" token.

Tokens and Packets

Input & output

The protocol differentiates input and output tokens in a staking pool:

  • Input tokens: tokens to be transferred by the staker to the pool. The staking pool holds custody of the input tokens until the user withdraws them.
  • Output tokens: tokens to be claimed as a reward by the staker after locking the input token. The pool can have access to the tokens 2 ways
    • through manual transfers (RWA template)
    • via mint permission where the pool is allowed to mint new tokens (Reputation template)

Packets

Staking pools are compatible with multiple input and output tokens through "packets".

A packet encapsulates a predefined ratio of multiple tokens to facilitate locking or claiming various input or output tokens from the same pool. Therefore, a packet represents the smallest indivisible unit that can be staked inside a staking pool.

For instance, a staking pool can accept 2 tokens: "Token A" (ERC-20) and "Token B" (ERC-1155) with the following formula:

  • Packet = [2 Token A, 3 Token B with id 1]

In this scenario, the user must stake at least 1 Packet in the pool. Therefore, staking 1000 Packets translates to staking 2000 Token A and 3000 Token B.

Deploying a pool

Users with the issuer role can create pools within a staking market. Each feature below is inherited by the configuration of the staking market where the pool is created

FeatureDescriptionMandatory?
Input tokenSpecify the tokens to be staked by stakers
Reward tokenSpecify the tokens to be distributed to participants
Reward distributionInherited from the market templates.
DurationSet the start and end dates for the staking pool.
CapitalizationWhether there are

- Minimum and maximum amounts to be staked for each staker
- or soft and hard caps of the pool as a whole
Lock periodsSet whether there are lock periods when stakers stake in the pool
Multiplier by lock periodSet lock-period-based multipliers to reward stakers
Multipliers by amountSet amount-based multipliers to reward stakers