How Dexible Works
The Dexible infrastructure receives orders from traders via an API endpoint and continuously evaluates market conditions to determine if orders can be settled. In its current form, Dexible evaluates token swap orders by checking many DEX platforms for current pricing, etc. When it determines that market conditions match order criteria, it submits transactions to Dexible's settlement smart contract, which then calls out to one or more DEX contracts to execute the actual trades.
The first thing to note about Dexible is that all orders are private. They are maintained in Dexible's order book which is not exposed to the public. Only order owners can query their order details--and ownership is established through digital signatures that are passed along in each API request. This alleviates concerns presented by other DeFi order books that tend to expose orders publicly or on-chain. Uniswap V3's limit order capability, for example, requires on-chain order exposure and cannot be used practically by professionals or institutional investors. Dexible's privacy feature allows for large orders with the additional benefit of automated order segmentation.
Large orders are very risky in DeFi. Namely because of front-running and market impact. A key to minimizing these risks is to size and time the market based on active market monitoring. Dexible does this for its traders and optimizes input volume for each trade by breaking orders into smaller segments or "rounds". Each round submits a small portion of an order to minimize price impact, and thus losses. This is what makes Dexible different from simple limit or other automated order schemes in DeFi--it actively watches the market to yield the highest output on every round.
The recommended number of rounds for any order quote is determined by comparing several input amounts and picking the one that yields the highest net output after removing fees. This can be adjusted using the "maxRounds" settings discussed later--but doing so may result in less overall token output.