From 623c75701971fe3cb4cec05b45e104693502475a Mon Sep 17 00:00:00 2001 From: harisang Date: Wed, 11 Dec 2024 18:41:51 +0200 Subject: [PATCH 01/15] add CIP-57 updates --- .../reference/core/auctions/rewards.md | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/docs/cow-protocol/reference/core/auctions/rewards.md b/docs/cow-protocol/reference/core/auctions/rewards.md index d11b5b34..aa5f3e12 100644 --- a/docs/cow-protocol/reference/core/auctions/rewards.md +++ b/docs/cow-protocol/reference/core/auctions/rewards.md @@ -4,12 +4,12 @@ sidebar_position: 3 # Solver rewards -The protocol is currently subsidizing the solver competition on Ethereum Mainnet (but not on Gnosis Chain nor Arbitrum One), by rewarding solvers on a weekly basis (currently, every Tuesday) with rewards paid in COW. Solvers are rewarded based on their performance as solvers (i.e., when participating in the standard solver competition) as specified by [CIP-20](https://snapshot.org/#/cow.eth/proposal/0x2d3f9bd1ea72dca84b03e97dda3efc1f4a42a772c54bd2037e8b62e7d09a491f), [CIP-36](https://snapshot.org/#/cow.eth/proposal/0x4e58f9c1208121c0e06282b5541b458bc8c8b76090263e25448848f3194df986), [CIP-38](https://snapshot.org/#/cow.eth/proposal/0xfb81daea9be89f4f1c251d53fd9d1481129b97c6f38caaddc42af7f3ce5a52ec), and [CIP-48](https://snapshot.org/#/cow.eth/proposal/0x563ab9a66265ad72c47a8e55f620f927685dd07d4d49f6d1812905c683f05805). Solver rewards for participating in the price estimation competition and providing quotes that are needed for the gas estimates and limit price computations of market orders are specified in [CIP-27](https://snapshot.org/#/cow.eth/proposal/0x64e061568e86e8d2eec344d4a892e4126172b992cabe59a0b24c51c4c7e6cc33) and [CIP-36](https://snapshot.org/#/cow.eth/proposal/0x4e58f9c1208121c0e06282b5541b458bc8c8b76090263e25448848f3194df986). +The protocol is currently subsidizing the solver competition on all chains it operates on, by rewarding solvers on a weekly basis (currently, every Tuesday) with rewards paid in COW. Solvers are rewarded based on their performance as solvers (i.e., when participating in the standard solver competition) as specified by [CIP-20](https://snapshot.org/#/cow.eth/proposal/0x2d3f9bd1ea72dca84b03e97dda3efc1f4a42a772c54bd2037e8b62e7d09a491f), [CIP-36](https://snapshot.org/#/cow.eth/proposal/0x4e58f9c1208121c0e06282b5541b458bc8c8b76090263e25448848f3194df986), [CIP-38](https://snapshot.org/#/cow.eth/proposal/0xfb81daea9be89f4f1c251d53fd9d1481129b97c6f38caaddc42af7f3ce5a52ec), [CIP-48](https://snapshot.org/#/cow.eth/proposal/0x563ab9a66265ad72c47a8e55f620f927685dd07d4d49f6d1812905c683f05805) and [CIP-57](https://snapshot.box/#/s:cow.eth/proposal/0x46d4fea1492207cf400fcb7a01141a7d4c730791d658cc77236941fc9eb7dccb). Solver rewards for participating in the price estimation competition and providing quotes that are needed for the gas estimates and limit price computations of market orders are specified in [CIP-27](https://snapshot.org/#/cow.eth/proposal/0x64e061568e86e8d2eec344d4a892e4126172b992cabe59a0b24c51c4c7e6cc33) and [CIP-36](https://snapshot.org/#/cow.eth/proposal/0x4e58f9c1208121c0e06282b5541b458bc8c8b76090263e25448848f3194df986). :::note -For the interested reader, the main source of truth for the weekly payments to solvers is this [Dune dashboard](https://dune.com/cowprotocol/cow-solver-rewards). The dashboard is populated with data aggregated by scripts within the [solver-rewards](https://github.com/cowprotocol/solver-rewards) and [dune-sync](https://github.com/cowprotocol/dune-sync/) repositories. +For the interested reader, the main source of truth for the weekly payments to solvers is this [Dune dashboard](https://dune.com/cowprotocol/cow-solver-rewards). The dashboard is populated with data aggregated by scripts within the [solver-rewards](https://github.com/cowprotocol/solver-rewards) repository. ::: @@ -37,7 +37,9 @@ The payment calculation can result in a negative figure, in which case the solve ::: -The payment is capped from above and below using the function $$\textrm{cap}(x) = \max(-c_l, \min(c_u, x))$$ with $$c_l = 0.010 \;\textrm{ETH}$$ and $$c_u = 0.012 \;\textrm{ETH}$$. +The payment is capped from above and below using the function $$\textrm{cap}(x) = \max(-c_l, \min(c_u, x))$$ that is chain-specific, and is determined by the following values: +- Ethereum mainnet and Arbitrum: $$c_l = 0.010 \;\textrm{ETH}$$ and $$c_u = 0.012 \;\textrm{ETH}$$, +- Gnosis Chain: $$c_l = c_u = 10 \;\textrm{xDAI}$$. Submitted scores that are non-positive will be ignored. If only one solution is submitted, $$\textrm{referenceQuality}$$ is set to zero. Formally, this corresponds to always considering the empty solution which does not settle any trades and has quality zero as part of the submitted solutions. @@ -79,4 +81,9 @@ To summarize, there is a simple strategy that guarantees positive expected profi The price estimation competition is a separate competition where solvers compete to provide the best response to a quote request. Quote requests look almost identical to single-order batch auctions, where there is only one order with a trivial limit price, and solvers propose executions of this order with the goal to maximize "out amount minus gas costs", in the case of a sell request, or minimize "in amount + gas costs" in the case of a buy request. -As specified in [CIP-27](https://snapshot.org/#/cow.eth/proposal/0x64e061568e86e8d2eec344d4a892e4126172b992cabe59a0b24c51c4c7e6cc33) and [CIP-36](https://snapshot.org/#/cow.eth/proposal/0x4e58f9c1208121c0e06282b5541b458bc8c8b76090263e25448848f3194df986), solvers that participate in the price estimation competition are rewarded for each order that is within the market price, is associated with a quote that was computed as part of the price estimation competition, and was used in order to compute the limit price of the order. The protocol keeps track of the quote associated with each created order and the corresponding solver that provided the quote. If and when the order gets executed, the solver that provided the quote (which can be different than the solver that ended up executing the order) gets rewarded with $$min\{0.0006 ~ETH, 6 ~COW\}$$ where, again, the conversion from ETH to COW is done by using an up-to-date price. +As specified in [CIP-27](https://snapshot.org/#/cow.eth/proposal/0x64e061568e86e8d2eec344d4a892e4126172b992cabe59a0b24c51c4c7e6cc33), [CIP-36](https://snapshot.org/#/cow.eth/proposal/0x4e58f9c1208121c0e06282b5541b458bc8c8b76090263e25448848f3194df986) and [CIP-57](https://snapshot.box/#/s:cow.eth/proposal/0x46d4fea1492207cf400fcb7a01141a7d4c730791d658cc77236941fc9eb7dccb), solvers that participate in the price estimation competition are rewarded for each order that is within the market price, is associated with a quote that was computed as part of the price estimation competition, and was used in order to compute the limit price of the order. The protocol keeps track of the quote associated with each created order and the corresponding solver that provided the quote. If and when the order gets executed, the solver that provided the quote (which can be different than the solver that ended up executing the order) gets rewarded as follows: +- Ethereum mainnet: $$min\{0.0006 ~\textrm{ETH}, 6 ~\textrm{COW}\}$$, +- Arbitrum: $$min\{0.0002 ~\textrm{ETH}, 6 ~\textrm{COW}\}$$, +- Gnosis Chain: $$min\{0.15 ~\textrm{xDAI}, 6 ~\textrm{COW}\}$$, + +where, again, the conversion from ETH and xDAI to COW is done by using an up-to-date price. From 1bfb07e44654471bf50e1f88bfc071131ca0a619 Mon Sep 17 00:00:00 2001 From: harisang Date: Wed, 11 Dec 2024 18:48:58 +0200 Subject: [PATCH 02/15] minor fixes --- docs/cow-protocol/reference/core/auctions/rewards.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/cow-protocol/reference/core/auctions/rewards.md b/docs/cow-protocol/reference/core/auctions/rewards.md index aa5f3e12..bc571e96 100644 --- a/docs/cow-protocol/reference/core/auctions/rewards.md +++ b/docs/cow-protocol/reference/core/auctions/rewards.md @@ -13,7 +13,7 @@ For the interested reader, the main source of truth for the weekly payments to s ::: -## Solver competition rewards (CIP-20 & CIP-36 & CIP-38 & CIP-48) +## Solver competition rewards (CIPs 20, 36, 38, 48, 57) Solver rewards are computed using a mechanism akin to a second-price auction. First, each solver commits a solution, which includes a price vector and a list of trades to execute. The solver proposing the solution with the highest quality wins the right to settle their submitted solution on chain, where quality is the sum of surplus delivered to users and fees paid to the protocol. @@ -77,13 +77,13 @@ The presence of the cap on rewards $$c_u$$, however, makes the problem more comp To summarize, there is a simple strategy that guarantees positive expected profits to solvers. This strategy may not be optimal in uncompetitive auctions when the difference between the best and second best solution may be large. However, in these cases, deriving the optimal strategy is a very complex problem. We conclude by noting that most CoW Protocol batches are very competitive: the cap of on rewards is binding only in about 9% of auctions. -## Price estimation competition rewards (CIP-27) +## Price estimation competition rewards (CIPs 27, 57) The price estimation competition is a separate competition where solvers compete to provide the best response to a quote request. Quote requests look almost identical to single-order batch auctions, where there is only one order with a trivial limit price, and solvers propose executions of this order with the goal to maximize "out amount minus gas costs", in the case of a sell request, or minimize "in amount + gas costs" in the case of a buy request. As specified in [CIP-27](https://snapshot.org/#/cow.eth/proposal/0x64e061568e86e8d2eec344d4a892e4126172b992cabe59a0b24c51c4c7e6cc33), [CIP-36](https://snapshot.org/#/cow.eth/proposal/0x4e58f9c1208121c0e06282b5541b458bc8c8b76090263e25448848f3194df986) and [CIP-57](https://snapshot.box/#/s:cow.eth/proposal/0x46d4fea1492207cf400fcb7a01141a7d4c730791d658cc77236941fc9eb7dccb), solvers that participate in the price estimation competition are rewarded for each order that is within the market price, is associated with a quote that was computed as part of the price estimation competition, and was used in order to compute the limit price of the order. The protocol keeps track of the quote associated with each created order and the corresponding solver that provided the quote. If and when the order gets executed, the solver that provided the quote (which can be different than the solver that ended up executing the order) gets rewarded as follows: -- Ethereum mainnet: $$min\{0.0006 ~\textrm{ETH}, 6 ~\textrm{COW}\}$$, -- Arbitrum: $$min\{0.0002 ~\textrm{ETH}, 6 ~\textrm{COW}\}$$, -- Gnosis Chain: $$min\{0.15 ~\textrm{xDAI}, 6 ~\textrm{COW}\}$$, +- Ethereum mainnet: $$\min\{0.0006 ~\textrm{ETH}, 6 ~\textrm{COW}\}$$, +- Arbitrum: $$\min\{0.0002 ~\textrm{ETH}, 6 ~\textrm{COW}\}$$, +- Gnosis Chain: $$\min\{0.15 ~\textrm{xDAI}, 6 ~\textrm{COW}\}$$, where, again, the conversion from ETH and xDAI to COW is done by using an up-to-date price. From dbe35324ce3c4a5314d29e802027e583e448ebcc Mon Sep 17 00:00:00 2001 From: harisang Date: Thu, 12 Dec 2024 01:39:09 +0200 Subject: [PATCH 03/15] add bonding pool info --- .../reference/core/auctions/bonding_pools.md | 19 +++++++++++++++++++ .../core/auctions/competition_rules.md | 1 + .../tutorials/solvers/from_shadow_to_prod.md | 2 +- 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 docs/cow-protocol/reference/core/auctions/bonding_pools.md diff --git a/docs/cow-protocol/reference/core/auctions/bonding_pools.md b/docs/cow-protocol/reference/core/auctions/bonding_pools.md new file mode 100644 index 00000000..1cb3a98f --- /dev/null +++ b/docs/cow-protocol/reference/core/auctions/bonding_pools.md @@ -0,0 +1,19 @@ +--- +id: bonding-pools +--- + +# Bonding pools + +A bonding pool is an Ethereum mainnet safe whose sole owner is the CoW DAO, and which contains $0.5M worth of (yield-bearing) stable coins and 1.5M COW, as specified by [CIP-7](https://snapshot.org/#/cow.eth/proposal/0x267edf7a0bd3c771cfca763322f011ee106d8d5158612c11da29183260d1dba7). When a solver wants to join the solver competition, it first needs to join a bonding pool. The main rationale behind this is that a solver in the live competition gets access to the settlement contract, its buffers and the orderflow of the protocol, which means that the attack vector is non-trivial. For the protocol to be protected from a potentially malicious solver, a substantial bonding pool is required so that in case of misbehavior, there are sufficient funds to reimburse the affected parties (users and/or the DAO). + +Thus, in order to get whitelisted and be able to execute transactions onchain, each solver needs to join a bonding pool, and the onchain proof of a solver joining a pool is the "vouching" transaction. + +The vouching contract, that is deployed on every chain the protocol operates on, allows the creators of a bonding pool to publicly vouch for a solver address; this is the only certificate that is currently accepted for proving that a solver has joined a bonding pool. Once such vouching has taken place, then the core team is mandated to proceed with the white-listing of the solver. + +:::note +The vouching contract addresses are the following: +- Mainnet: https://etherscan.io/address/0xb422f2520b0b7FD86f7DA61b32Cc631A59ed7E8F +- Gnosis: https://gnosisscan.io/address/0xAAA4De096D02AE21729aA31D967E148D4e3Ae501 +- Arbitrum: https://arbiscan.io/address/0xAAA4De096D02AE21729aA31D967E148D4e3Ae501 +- Base: https://basescan.org/address/0xAAA4De096D02AE21729aA31D967E148D4e3Ae501 +::: diff --git a/docs/cow-protocol/reference/core/auctions/competition_rules.md b/docs/cow-protocol/reference/core/auctions/competition_rules.md index adabe076..eb391175 100644 --- a/docs/cow-protocol/reference/core/auctions/competition_rules.md +++ b/docs/cow-protocol/reference/core/auctions/competition_rules.md @@ -14,6 +14,7 @@ All solvers participating in the solver competition must abide by certain rules. ## Smart contract - Limit price constraint: this rule enforces that an order cannot be executed if its limit price is violated. +- Solver submitting a transaction needs to be whitelisted (the process on how a solver can get whitelisted is described [here](/cow-protocol/reference/core/auctions/bonding-pools)) ## Off-chain protocol diff --git a/docs/cow-protocol/tutorials/solvers/from_shadow_to_prod.md b/docs/cow-protocol/tutorials/solvers/from_shadow_to_prod.md index 51ca0916..80920da1 100644 --- a/docs/cow-protocol/tutorials/solvers/from_shadow_to_prod.md +++ b/docs/cow-protocol/tutorials/solvers/from_shadow_to_prod.md @@ -17,7 +17,7 @@ In order to get connected to the shadow competition, feel free to reach out to a ## Live competition (production) -- To connect to the live competition, each solver is required to be part of a "bonding pool", as specified by [CIP-7](https://snapshot.org/#/cow.eth/proposal/0x267edf7a0bd3c771cfca763322f011ee106d8d5158612c11da29183260d1dba7). The main rationale behind this is that a solver in the live competition gets access to the settlement contract, its buffers and the orderflow of the protocol. For the protocol to be protected from a potentially malicious solver, a substantial bonding pool is required so that in case of misbehavior, there are sufficient funds to reimburse the affected parties (users and/or the DAO). +- To connect to the live competition, each solver is required to be part of a "bonding pool", as specified by [CIP-7](https://snapshot.org/#/cow.eth/proposal/0x267edf7a0bd3c771cfca763322f011ee106d8d5158612c11da29183260d1dba7); see [this section](/cow-protocol/reference/core/auctions/bonding-pools) for more details. :::note From 21ea9a214bb7e7da3c884837fad3587d92099782 Mon Sep 17 00:00:00 2001 From: harisang Date: Thu, 12 Dec 2024 01:50:13 +0200 Subject: [PATCH 04/15] minor edits --- docs/cow-protocol/reference/core/auctions/competition_rules.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/cow-protocol/reference/core/auctions/competition_rules.md b/docs/cow-protocol/reference/core/auctions/competition_rules.md index eb391175..ec5f29e2 100644 --- a/docs/cow-protocol/reference/core/auctions/competition_rules.md +++ b/docs/cow-protocol/reference/core/auctions/competition_rules.md @@ -14,7 +14,7 @@ All solvers participating in the solver competition must abide by certain rules. ## Smart contract - Limit price constraint: this rule enforces that an order cannot be executed if its limit price is violated. -- Solver submitting a transaction needs to be whitelisted (the process on how a solver can get whitelisted is described [here](/cow-protocol/reference/core/auctions/bonding-pools)) +- Solver submitting a transaction needs to be whitelisted (the process about how a solver can get whitelisted is described [here](/cow-protocol/reference/core/auctions/bonding-pools)). ## Off-chain protocol From 329dc1401fbf422c7737e0e858750d4f0df0b896 Mon Sep 17 00:00:00 2001 From: harisang Date: Mon, 16 Dec 2024 19:09:32 +0200 Subject: [PATCH 05/15] address review comment --- docs/cow-protocol/reference/core/auctions/rewards.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/cow-protocol/reference/core/auctions/rewards.md b/docs/cow-protocol/reference/core/auctions/rewards.md index bc571e96..7468d760 100644 --- a/docs/cow-protocol/reference/core/auctions/rewards.md +++ b/docs/cow-protocol/reference/core/auctions/rewards.md @@ -86,4 +86,4 @@ As specified in [CIP-27](https://snapshot.org/#/cow.eth/proposal/0x64e061568e86e - Arbitrum: $$\min\{0.0002 ~\textrm{ETH}, 6 ~\textrm{COW}\}$$, - Gnosis Chain: $$\min\{0.15 ~\textrm{xDAI}, 6 ~\textrm{COW}\}$$, -where, again, the conversion from ETH and xDAI to COW is done by using an up-to-date price. +where, again, the conversion from ETH and xDAI to COW is done by using an up-to-date price (specifically, the average ETH/xDAI/COW Dune prices of the past 24h before the payout are used to determine these exchange rates). From 554ce965545b66241d2bb5d0c7ce4aef92eac8fb Mon Sep 17 00:00:00 2001 From: = Date: Mon, 16 Dec 2024 18:28:23 +0100 Subject: [PATCH 06/15] Add information about bonding pools --- .../reference/core/auctions/bonding_pools.md | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/docs/cow-protocol/reference/core/auctions/bonding_pools.md b/docs/cow-protocol/reference/core/auctions/bonding_pools.md index 1cb3a98f..c2ba89bb 100644 --- a/docs/cow-protocol/reference/core/auctions/bonding_pools.md +++ b/docs/cow-protocol/reference/core/auctions/bonding_pools.md @@ -17,3 +17,32 @@ The vouching contract addresses are the following: - Arbitrum: https://arbiscan.io/address/0xAAA4De096D02AE21729aA31D967E148D4e3Ae501 - Base: https://basescan.org/address/0xAAA4De096D02AE21729aA31D967E148D4e3Ae501 ::: + +# Setting up a bonding pool +The first step for setting up a bonding pool is to deploy a Gnosis safe on Mainnet with only [the CoW DAO safe](https://etherscan.io/address/0xcA771eda0c70aA7d053aB1B25004559B918FE662) as a signer as is described in [CIP-7](https://snapshot.box/#/s:cow.eth/proposal/0x267edf7a0bd3c771cfca763322f011ee106d8d5158612c11da29183260d1dba7). + +Once this safe has been confirmed by the CoW DAO team, the safe should be funded with $500.000 USD in stable coins and 1.500.000 COW tokens. After this is done, the bonding pool can be used to vouch for solvers in the solver competition. + +# Setting up a reduced bonding pool +Solvers that are currently vouched under the CoW Bonding pool may decide to set up a reduced bonding pool according to [CIP-44](https://snapshot.box/#/s:cow.eth/proposal/0x1b6f1171633ec3d20c4370db37074aa1bd830486d4d0d6c26165915cc42d9412). + +The first step for setting up a reduced bonding pool is to deploy a Gnosis safe on Mainnet that has only one signer ([the CoW DAO Solver Payouts safe](0xA03be496e67Ec29bC62F01a428683D7F9c204930)). After this is done and has been confirmed by the CoW DAO team, the solver will deposit $50.000 in yield bearing stable coins or ETH and 500.000 COW tokens to the newly created safe. + +# How to join a bonding pool +This is done by vouching for a solver's submission address and rewards address with the bonding pool address. This is done by calling the `Vouch` method on the [VouchRegister contract](https://etherscan.io/address/0xb422f2520b0b7fd86f7da61b32cc631a59ed7e8f) using the address that owns the bonding pool (the address that sent the full initial funding to the bonding pool). + +Vouching contracts: +- [Mainnet](https://etherscan.io/address/0xb422f2520b0b7FD86f7DA61b32Cc631A59ed7E8F) +- [Gnosis Chain](https://gnosisscan.io/address/0xAAA4De096D02AE21729aA31D967E148D4e3Ae501) +- [Arbitrum](https://arbiscan.io/address/0xAAA4De096D02AE21729aA31D967E148D4e3Ae501) +- [Base](https://basescan.org/address/0xAAA4De096D02AE21729aA31D967E148D4e3Ae501) + +The `Vouch` method receives a list as an argument and can vouch for multiple submission addresses in a single transaction. The transaction must contain: the submission address for the solver, the bonding pool that is vouching for the solver, and the rewards address that the solver would like to use to receive their [rewards](https://docs.cow.fi/cow-protocol/reference/core/auctions/rewards). + +# How to leave a bonding pool +Leaving a bonding pool involves the same process as joining a bonding pool, except that the owner of the bonding pool will call the `invalidateVouching` method instead with the solver's submission address and the bonding pool that vouched for the solver as arguments. + +# How to dissolve a bonding pool +In order to dissolve a bonding pool you must first post a CIP to unwind the bonding pool. This involves first writing a post on [the CoW forum](https://forum.cow.fi/). This can be a very short post detailing the safe creation address and which address funded the pools together with the transaction details for dissolving the bonding pool. [Here is an example from the dissolution of the Project Blanc bonding pool.](https://forum.cow.fi/t/cip-54-dissolve-project-blanc-bonding-pool/2645) + +After some discussion in the forum, you will need to post a [CIP on snapshot](https://snapshot.box/#/s:cow.eth). This CIP should contain details of the creation of the bond and details of how the bond will be dissolved. Alongside this it should contain a simulation of the transaction to dissolve the bond that would be executed if the CIP passes. [For example, here is the CIP that proposed the dissolution of the Project Blanc bonding pool.](https://snapshot.box/#/s:cow.eth/proposal/0x2638ee59df1f402421fe69abe76cd0154ec32d8b4ad88a136318c6c8c76b210d) From de30ce1d4bac26570368a29213bc1b37d0446176 Mon Sep 17 00:00:00 2001 From: = Date: Mon, 16 Dec 2024 19:25:58 +0100 Subject: [PATCH 07/15] Apply PR feedback --- docs/cow-protocol/reference/core/auctions/bonding_pools.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/cow-protocol/reference/core/auctions/bonding_pools.md b/docs/cow-protocol/reference/core/auctions/bonding_pools.md index c2ba89bb..de582afd 100644 --- a/docs/cow-protocol/reference/core/auctions/bonding_pools.md +++ b/docs/cow-protocol/reference/core/auctions/bonding_pools.md @@ -21,7 +21,7 @@ The vouching contract addresses are the following: # Setting up a bonding pool The first step for setting up a bonding pool is to deploy a Gnosis safe on Mainnet with only [the CoW DAO safe](https://etherscan.io/address/0xcA771eda0c70aA7d053aB1B25004559B918FE662) as a signer as is described in [CIP-7](https://snapshot.box/#/s:cow.eth/proposal/0x267edf7a0bd3c771cfca763322f011ee106d8d5158612c11da29183260d1dba7). -Once this safe has been confirmed by the CoW DAO team, the safe should be funded with $500.000 USD in stable coins and 1.500.000 COW tokens. After this is done, the bonding pool can be used to vouch for solvers in the solver competition. +Once this safe has been confirmed by the CoW DAO team, the safe should be funded with $500.000 USD in yield bearing stable coins and 1.500.000 COW tokens. After this is done, the bonding pool can be used to vouch for solvers in the solver competition. # Setting up a reduced bonding pool Solvers that are currently vouched under the CoW Bonding pool may decide to set up a reduced bonding pool according to [CIP-44](https://snapshot.box/#/s:cow.eth/proposal/0x1b6f1171633ec3d20c4370db37074aa1bd830486d4d0d6c26165915cc42d9412). @@ -29,7 +29,7 @@ Solvers that are currently vouched under the CoW Bonding pool may decide to set The first step for setting up a reduced bonding pool is to deploy a Gnosis safe on Mainnet that has only one signer ([the CoW DAO Solver Payouts safe](0xA03be496e67Ec29bC62F01a428683D7F9c204930)). After this is done and has been confirmed by the CoW DAO team, the solver will deposit $50.000 in yield bearing stable coins or ETH and 500.000 COW tokens to the newly created safe. # How to join a bonding pool -This is done by vouching for a solver's submission address and rewards address with the bonding pool address. This is done by calling the `Vouch` method on the [VouchRegister contract](https://etherscan.io/address/0xb422f2520b0b7fd86f7da61b32cc631a59ed7e8f) using the address that owns the bonding pool (the address that sent the full initial funding to the bonding pool). +This is done by vouching for a solver's submission address and rewards address with the bonding pool address. This is done by calling the `Vouch` method on the [VouchRegister contract](https://etherscan.io/address/0xb422f2520b0b7fd86f7da61b32cc631a59ed7e8f) using the address that owns the bonding pool (the address that created the bonding pool). Vouching contracts: - [Mainnet](https://etherscan.io/address/0xb422f2520b0b7FD86f7DA61b32Cc631A59ed7E8F) From af7e8d7bc716d62b899d1bc1f0cb9b41f1c6c15c Mon Sep 17 00:00:00 2001 From: = Date: Mon, 16 Dec 2024 19:31:54 +0100 Subject: [PATCH 08/15] Apply PR feedback --- .../reference/core/auctions/bonding_pools.md | 20 ++----------------- 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/docs/cow-protocol/reference/core/auctions/bonding_pools.md b/docs/cow-protocol/reference/core/auctions/bonding_pools.md index de582afd..88761622 100644 --- a/docs/cow-protocol/reference/core/auctions/bonding_pools.md +++ b/docs/cow-protocol/reference/core/auctions/bonding_pools.md @@ -2,22 +2,6 @@ id: bonding-pools --- -# Bonding pools - -A bonding pool is an Ethereum mainnet safe whose sole owner is the CoW DAO, and which contains $0.5M worth of (yield-bearing) stable coins and 1.5M COW, as specified by [CIP-7](https://snapshot.org/#/cow.eth/proposal/0x267edf7a0bd3c771cfca763322f011ee106d8d5158612c11da29183260d1dba7). When a solver wants to join the solver competition, it first needs to join a bonding pool. The main rationale behind this is that a solver in the live competition gets access to the settlement contract, its buffers and the orderflow of the protocol, which means that the attack vector is non-trivial. For the protocol to be protected from a potentially malicious solver, a substantial bonding pool is required so that in case of misbehavior, there are sufficient funds to reimburse the affected parties (users and/or the DAO). - -Thus, in order to get whitelisted and be able to execute transactions onchain, each solver needs to join a bonding pool, and the onchain proof of a solver joining a pool is the "vouching" transaction. - -The vouching contract, that is deployed on every chain the protocol operates on, allows the creators of a bonding pool to publicly vouch for a solver address; this is the only certificate that is currently accepted for proving that a solver has joined a bonding pool. Once such vouching has taken place, then the core team is mandated to proceed with the white-listing of the solver. - -:::note -The vouching contract addresses are the following: -- Mainnet: https://etherscan.io/address/0xb422f2520b0b7FD86f7DA61b32Cc631A59ed7E8F -- Gnosis: https://gnosisscan.io/address/0xAAA4De096D02AE21729aA31D967E148D4e3Ae501 -- Arbitrum: https://arbiscan.io/address/0xAAA4De096D02AE21729aA31D967E148D4e3Ae501 -- Base: https://basescan.org/address/0xAAA4De096D02AE21729aA31D967E148D4e3Ae501 -::: - # Setting up a bonding pool The first step for setting up a bonding pool is to deploy a Gnosis safe on Mainnet with only [the CoW DAO safe](https://etherscan.io/address/0xcA771eda0c70aA7d053aB1B25004559B918FE662) as a signer as is described in [CIP-7](https://snapshot.box/#/s:cow.eth/proposal/0x267edf7a0bd3c771cfca763322f011ee106d8d5158612c11da29183260d1dba7). @@ -43,6 +27,6 @@ The `Vouch` method receives a list as an argument and can vouch for multiple sub Leaving a bonding pool involves the same process as joining a bonding pool, except that the owner of the bonding pool will call the `invalidateVouching` method instead with the solver's submission address and the bonding pool that vouched for the solver as arguments. # How to dissolve a bonding pool -In order to dissolve a bonding pool you must first post a CIP to unwind the bonding pool. This involves first writing a post on [the CoW forum](https://forum.cow.fi/). This can be a very short post detailing the safe creation address and which address funded the pools together with the transaction details for dissolving the bonding pool. [Here is an example from the dissolution of the Project Blanc bonding pool.](https://forum.cow.fi/t/cip-54-dissolve-project-blanc-bonding-pool/2645) +In order to dissolve a bonding pool you must first unvouch for all solvers that have been vouched for by this bonding pool. Then you can post a CIP to unwind the bonding pool. This involves first writing a post on [the CoW forum](https://forum.cow.fi/). This can be a very short post detailing the safe creation address and which address funded the pools together with the transaction details for dissolving the bonding pool. [Here is an example from the dissolution of the Project Blanc bonding pool.](https://forum.cow.fi/t/cip-54-dissolve-project-blanc-bonding-pool/2645) -After some discussion in the forum, you will need to post a [CIP on snapshot](https://snapshot.box/#/s:cow.eth). This CIP should contain details of the creation of the bond and details of how the bond will be dissolved. Alongside this it should contain a simulation of the transaction to dissolve the bond that would be executed if the CIP passes. [For example, here is the CIP that proposed the dissolution of the Project Blanc bonding pool.](https://snapshot.box/#/s:cow.eth/proposal/0x2638ee59df1f402421fe69abe76cd0154ec32d8b4ad88a136318c6c8c76b210d) +After the post has been in the forum for at least 6 days, you will need to post a [CIP on snapshot](https://snapshot.box/#/s:cow.eth). This CIP should contain details of the creation of the bond and details of how the bond will be dissolved. Alongside this it should contain a simulation of the transaction to dissolve the bond that would be executed if the CIP passes. [For example, here is the CIP that proposed the dissolution of the Project Blanc bonding pool.](https://snapshot.box/#/s:cow.eth/proposal/0x2638ee59df1f402421fe69abe76cd0154ec32d8b4ad88a136318c6c8c76b210d) From 45d44e0a350c497b75075bcb0b7ffc33d20de3e1 Mon Sep 17 00:00:00 2001 From: bram-vdberg Date: Tue, 17 Dec 2024 07:58:58 +0100 Subject: [PATCH 09/15] Update docs/cow-protocol/reference/core/auctions/bonding_pools.md Co-authored-by: Haris Angelidakis <64154020+harisang@users.noreply.github.com> --- docs/cow-protocol/reference/core/auctions/bonding_pools.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/cow-protocol/reference/core/auctions/bonding_pools.md b/docs/cow-protocol/reference/core/auctions/bonding_pools.md index 88761622..ea5d20e7 100644 --- a/docs/cow-protocol/reference/core/auctions/bonding_pools.md +++ b/docs/cow-protocol/reference/core/auctions/bonding_pools.md @@ -21,7 +21,7 @@ Vouching contracts: - [Arbitrum](https://arbiscan.io/address/0xAAA4De096D02AE21729aA31D967E148D4e3Ae501) - [Base](https://basescan.org/address/0xAAA4De096D02AE21729aA31D967E148D4e3Ae501) -The `Vouch` method receives a list as an argument and can vouch for multiple submission addresses in a single transaction. The transaction must contain: the submission address for the solver, the bonding pool that is vouching for the solver, and the rewards address that the solver would like to use to receive their [rewards](https://docs.cow.fi/cow-protocol/reference/core/auctions/rewards). +The `Vouch` method receives a list as an argument and can vouch for multiple submission addresses in a single transaction. The transaction must contain: the submission address for the solver, the bonding pool that is vouching for the solver, and the rewards address that the solver would like to use to receive their [rewards](/cow-protocol/reference/core/auctions/rewards). # How to leave a bonding pool Leaving a bonding pool involves the same process as joining a bonding pool, except that the owner of the bonding pool will call the `invalidateVouching` method instead with the solver's submission address and the bonding pool that vouched for the solver as arguments. From 4b170976c29a2b00a8764a789675af28105f077c Mon Sep 17 00:00:00 2001 From: bram-vdberg Date: Tue, 17 Dec 2024 07:59:12 +0100 Subject: [PATCH 10/15] Update docs/cow-protocol/reference/core/auctions/bonding_pools.md Co-authored-by: Haris Angelidakis <64154020+harisang@users.noreply.github.com> --- docs/cow-protocol/reference/core/auctions/bonding_pools.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/cow-protocol/reference/core/auctions/bonding_pools.md b/docs/cow-protocol/reference/core/auctions/bonding_pools.md index ea5d20e7..342bc837 100644 --- a/docs/cow-protocol/reference/core/auctions/bonding_pools.md +++ b/docs/cow-protocol/reference/core/auctions/bonding_pools.md @@ -13,7 +13,7 @@ Solvers that are currently vouched under the CoW Bonding pool may decide to set The first step for setting up a reduced bonding pool is to deploy a Gnosis safe on Mainnet that has only one signer ([the CoW DAO Solver Payouts safe](0xA03be496e67Ec29bC62F01a428683D7F9c204930)). After this is done and has been confirmed by the CoW DAO team, the solver will deposit $50.000 in yield bearing stable coins or ETH and 500.000 COW tokens to the newly created safe. # How to join a bonding pool -This is done by vouching for a solver's submission address and rewards address with the bonding pool address. This is done by calling the `Vouch` method on the [VouchRegister contract](https://etherscan.io/address/0xb422f2520b0b7fd86f7da61b32cc631a59ed7e8f) using the address that owns the bonding pool (the address that created the bonding pool). +This is done by vouching for a solver's submission address and rewards address with the bonding pool address. This is done by calling the `Vouch` method on the VouchRegister contract using the address that created the bonding pool. Vouching contracts: - [Mainnet](https://etherscan.io/address/0xb422f2520b0b7FD86f7DA61b32Cc631A59ed7E8F) From 60d78f557e2f6cd537e3509f4ace9925bc0d5f39 Mon Sep 17 00:00:00 2001 From: bram-vdberg Date: Tue, 17 Dec 2024 07:59:24 +0100 Subject: [PATCH 11/15] Update docs/cow-protocol/reference/core/auctions/bonding_pools.md Co-authored-by: Haris Angelidakis <64154020+harisang@users.noreply.github.com> --- docs/cow-protocol/reference/core/auctions/bonding_pools.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/cow-protocol/reference/core/auctions/bonding_pools.md b/docs/cow-protocol/reference/core/auctions/bonding_pools.md index 342bc837..9b26fbe0 100644 --- a/docs/cow-protocol/reference/core/auctions/bonding_pools.md +++ b/docs/cow-protocol/reference/core/auctions/bonding_pools.md @@ -8,7 +8,7 @@ The first step for setting up a bonding pool is to deploy a Gnosis safe on Mainn Once this safe has been confirmed by the CoW DAO team, the safe should be funded with $500.000 USD in yield bearing stable coins and 1.500.000 COW tokens. After this is done, the bonding pool can be used to vouch for solvers in the solver competition. # Setting up a reduced bonding pool -Solvers that are currently vouched under the CoW Bonding pool may decide to set up a reduced bonding pool according to [CIP-44](https://snapshot.box/#/s:cow.eth/proposal/0x1b6f1171633ec3d20c4370db37074aa1bd830486d4d0d6c26165915cc42d9412). +Solvers that are currently vouched under the CoW DAO Bonding pool may decide to set up a reduced bonding pool according to [CIP-44](https://snapshot.box/#/s:cow.eth/proposal/0x1b6f1171633ec3d20c4370db37074aa1bd830486d4d0d6c26165915cc42d9412). Note that the interested solver team first needs to coordinate with the core team, that is currently managing the CoW DAO bonding pool, and the core team maintains the right to reject such a reduced pool setup. The first step for setting up a reduced bonding pool is to deploy a Gnosis safe on Mainnet that has only one signer ([the CoW DAO Solver Payouts safe](0xA03be496e67Ec29bC62F01a428683D7F9c204930)). After this is done and has been confirmed by the CoW DAO team, the solver will deposit $50.000 in yield bearing stable coins or ETH and 500.000 COW tokens to the newly created safe. From fb5cca91eed2cd9bb9ac9732857c86ce1e058d24 Mon Sep 17 00:00:00 2001 From: = Date: Tue, 17 Dec 2024 08:02:07 +0100 Subject: [PATCH 12/15] Fix number formatting --- docs/cow-protocol/reference/core/auctions/bonding_pools.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/cow-protocol/reference/core/auctions/bonding_pools.md b/docs/cow-protocol/reference/core/auctions/bonding_pools.md index 9b26fbe0..7737d16c 100644 --- a/docs/cow-protocol/reference/core/auctions/bonding_pools.md +++ b/docs/cow-protocol/reference/core/auctions/bonding_pools.md @@ -5,12 +5,12 @@ id: bonding-pools # Setting up a bonding pool The first step for setting up a bonding pool is to deploy a Gnosis safe on Mainnet with only [the CoW DAO safe](https://etherscan.io/address/0xcA771eda0c70aA7d053aB1B25004559B918FE662) as a signer as is described in [CIP-7](https://snapshot.box/#/s:cow.eth/proposal/0x267edf7a0bd3c771cfca763322f011ee106d8d5158612c11da29183260d1dba7). -Once this safe has been confirmed by the CoW DAO team, the safe should be funded with $500.000 USD in yield bearing stable coins and 1.500.000 COW tokens. After this is done, the bonding pool can be used to vouch for solvers in the solver competition. +Once this safe has been confirmed by the CoW DAO team, the safe should be funded with $500,000 USD in yield bearing stable coins and 1,500,000 COW tokens. After this is done, the bonding pool can be used to vouch for solvers in the solver competition. # Setting up a reduced bonding pool Solvers that are currently vouched under the CoW DAO Bonding pool may decide to set up a reduced bonding pool according to [CIP-44](https://snapshot.box/#/s:cow.eth/proposal/0x1b6f1171633ec3d20c4370db37074aa1bd830486d4d0d6c26165915cc42d9412). Note that the interested solver team first needs to coordinate with the core team, that is currently managing the CoW DAO bonding pool, and the core team maintains the right to reject such a reduced pool setup. -The first step for setting up a reduced bonding pool is to deploy a Gnosis safe on Mainnet that has only one signer ([the CoW DAO Solver Payouts safe](0xA03be496e67Ec29bC62F01a428683D7F9c204930)). After this is done and has been confirmed by the CoW DAO team, the solver will deposit $50.000 in yield bearing stable coins or ETH and 500.000 COW tokens to the newly created safe. +The first step for setting up a reduced bonding pool is to deploy a Gnosis safe on Mainnet that has only one signer ([the CoW DAO Solver Payouts safe](0xA03be496e67Ec29bC62F01a428683D7F9c204930)). After this is done and has been confirmed by the CoW DAO team, the solver will deposit $50,000 in yield bearing stable coins or ETH and 500,000 COW tokens to the newly created safe. # How to join a bonding pool This is done by vouching for a solver's submission address and rewards address with the bonding pool address. This is done by calling the `Vouch` method on the VouchRegister contract using the address that created the bonding pool. From 0ac98ef85d36233f0f475d8b3e7319925d196a1b Mon Sep 17 00:00:00 2001 From: Haris Angelidakis <64154020+harisang@users.noreply.github.com> Date: Tue, 17 Dec 2024 09:54:59 +0200 Subject: [PATCH 13/15] Update docs/cow-protocol/reference/core/auctions/bonding_pools.md Small fix --- docs/cow-protocol/reference/core/auctions/bonding_pools.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/cow-protocol/reference/core/auctions/bonding_pools.md b/docs/cow-protocol/reference/core/auctions/bonding_pools.md index 7737d16c..49ea0373 100644 --- a/docs/cow-protocol/reference/core/auctions/bonding_pools.md +++ b/docs/cow-protocol/reference/core/auctions/bonding_pools.md @@ -10,7 +10,7 @@ Once this safe has been confirmed by the CoW DAO team, the safe should be funded # Setting up a reduced bonding pool Solvers that are currently vouched under the CoW DAO Bonding pool may decide to set up a reduced bonding pool according to [CIP-44](https://snapshot.box/#/s:cow.eth/proposal/0x1b6f1171633ec3d20c4370db37074aa1bd830486d4d0d6c26165915cc42d9412). Note that the interested solver team first needs to coordinate with the core team, that is currently managing the CoW DAO bonding pool, and the core team maintains the right to reject such a reduced pool setup. -The first step for setting up a reduced bonding pool is to deploy a Gnosis safe on Mainnet that has only one signer ([the CoW DAO Solver Payouts safe](0xA03be496e67Ec29bC62F01a428683D7F9c204930)). After this is done and has been confirmed by the CoW DAO team, the solver will deposit $50,000 in yield bearing stable coins or ETH and 500,000 COW tokens to the newly created safe. +The first step for setting up a reduced bonding pool is to deploy a Gnosis safe on Mainnet that has only one signer (the CoW DAO Solver Payouts safe, that is, eth:0xA03be496e67Ec29bC62F01a428683D7F9c204930). After this is done and has been confirmed by the CoW DAO team, the solver will deposit $50,000 in yield bearing stable coins or ETH and 500,000 COW tokens to the newly created safe. # How to join a bonding pool This is done by vouching for a solver's submission address and rewards address with the bonding pool address. This is done by calling the `Vouch` method on the VouchRegister contract using the address that created the bonding pool. From d9777726b90f12f7d583a26852effcd2f582c1e0 Mon Sep 17 00:00:00 2001 From: harisang Date: Wed, 18 Dec 2024 02:53:47 +0200 Subject: [PATCH 14/15] add clarifications --- .../reference/core/auctions/bonding_pools.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/cow-protocol/reference/core/auctions/bonding_pools.md b/docs/cow-protocol/reference/core/auctions/bonding_pools.md index 49ea0373..18fea21f 100644 --- a/docs/cow-protocol/reference/core/auctions/bonding_pools.md +++ b/docs/cow-protocol/reference/core/auctions/bonding_pools.md @@ -3,14 +3,16 @@ id: bonding-pools --- # Setting up a bonding pool -The first step for setting up a bonding pool is to deploy a Gnosis safe on Mainnet with only [the CoW DAO safe](https://etherscan.io/address/0xcA771eda0c70aA7d053aB1B25004559B918FE662) as a signer as is described in [CIP-7](https://snapshot.box/#/s:cow.eth/proposal/0x267edf7a0bd3c771cfca763322f011ee106d8d5158612c11da29183260d1dba7). +The first step for setting up a bonding pool is to deploy a Gnosis safe on Mainnet with only [the CoW DAO safe](https://etherscan.io/address/0xcA771eda0c70aA7d053aB1B25004559B918FE662) as a signer, as is described in [CIP-7](https://snapshot.box/#/s:cow.eth/proposal/0x267edf7a0bd3c771cfca763322f011ee106d8d5158612c11da29183260d1dba7). -Once this safe has been confirmed by the CoW DAO team, the safe should be funded with $500,000 USD in yield bearing stable coins and 1,500,000 COW tokens. After this is done, the bonding pool can be used to vouch for solvers in the solver competition. +Once this safe has been confirmed by the CoW DAO team, the safe should be funded with $500,000 USD in (yield bearing) stable coins and 1,500,000 COW tokens. After this is done, the bonding pool can be used to vouch for solvers in the solver competition. # Setting up a reduced bonding pool -Solvers that are currently vouched under the CoW DAO Bonding pool may decide to set up a reduced bonding pool according to [CIP-44](https://snapshot.box/#/s:cow.eth/proposal/0x1b6f1171633ec3d20c4370db37074aa1bd830486d4d0d6c26165915cc42d9412). Note that the interested solver team first needs to coordinate with the core team, that is currently managing the CoW DAO bonding pool, and the core team maintains the right to reject such a reduced pool setup. +Solvers that are currently vouched under the CoW DAO Bonding pool may decide to set up a reduced bonding pool according to [CIP-44](https://snapshot.box/#/s:cow.eth/proposal/0x1b6f1171633ec3d20c4370db37074aa1bd830486d4d0d6c26165915cc42d9412), where the main benefit is that then they can fully control their calldata and the onchain submission process. Note that the interested solver team first needs to coordinate with the core team, that is currently managing the CoW DAO bonding pool, and the core team maintains the right to reject such a reduced pool setup. -The first step for setting up a reduced bonding pool is to deploy a Gnosis safe on Mainnet that has only one signer (the CoW DAO Solver Payouts safe, that is, eth:0xA03be496e67Ec29bC62F01a428683D7F9c204930). After this is done and has been confirmed by the CoW DAO team, the solver will deposit $50,000 in yield bearing stable coins or ETH and 500,000 COW tokens to the newly created safe. +Assuming that the core team does approve the creation of a reduced bonding pool, the first step for setting up a reduced bonding pool is to deploy a Gnosis safe on Mainnet that has only one signer (the CoW DAO Solver Payouts safe, that is, eth:0xA03be496e67Ec29bC62F01a428683D7F9c204930). After this is done and has been confirmed by the CoW DAO team, the solver needs to deposit $50,000 in (yield bearing) stable coins or ETH and 500,000 COW tokens to the newly created safe, and gradually build the pool's size all the way to $100,000 in (yield bearing) stable coins or ETH, and 1,000,000 COW tokens. + +We stress that the reduced bonding pool setup is just an arrangement within the CoW DAO bonding pool; meaning that the solver with a reduced bonding pool is still formally vouched under the CoW DAO bonding pool. # How to join a bonding pool This is done by vouching for a solver's submission address and rewards address with the bonding pool address. This is done by calling the `Vouch` method on the VouchRegister contract using the address that created the bonding pool. From 32cbaa860d5a0551213238242798539e449a221a Mon Sep 17 00:00:00 2001 From: harisang Date: Wed, 18 Dec 2024 02:56:44 +0200 Subject: [PATCH 15/15] add comma --- docs/cow-protocol/reference/core/auctions/bonding_pools.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/cow-protocol/reference/core/auctions/bonding_pools.md b/docs/cow-protocol/reference/core/auctions/bonding_pools.md index 18fea21f..c2404590 100644 --- a/docs/cow-protocol/reference/core/auctions/bonding_pools.md +++ b/docs/cow-protocol/reference/core/auctions/bonding_pools.md @@ -10,7 +10,7 @@ Once this safe has been confirmed by the CoW DAO team, the safe should be funded # Setting up a reduced bonding pool Solvers that are currently vouched under the CoW DAO Bonding pool may decide to set up a reduced bonding pool according to [CIP-44](https://snapshot.box/#/s:cow.eth/proposal/0x1b6f1171633ec3d20c4370db37074aa1bd830486d4d0d6c26165915cc42d9412), where the main benefit is that then they can fully control their calldata and the onchain submission process. Note that the interested solver team first needs to coordinate with the core team, that is currently managing the CoW DAO bonding pool, and the core team maintains the right to reject such a reduced pool setup. -Assuming that the core team does approve the creation of a reduced bonding pool, the first step for setting up a reduced bonding pool is to deploy a Gnosis safe on Mainnet that has only one signer (the CoW DAO Solver Payouts safe, that is, eth:0xA03be496e67Ec29bC62F01a428683D7F9c204930). After this is done and has been confirmed by the CoW DAO team, the solver needs to deposit $50,000 in (yield bearing) stable coins or ETH and 500,000 COW tokens to the newly created safe, and gradually build the pool's size all the way to $100,000 in (yield bearing) stable coins or ETH, and 1,000,000 COW tokens. +Assuming that the core team does approve the creation of a reduced bonding pool, the first step for setting up a reduced bonding pool is to deploy a Gnosis safe on Mainnet that has only one signer (the CoW DAO Solver Payouts safe, that is, eth:0xA03be496e67Ec29bC62F01a428683D7F9c204930). After this is done and has been confirmed by the CoW DAO team, the solver needs to deposit $50,000 in (yield bearing) stable coins or ETH, and 500,000 COW tokens to the newly created safe, and gradually build the pool's size all the way to $100,000 in (yield bearing) stable coins or ETH, and 1,000,000 COW tokens. We stress that the reduced bonding pool setup is just an arrangement within the CoW DAO bonding pool; meaning that the solver with a reduced bonding pool is still formally vouched under the CoW DAO bonding pool.