Zero incentive DFlow cumulative volume since April 2025
Notice how the shape of this chart has nothing to do with any price chart
You can just build a business on Solana
with all the drama around DEX aggregators, I've seen a LOT of people get this wrong
even relatively smart people (even my cofounder who I totally did not have to put on here, but I would like to embarrass him anyway for no reason here)
when you are comparing swaps across DEXes, you can NOT use the quote shown on the UI as a reliable signal
this is a mere estimation, and it varies depending on a shit ton of factors, including liquidity, staleness, RPCs, and even the API version
the ONLY way to compare is to actually do the swap and then see what price you got onchain
and the only way to compare across providers is to do this simultaneously for all of them using their APIs, which obviously no retail user will do
but again, the number shown on the UI (in this case Uniswap for illustration), is only an estimate and you can not use it to say that one team is better than the other
The bright side of the current discourse is that the Solana DeFi community is speed-running a lot of thinking about execution quality very quickly and very publicly. The signal to noise ratio is tiny, so I want to improve that with this post.
Here are some facts for those curious on the technical side of router comparisons and execution quality.
Quote price != realized price.
Starting with the obvious: the number you see on the screen (quote) is not necessarily the number you get (realized trade price). The realized trade price happens several seconds after the quote is generated, even if resimulated. During those seconds, markets move. Sometimes a lot.
To address this, simulation can be valuable. Given a transaction, simulation will tell you what the realized price would be if a single user executed the quote exactly one time on the current latest slot. The single-use nature of the quote here isn’t great: what happens if 5 people try to execute the quote? What happens if 5000 people try to execute that quote?
However, the single-use nature of simulation isn’t the main thing that is at contention in the general discourse today. The parts that are at contention are the following.
Simulating two routes generated on different slots will favor the more recent one.
If you have two transactions with different ages, meaning the routes were generated on different slots, then simulating both and comparing the prices will generally mean the fresher transaction has the better price.
The proof is obvious when you look at the extremes. Do you expect a transaction that was generated 60 seconds ago to compare more favorably to a transaction that was created on the most recent slot available? It’s more likely the quote from 60 seconds ago fails the slippage tolerance check during simulation.
Simulation results have very fast time decay.
Simulation-based meta-aggregation does not make sense when the transaction is returned back to the client and seconds can pass before the transaction is sent to be executed. Meta-aggregation only makes sense when the meta-aggregator has the last look server-side and can execute the winning transaction immediately.
After you return the “best” quote to the client, and seconds pass, the simulation-based comparison begins to have noise again. This means that simulation-based meta-aggregation systems are returning some signal to clients (to be clear, the signal is biased to begin with due to quote age discrepancies), but that signal decays very quickly.
Race conditions are unavoidable, but interpreting the effects of the race conditions correctly is crucial
It’s just the nature of reality that race conditions in markets exist. The issue arises when claims are being made as if those race conditions did not exist. I’d encourage all meta-aggregator APIs that are claiming equal footing between quotes to analyze their own data that contains at least these columns: the selected router and the age of each of the candidate quotes from each of the routers (if slot isn’t available, then use packet timestamps or whatever rough approximation of age is available).
The bias will be apparent immediately.
Further, when comparing realized slippage on executed transactions, you have to include transactions that landed but failed because those transactions exceeded slippage tolerance. Otherwise your dataset and conclusions are once again biased.
Quotes can't be interpreted at face value
Quotes have two dimensions: probability of landing successfully and realized price. Routers can tweak their systems to optimize for one or the other, or some combination of both, but a weighting still needs to be applied as to which factor is more important.
Opinionated decisions that DFlow's routing system makes:
DFlow’s routing system optimizes for two things: the realized price and transaction success.
Here is why:
Optimizing for realized price is what users care about. DFlow can easily show “improved” quotes by tweaking a single parameter and routing through thinner liquidity, but we don’t because the probability of transaction failure goes up.
Customers want to trade off a small amount of pricing for a lower variance in transaction success rates. And we design our systems to serve millions of customers. A transaction that lands generates far more economic activity than a transaction that could’ve squeezed out another few atoms but didn’t land.
Here are the two main ways we do this:
First, DFlow JIT routing shaves off an expected ~1 bps in realized slippage on SOL/USDC. This is a massive amount of edge that simply does not show up in quote comparisons (and never can).
Second, we also only choose to route through thick, resilient liquidity that we forecast will remain onchain by the time the transaction lands even if many users execute the same quote.
Finally, I think the conversations we’re having right now are net good for moving Solana DeFi forward, but would again encourage focusing on increasing the signal to noise ratio. Everyone benefits if we focus purely on technical accuracy.
Following @dflow [1], we are formally requesting for our Metis router to be removed from Titan's meta-aggregator.
Like DFlow, we suspect that Titan may be biasing quotes, a behavior which has also been called out by other users and ecosystem participants [2].
But it goes far deeper.
After months of private conversations and dialogue without change, we have no choice but to draw the conclusion that Titan is not acting in good faith, and is intentionally seeking to mislead their audience, the ecosystem and their own users.
First, they have been misrepresenting Jupiter in their product for months. They are using our Metis router, which is not the same as Jupiter. Jupiter, as part of our trading engine, offers meta-aggregation with multiple external routers (including DFlow and OKX) and our own RFQ system (JupiterZ).
What the user sees on Titan is not at all the price that they actually get on Jupiter.
Despite months of our team informing them that this was misleading [3], Titan refused to rectify this, adding only 'Metis algorithm' via a tooltip and continued to market the inaccurate quote as a Jupiter quote, a major marketing stunt that made all the users feel like they are being offered a convenience, rather than the sleight of hand that it actually is.
Second, we suspect that when displaying “Jupiter” quotes, they are using an outdated version of Metis. Specifically, the Metis Binary, which has been sunsetted and is not at all reflective of current router performance. We recently offered them another suitable logo and name for the binary, but they again ghosted us on that offer in order to continue deceptively display quotes from it as “Jupiter.”
Finally, we have been requested access to the Titan API for months in the spirit of reciprocity (and per our Terms and Conditions). We are happy to send their router trading flow - as we are with DFlow and OKX. However, we have again been ghosted while other ecosystem projects have been granted access. Our only conclusion is that they are purposefully avoiding us in order to continue their own (unaudited and unproven) agenda.
We cannot help but feel our efforts at providing an API and binary for free or at cost, while being extremely net positive for the ecosystem over the past few years, have been abused by a team looking to play deceptive misleading games.
Jupiter Has Evolved Far Beyond A Router
Metis was the workhorse of Solana for many years [4]. It has powered $2+ trillion in volume and generated hundreds of millions in fees for our partners. We have continuously updated and improved it tremendously, culminating in the latest Iris update [5].
In 2023, we wanted to help teams who needed a router for their trading app. To accelerate the growth of the ecosystem, we offered the binary entirely for free.
We stopped supporting it formally 2 months ago because of the workload, and our lack of control over the results. Running it properly requires full RPC, data, and server infrastructure, and misconfiguration of these factors could lead to degraded performance.
But today, Metis is just one part of a much larger whole. Jupiter has evolved far beyond being just a single router - into a full-stack DeFi superapp with our own end-to-end trading engine with a meta-aggregation layer that combines multiple routers.
So yes, Jupiter is not a router anymore.
Beyond Quotes & Simulations
Effective trade execution is essential to Solana, which is why we invested so much over the years to ensure that any user coming to Solana gets a world class trading experience, and we are extremely proud of our track record here over the past few years using Metis.
But as the environment got more complicated, we went way past mere quotes or simulations comparison to focusing on actual trade execution, including MEV protection, slippage estimation and historical trade performance.
Beside aggregating various routers and comparing simulated quotes (what Titan does), we also measure the performance of each executed swap to feedback directly into our routing engine. This helps us to set better slippage (not too wide for potential sandwich) and punish markets that always slip far from quoted price to executed price (especially on Prop AMM/orderbook based markets) [6].
In addition, we will always put users as the #1 priority. When partners like OKX inform us that they have a router upgrade, if we believe that this offers users better performance or rates, we support the upgrades without hesitation, without fear that this might compromise our router’s volume. On the other hand, when a provider displays subpar performance that could be detrimental to users, we stop their service, inform them about it, and give them the chance to fix it. Ask any liquidity provider that we’ve integrated, they can attest to it.
Jupiter, DFlow and OKX have all made their APIs public. As mentioned, we have requested access to Titan's API, only to be ghosted while they have offered this to other teams.
Failure of Good Faith
Ultimately, we can no longer sit by while our repeated outreach is ignored and their users are misled. Titan has repeatedly used their misleading UI to market on the back of our reputation.
All of these points lead us to only one conclusion - that Titan Exchange is abusing the goodwill of our offerings in three ways.
First, they are misleading their users into thinking that the quote they see on their site is what they get on Jupiter.
Second, they are using the brand we built over years as a marketing gambit to claim superiority.
Third, their selective usage of our proven & battle-tested router to bootstrap their service, while refusing to provide their own router API for our integration, is unacceptable.
Jupiter will continue to work with good faith competitors in the space such as DFlow and OKX by offering the best versions of our routing APIs to these teams, who do the same with us.
----
[1] DFlow Statement from @niteshnath (https://t.co/o7Ld7Aqy3y) announcing that DFlow has formally requested removal from Titan’s meta-aggregator.
[2] Comparisons from @retiredchaddev (https://t.co/Skc37jphkG) showing examples of Titan-displayed quotes not accurately representing the quotes directly provided on other sites they claim to aggregate.
[3] Note from @sssionggg (https://t.co/bLhZFU2rGG) stating that we have tried to tell Titan for months to not use “Jupiter” on their website, as it is misleading people to think that Titan is aggregating “Jupiter” when they are not.
[4] Metis History from @sssionggg (https://t.co/VzWz809BKH) outlining the history and evolution of the Metis router, including its original design, impact, and significance within the Solana ecosystem.
[5] Iris Router Update from @JupiterExchange (https://t.co/0AqXX12a3q) providing an update on Jupiter’s routing infrastructure, known as Iris, and describing the next phase in Jupiter’s routing evolution.
[6] Quoted Price, Simulated Price, Executed Price from @sssionggg (https://t.co/RgteuvnFvL) describing the 3 prices states for each swap.
We have long moved past comparing merely simulated prices, and instead we are end-to-end optimising for users getting the best executed price.
Part 1: SOL → USDC swaps
🏆winner is - @dflow
up to 0.5bps better realized prices vs. the next best
but before you get too excited - the reality is that all three major aggregators performed very similarly - keep reading
(also i really like all 3 teams - they are all working hard to make solana better)
here’s what we did:
collected all $100+ SOL→USDC swaps from the last 16 hours
removed outliers
plotted median realized prices over 30-minute intervals
manually checked swaps that landed in the same slot
ran VWAP analysis
a few insights:
Jupiter dominates in volume - 15x higher # of swaps than anyone else
Titan has a provider fee on some swaps, which immediately ruins the realized price
JupiterZ is inconsistent - sometimes it’s the best, sometimes the worst (TBD why)
limitations:
even the most liquid pair SOL–USDC doesn’t have that many swaps - we’re talking 20–60 swaps per 15 min for non-jupiter aggs
+ time bias (we try to control for this with VWAP)
+ different users and use cases (eg we don't control for slippage settings, priority fees, etc)
VWAP results - median price advantage:
DFLow: +0.005%
Jupiter: ~0%
Titan: -0.005%
JupZ: -0.006%
please do share ideas on how to improve this analysis going forward + i'm planning to make this dataset public - stay tuned
DFlow JIT was built for moments like yesterday’s crash. Hard stats dropping soon.
Cutting edge microstructure for Solana traders only possible through DFlow
Exciting days ahead ! 🍑
here’s a quick recap of all the key dates to avoid any confusion 👇
Key Dates:
-> 9th Oct: Start of the BorgPad + SwissBorg Alpha Deal at $5M FDV
To stay up to date with the latest info, you can follow @BorgPadHQ and @swissborg.
-> 13th Oct: TGE Day
The airdrop claim will happen at the same time as the token goes live.
Airdrop will happen in kyKYROS. Unstaking will take 2 full Solana epoch but there will also be a kyKYROS/KYROS secondary market live at launch as well.
We’ll also soon share more info about how Futarchy will be implemented + importance of kyKYROS.
Now about the Checker Page: don't worry, it will be released in due time 😉
Join the wave! 🌊
@Byreal_io is now integrated into DFlow.
The @Bybit_Official-incubated DEX with $200M monthly volume now adds even more unmatched Solana liquidity.
With DFlow's low-slippage routes, MEV protection, and best execution -
Efficiency just leveled up.
Simulation to find the best quote is a broken mechanism, that will become increasingly less accurate over the next couple weeks/months of Solana microstructure changes.
Simulations are inherently racey with reality. DFlow JIT routing is a trivial example of where meta-aggregation fails but users benefit greatly. However, let's ignore JIT routing in order to examine a non-trivial reason of why simulation to find the best quote can introduce bias into realized execution quality.
Router A: chooses to route through arbs
Router B: chooses not to route through arbs
Router A will compare favorably at sim time, but Router A's realized slippage is worse than Router B's realized slippage, as network lag between the route construction and transaction execution means Route A typically lands after an informed trader picks off the mispriced liquidity.
Humans spend milliseconds moving the mouse and clicking "swap". A searcher does not.
Execution quality is complex, full of weird hidden biases that need to be accounted for, and boiling it down to just simulating and picking the best one is insufficient and will lead to worse execution quality for users.
Solana's largest DEXs by volume are quickly shifting to prop AMMs.
How do you access these tightest spreads onchain?
Via DFlow.
Best liquidity. Best execution.
Integrate and swap today.
Thrilled to welcome @boidushya to the DFlow team!
We're building one of the highest concentrations of talent in crypto across the stack, from mathematicians to low-latency Rust engineers to cracked frontend devs like Boidu
Insane things coming soon
Pyron Beta Testnet is Here!
You want early access?
We’re running a short and limited Testnet to to test core flows, gather feedback, and refine the experience before the public launch.
You have 48 hours to apply. No second chance.👇
https://t.co/wtxo8EPdwZ
Season 1 is officially over 🏁
Season 2 of Clout kicks off now! Spicier, fairer, and more rewarding than ever 🔥
The leaderboard resets, new scoring is live, it's anyone’s game.
Here is everything you need to know ⏬️