CoW Protocol Glossary
Intent to Trade: When users submit orders on CoW Swap, they are not actually initiating a blockchain transaction, like they would on Uniswap. Instead, orders are submitted as signed “intent to trade” messages which include the details of the intended trade, but are not actually submitted to the blockchain. From here, independent parties known as “solvers” find the best execution path for the specified trade and execute the trade on-chain on behalf of the user. If a trade route cannot be found for any reason, the transaction will not execute and the user will not be charged a fee for the failed transaction.
Delegated trade execution: When it’s time to actually execute a settlement (which can contain multiple trades), solvers lock in the execution path and submit the transaction to the blockchain. Note here that it is the solvers who are completing the transaction on behalf of the user, meaning that they determine the correct slippage tolerance to use, the right amount of gas fees, as well as taking on the risk of negative price movements or MEV.
The delegated trading model also means that traders using CoW Swap do not have to spend ETH to cover gas. Instead, gas fees come out of the sell token when making trades.
AMM: Automated Market Makers, also known as “DEXs,” are trading mechanisms that allow traders to buy and sell assets in real-time. Unlike traditional “orderbook” trading, which relies on counterparties for every transaction (you need a seller in order to buy and a buyer in order to sell), AMMs work by maintaining a constant ratio between the prices of two assets. For example, ETH and COW. AMMs use the formula “x*y = k” to determine a fair price based on the ratio between two assets (x and y) in the liquidity pool.
Any time a trade alters this ratio by depleting the supply of one asset and increasing the other, the prices of the assets adjust in order to preserve the established ratio. For instance, if a trader buys COW and sells ETH, the COW price rises and the ETH price falls. The opposite happens when traders sell COW and buy ETH.
Slippage Tolerance: When placing a trade, traders set a “slippage tolerance” for their transactions which represents the maximum price difference they’re willing to accept for their trade. For example, if ETH is trading at $2,000 and you place an order to buy ETH with a 5% slippage tolerance, you’re willing to buy ETH at up to $2,100. If ETH goes above $2,100, however, your trade will fail as it’s outside your slippage tolerance.
Some amount of slippage tolerance is always necessary because the prices of crypto assets are constantly fluctuating. By the time your trade executes, the price may have moved. Setting your slippage tolerance too high, however, leaves room for searchers to sandwich your trades.
Price Impact: Crypto markets, like all markets, are based on supply and demand. AMMs maintain “liquidity pools” of assets which they use to fill trades. Each trade drains some amount of this liquidity and moves the asset's price. This price movement is known as “price impact.”
The larger the trade, the bigger the price impact. A trade of $100 ETH will not move the price of ETH very noticeably, since it only makes up a tiny fraction of the available liquidity. A trade of $1,000,000 ETH, however, will noticeably move the price of ETH.
Transaction Reordering: Blockchain transactions do not always enter the block in the order that they were submitted. Searchers can “bribe” the validators responsible for creating the block to get them to arrange transactions in a specific sequence. This transaction reordering is what makes all of MEV possible.
EOA Wallets: Externally owned accounts (EOAs) are Ethereum accounts controlled by private keys. EOA wallets — for example: MetaMask, Rainbow, and Rabby Wallet — allow users to (1) send, hold, and receive Ethereum-native tokens, and (2) interact with smart contracts. Unlike smart contract wallets, EOA wallets are usually generated with a seed phrase and do not have any code associated with them.
Milkman: The Milkman smart contract ensures trades are executed for the real-time price or better by utilizing a price checker, such as a Uniswap pool or an oracle. Instead of setting a fixed slippage tolerance based on the current market price, DAOs can utilize Milkman to determine a maximum percentage deviation from a real-time price sourced from a price checker, guaranteeing that their trade will finalize at a fair market price. If a trade can’t be executed within the defined price or better, the order remains pending until the price condition is met, or until the trader cancels the order.