Skip to main content

How to become a resolver

To fill an order, a resolver should be whitelisted and have enough balance to pay the order fee. So below are the overview of steps to do to start resolving:

  1. Stake enough 1inch to have enough unicorn power to be in top-5 registered resolvers list;
  2. Register as a resolver (in whitelist and delegation) and set worker address
  3. Deposit 1inch to FeeBank to cover resolving fees
  4. Resolve swaps

Staking#

Staking and unicorn power#

The whitelisted top-5 stakers are determined by the unicorn power. Stakers can lock 1inch tokens in the staking contract to get st1inch tokens. The lock period is between 1 month and 2 years. st1inch tokens grants a staker “unicorn power.” The longer the locking period the more “unicorn power” a resolver gets. However, the increase in power is not linear:

  • 2-years lock will give the staker 1 “unicorn power” for each 1inch
  • 1.5-years lock will give the staker 0.47 “unicorn power” for each 1inch
  • 1-years lock will give the staker 0.22 “unicorn power” for each 1inch
  • 0.5-year lock will give the staker 0.1 “unicorn power” for each 1inch
  • Expired lock will give the staker only 0.05 “unicorn power” for each 1inch
staking-image

Delegation#

To help overcome the entry barrier to get into the whitelist a resolver can engage 1inch stakers to delegate their “unicorn power” to him.

When a staker delegates his “unicorn power” to a resolver, his power is added to the resolver’s “unicorn power” and helps him to enter and remain in the whitelist. Delegated “unicorn power” is decreased over time with a lock period in the same manner as a resolver’s “unicorn power”.

A staker can delegate all its power to a single resolver at one moment of time.

Farmings#

To incentivize stakers to delegate their unicorn power Fusion infrastructure creates a default farm for each resolver and any staker delegated his “unicorn power” to a resolver is automatically joined the farm. The resolver who owns the farm may provide rewards for joined delegates which are distributed to them proportionally to the delegated “unicorn power” and time spent delegating.

Register as a resolver#

It is not enough to have sufficient “unicorn power” but a Resolver should also be enlisted as a resolver which involves two actions: 1) register a delegation pod and 2) register for whitelisting. Optionally, a resolver may define the default farm that a delegating staker will automatically join after delegation.

If a resolver wants to fill orders from another address then that is whitelisted then he should define a worker address for this purpose. Otherwise, if a resolver wants to fill orders from its own address he should register his own address as a worker.

The whitelist contains top-5 resolvers by unicorn power. The position in the list defines the access priority for resolving. The Dutch auction duration is split equally into 6 intervals.

For example, if Dutch auction is lasted 6 minutes, then 1st minute the top-1 resolver is allowed to fill the order, on the 2nd minute top-1 and top-2 resolvers are allowed to fill the order and so on. On the 5th minute all the resolvers from the whitelist are allowed to fill the order. On the 5th minute the order becomes public and all the resolvers despite of the whitelist are allowed to fill it.

Below is an example of 7 minutes long auction

auction-image

Fee bank#

For each order filled, a resolver should pay a fee. This fee is automatically subtracted from the resolver’s account at the fee bank. The order fill will be reverted if there is an insufficient account balance at the fee bank. So a resolver should deposit enough 1inch tokens to fill orders.

If a worker is defined for filling orders then a deposit should be made to this worker account at the FeeBank.

Resolving#

If all the previously described requirements are met and steps are done, then a resolver may start filling orders by calling resolve method of the settlement contract. If a resolver wants to fill several orders in one transaction then he should add taker’s interactions with chain order fill in it. See limit orders documentation for details.