> For the complete documentation index, see [llms.txt](https://openflow.gitbook.io/openflow/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://openflow.gitbook.io/openflow/overview/differentiators.md).

# Differentiators

<table><thead><tr><th width="241">Feature</th><th width="249">Openflow</th><th>Cowswap</th></tr></thead><tbody><tr><td>Meta dex aggregator</td><td><a href="https://emojipedia.org/check-mark-button/">✅</a> Solver support for any number of dex aggregator integrations</td><td><a href="https://emojipedia.org/check-mark-button/">✅</a> Solver support for any number of dex aggregator integrations</td></tr><tr><td>RFQ order system</td><td><a href="https://emojipedia.org/check-mark-button/">✅</a> RFQ is a native part of the protocol</td><td><a href="https://emojipedia.org/check-mark-button/">✅</a> RFQ is a native part of the protocol, however the number of people who can provide quotes is limited</td></tr><tr><td>Anyone can be a solver</td><td><a href="https://emojipedia.org/check-mark-button/">✅</a> Completely open</td><td>❌  Pay-to-play (limits competition)</td></tr><tr><td>Massively-multichain</td><td><a href="https://emojipedia.org/check-mark-button/">✅</a> Built to be massively-multichain from the start</td><td>❌ Supports only two chains</td></tr><tr><td>Trustless quote selection</td><td><a href="https://emojipedia.org/check-mark-button/">✅</a> Quotes selected by end-user or delegated to use-configurable multisig</td><td>❌ Quotes are selected by centralized server (driver)</td></tr><tr><td>Decentralized order book</td><td><a href="https://emojipedia.org/check-mark-button/">✅</a> On-chain/libp2p/webRTC</td><td>❌ Order book database and messaging exists on a centralized server</td></tr><tr><td>Resilient architecture</td><td><a href="https://emojipedia.org/check-mark-button/">✅</a> Designed to be as resilient as possible</td><td>❌ Centralized order book, driver and API means downtime is a possibility</td></tr><tr><td>Decentralized messaging transport</td><td><a href="https://emojipedia.org/check-mark-button/">✅</a> Anyone can connect to the messaging bus and listen for orders. The bus cannot be shut down</td><td>❌ Centralized API for order submission. If the API goes down the system comes to a halt</td></tr><tr><td>Decentralized driver</td><td><a href="https://emojipedia.org/check-mark-button/">✅</a> User selects driver and driver itself is authenticated by multisig</td><td>❌ Centralized driver</td></tr><tr><td>User-defined hooks</td><td><a href="https://emojipedia.org/check-mark-button/">✅</a> Supports pre-swap and post-swap hooks</td><td>❌ No user-defined hooks</td></tr><tr><td>Highly customizable swap orders with Gnosis Safe</td><td><a href="https://emojipedia.org/check-mark-button/">✅</a> Safe users can submit smart orders (with customizable execution conditions and GAT orders) without modifying safe implementation</td><td>❌ Gnosis Safe can be used to submit simple swap orders using EIP-1271 or presign</td></tr><tr><td>Zap support</td><td><a href="https://emojipedia.org/check-mark-button/">✅</a> All order types support zaps</td><td>❌ No support for zaps. Technically solvers can implement zaps for tokenized assets but this drastically limits solver competition and is not customizable</td></tr><tr><td>Permissionless multichain deployment</td><td><a href="https://emojipedia.org/check-mark-button/">✅</a> Anyone can deploy on any chain using deterministic single use address</td><td>❌ Only protocol can deploy to new chains</td></tr><tr><td>Batch order invalidation</td><td><a href="https://emojipedia.org/check-mark-button/">✅</a> Users can invalidate all of their pending orders simultaneously on-chain in one transaction</td><td>❌ Users can only invalidate one order a time</td></tr><tr><td>Conditional orders</td><td><a href="https://emojipedia.org/check-mark-button/">✅</a> All orders types support conditional logic</td><td>❌ Only user deployed EIP-1271 smart contracts support conditional logic (no gnosis)</td></tr><tr><td>GAT orders</td><td><a href="https://emojipedia.org/check-mark-button/">✅</a> All order types support GAT orders</td><td>❌ Only user deployed EIP-1271 smart contracts support GAT orders</td></tr><tr><td>DCA orders</td><td><a href="https://emojipedia.org/check-mark-button/">✅</a> All order types support DCA orders</td><td>❌ Only user deployed EIP-1271 smart contracts support DCA orders</td></tr><tr><td>Smart orders</td><td><a href="https://emojipedia.org/check-mark-button/">✅</a> All order types support smart orders</td><td>❌ Only user deployed EIP-1271 smart contracts support smart orders</td></tr><tr><td>Incremental orders</td><td><a href="https://emojipedia.org/check-mark-button/">✅</a> All order types support incremental orders</td><td>❌ Only user deployed EIP-1271 smart contracts support incremental orders</td></tr></tbody></table>
