Recently has been discussions about improving upon our existing onchain smart-order offering for DAOs, automated trading and Protocol Ops. Milkman and Composable CoW are notable contributions that today shapre the smart order "Scene". ## `milkman` Milkman has pioneered disposeable storage accounts and coupled it with price checkers and decorators to define a dynamic price source and option for adittional conditions. milkman received traction with several prominent DAOs, which is indicating demand for such products. Current usage of milkman uncovered some challenges and pooprunities to imporve its usability: - Requiring a user to specify a price checker is cumbersome. Requiring a user to manually encode bytes to be passed to the price checker is even more cumbersome. Price checker development for custom pairs is hindering trading of such pairs. - Brownie, the original framework used to write Milkman’s tests, makes it hard for developers to write their own price checkers. I picked Brownie over Foundry because at the time there was no Solidity HTTP client. But now, there is. - Sometimes, as was the case for Aave, users of Milkman will prefer a dedicated support engineer. This is especially true when the user requires a custom price checker. ## `Composable CoW` Composable CoW is using a Safe as its reusable storage account coupled with efficient and advanced order multiplexer. Few advanced order types have been developed using Composable CoW, like TWAP and stop loss. Advanced use cases like Position Manager were demostrated. CC is still the less recognised and tested framework. ## Thoughts for RFP funding Below we describe an alternative design for milkman2.0 which could use some existing building blocks and could offer a more advanced way to define the desired smart order setup while offering sensible defaults for users that works for any arbitrary ERC20 token pair with minimal parameters required. Observations: - Price checkers proved to be a usefuk building block for defining order conditions. A growing library of price checkers is likely to continue serve users who want to define conditional orders. - Price checkers could also serve as one of the ways to initialize a price for a time based price funcion like a dutch auction. - Dutch auction type orders could also be set up with static parameters which allows for a used defined parameters that don't require a dedicated price checker. Potential features: - The user will be able to choose its sotrage account type - ComposablCoW (CC) compatilble safe, could allow for special features. - The user could use a generic dutch auction with or without a price checker to initialize price - In the future other auction types and curves could be added - Onchain fixed-price limit order - Onchain dynamic-price limit orders (milkman1.0 style price checkers) - TWAP - Stop loss