To fill an order, a resolver must be whitelisted and have a sufficient balance to pay the order fee. Follow these steps to begin resolving:
- Gain enough unicorn power to be listed among the top 10 registered resolvers. There are two options available to grow your unicorn power:
- Stake more 1inch or lock your stake for a longer period.
- Attract more delegates through farming to delegate their unicorn power to you.
- Register as a resolver in the whitelist and delegation, and set up a worker address.
- Deposit 1inch into the FeeBank to cover resolving fees.
- Start resolving swaps.
The top 10 whitelisted stakers are determined by their "unicorn power." Stakers can lock their 1inch tokens in the staking contract to receive st1inch tokens. The lock period can be set between 1 month and 2 years. St1inch tokens grant a staker "unicorn power." The longer the lock period, the more unicorn power a staker will receive. However, the increase in power is not linear:
- A 2-year lock will give the staker 1 "unicorn power" for each 1inch token locked.
- A 1.5-year lock will give the staker 0.47 "unicorn power" for each 1inch token locked.
- A 1-year lock will give the staker 0.22 "unicorn power" for each 1inch token locked.
- A 0.5-year lock will give the staker 0.1 "unicorn power" for each 1inch token locked.
- An expired lock will only give the staker 0.05 "unicorn power" for each 1inch token locked.
To help overcome the entry barrier for the whitelist, a resolver can engage 1inch stakers to delegate their "unicorn power" to it.
When a staker delegates its "unicorn power" to a resolver, it is added to the resolver's own "unicorn power" and helps it enter and remain in the whitelist. Delegated "unicorn power" gradually decreases over time with a lock period, in the same way as a resolver's "unicorn power".
A staker can delegate all of its power to a single resolver at any time.
To encourage stakers to delegate their "unicorn power," Fusion infrastructure creates a default farm for each resolver. When a staker delegates its "unicorn power" to a resolver, it automatically joins to the farm. The resolver who owns the farm may provide rewards for joined delegates, which are distributed proportionally based on their delegated "unicorn power" and the time spent delegating. A resolver may also redefine the farm that a delegate automatically joins after delegation.
Having sufficient "unicorn power" is not enough for a Resolver. They must also be enlisted as a resolver, which involves the following actions:
- Complete the Resolver Verification Process. More details can be found here.
- Register a delegation pod. A delegation pod is a smart contract that manages the accounting for delegatee and delegates unicorn power and shares. Whitelist queries the delegation pod to obtain the resulting resolver's unicorn power. After registering, a resolver should delegate its unicorn power to itself, so that it will be taken into account by the whitelist.
- Register at whitelist
If a resolver has sufficient delegated unicorn power, it can be whitelisted and given the ability to fill orders from the start of an action. Only 10 resolvers can be whitelisted. The whitelist is recalculated only when someone attempts to register. So, if the unicorn power of a whitelisted resolver drops below that of a resolver who is not whitelisted, the whitelist will change only if someone calls
registeron a whitelist contract.
- Define worker address If a resolver wants to fill orders from an address other that is whitelisted, they should define a worker address for this purpose. If a resolver wants to fill orders from their own address, they should register their own address as a worker.
If a resolver is not whitelisted, it cannot fill orders.
Although fees are not currently being collected, it is possible that they may be collected in the future.
For each filled order, a resolver must pay a fee. This fee is automatically deducted from the resolver's account at FeeBank, which is a smart contract. If the resolver's account balance is insufficient, the order fill will be reverted. Therefore, a resolver must deposit enough 1inch tokens to fill their orders.
If a worker is designated for filling orders, a deposit should be made into this worker's account at the FeeBank.
Once all the previously described requirements have been met and steps have been completed, a resolver may begin filling orders by calling the
settleOrders method of the settlement contract. If a resolver wants to fill multiple orders in one transaction, they should include the taker's interactions with chain order fill.
For more details, please refer to the limit orders documentation.