Price estimation
Price estimation is an integral part of CoW Protocol. A price estimation query results in the quote a user will see, e.g., in the CoW Swap UI; concretely, and considering sell orders, it corresponds to the expected buy amount as well as the fee (in the sell token) a user will be charged. Although user orders are protected via the solver competition (i.e., solvers are required to provide the best possible deal to the users), getting a competitive quote is clearly beneficial, as it provides a hard guarantee (via the limit price) that the order is not exploitable, and also gives a much more accurate signal to the user about the amount they should expect to receive. Ultimately, users do care about the estimated prices they see in the frontend, and this has become very apparent in the last few months due to DefiLlama, where ranking higher in it has resulted in increased traffic in CoW Protocol.
Currently, price estimation is done via a price estimation competition, similar in spirit to the solver competition that takes place for settling batch auctions. So far, mostly the Gnosis solvers have participated in it, with the exception of SeaSolver, which joined the competition a few months ago in order to provide competitive quotes for special token pairs where general-purpose estimators fail. The competition already provides a very robust quote system for the vast majority of token pairs. However, we believe that the protocol could benefit by encouraging more solvers to also participate in price estimation, something that would have a twofold effect:
- Even more competitive quotes, as certain solvers are aware of liquidity and execution paths that are not known to 1inch or 0x for example, and
- more robust and reliable quote system, for cases where there might be rate limits imposed by 1inch/0x etc.
Ultimately, this would make the protocol even more competitive and would increase the number of orders it is receiving (from DefiLlama and elsewhere).
For these reasons, all solvers currently participating in the solver competition should be encouraged to become price estimators.
Challenges
The are a few challenges to achieve this goal.
- Currently, there is a non-trivial load for price estimations. In particular, estimators might get 1k-2k price estimation quotes per minute. This means that solvers would require to significantly scale up their resources, and this would mean that their operational costs increase by quite a bit.
- Even if the Protocol provides the appropriate incentives to address the concerns in (1) and solvers agree to participate in the estimation competition, the Protocol still need to ensure that the provided quotes are meaningful. For that, the first requirement would be that each quote should be accompanied by full calldata, so that it can be simulated and verified, if needed, that the quote is indeed valid. Besides that, reasonable metrics and checks for monitoring the submitted quotes should be put in place, so that the system is able to react fast to quotes that are unmatchable, and which would cause orders to expire.
Given the clear benefits that a stronger price estimation competition would have, we believe that at this point, there is no reason to devise a new incentives mechanism, and agreeing on covering (part of) the solvers’ expenses would be enough for most solvers to take this step. In particular, the protocol could address (1) by allowing to solver, at least in the short term, access to its node infrastructure, so as to minimise the added cost, that solvers will otherwise have to bear.
Conclusion
We hope that all solver teams would consider participating in the solver competition, and we would like to initiate here the discussion about the concrete steps needed to make this happen.