# Titan's Unique Algorithm

Historically, DEX aggregators have relied on shortest path algorithms to determine routes between liquidity. In doing so, they have benefited from battle tested algorithms that are simple to implement. However, given the nature of the crypto markets, latency requirements and underlying assumptions of shortest path algorithms, liquidity sources are often temporarily removed when these types of algorithms are used in order to make routing possible.

In addition to this, a specific route in a network may not have significant capacity. If the pools involved have a small TVL then the price can change rapidly as more of the users’ funds are swapped through each relevant exchange. To capture the effects of price impact, the liquidity is frequently fragmented into pieces and each pool is broken into many parts with an average price and a certain capacity. This is frequently reflected both in the algorithm and its outputs. For example, currently Jupiter, another DEX aggregator, generally chunks their routes into neat 1% buckets. This fragmentation of liquidity increases the size of the network being searched and leads to inaccuracies when the pool is poorly resolved.

These two challenges are among the main obstacles in applying shortest path methods for DEX aggregation. To address them, Titan leverages a different set of algorithms that focus on optimization, which resulted in the development of the Argos algorithm. These algorithms can efficiently resolve price impacts with machine-level precision without fragmenting pools and eliminates the need to exclude various liquidity sources, thus leading to a true optimal on-chain price.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://titan-exchange.gitbook.io/titan/codex-of-knowledge/editor.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
