OVERVIEW
What is Quantora?
Quantora is a fee-aware routing framework for swaps on Solana and other ecosystems. It compares multiple venues, simulates net outputs after all costs and returns the route where the user keeps the most of what they swap.
Instead of wiring each venue manually, you integrate a single SDK and gain a unified interface to Jupiter, Orca, Raydium, Meteora-style venues and your own connectors.
Core mission
Give every swap a fair route by default.
Quantora is built for bots, wallets, super-apps and routing backends that care about real execution quality, not just the headline rate shown to the user.
Why Quantora exists
Without a routing layer you typically:
- hardcode one venue per pair or per region;
- ignore trading fees, gas fees and price impact in comparisons;
- cannot explain to users why a specific venue was chosen.
Quantora solves this by providing a normalized quote model and a routing engine which always chooses the maximum net output.
Getting started: installation
Install the SDK:
npm install quantora # or yarn add quantora
Quantora is ESM-only and targets Node 18+ or any bundler that supports ES modules.
Quick start
import Quantora from 'quantora';
const best = await Quantora.getBestRoute({
inputMint: 'So11111111111111111111111111111111111111112', // SOL
outputMint: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', // USDC
amountUi: 1,
slippageBps: 50
});
console.log(best);
Use this pattern inside bots, web backends or internal tools to always fetch the best venue for a given swap.
Core concepts
QuoteParams
Describes what the user wants to swap.
type QuoteParams = {
inputMint: string;
outputMint: string;
amountUi: number;
slippageBps?: number;
connectors?: Array<{
id: string;
fn: (params: QuoteParams) => Promise<QuoteResult | null>;
}>;
};
QuoteResult
Normalized response from a venue.
type QuoteResult = {
venue: string;
inMint: string;
outMint: string;
inAmountUi: number;
outAmountUi: number;
priceImpactPct: number | null;
raw: any;
connectorId?: string;
};
outAmountUi is the key field used for ranking.
Routing logic
On each request Quantora:
- Calls all configured connectors in parallel.
- Normalizes their responses into
QuoteResult. - Filters out failed / null quotes.
- Sorts by
outAmountUiin descending order.
The first route in this sorted list is the best route for the user from a net output perspective.
User guide: using Quantora-powered apps
Many apps will show Quantora just as a small label like “Powered by Quantora” near the swap button. You don’t have to configure anything — you use the app as usual, but every swap is checked against multiple venues in the background.
As an everyday user you mainly interact with:
- the routing screen,
- the fee breakdown,
- and optional “Best route” toggle.
Using the routing screen
A typical Quantora-powered screen has three main pieces:
- “You pay” — the token and amount you send.
- “You receive” — the token and amount you get after all fees.
- Route details — which venue is used and why it’s the best.
If the app shows several venues, Quantora will highlight the best one. You can still choose another venue manually if you prefer a specific brand or liquidity source.
Understanding fees as a user
When a route is selected, the app can show a small panel with a breakdown similar to:
- Service fee — fee taken by the venue or your app.
- Network fee — blockchain transaction cost (gas).
- Price impact / slippage — how much the price moves because of your trade size.
Quantora compares venues by the final amount you receive after all of these are applied. So “best route” always means “highest amount in your wallet”, not just “prettiest rate”.
Security & privacy for users
Quantora itself does not hold custody of funds. You still connect your wallet to the app you trust, sign transactions as usual, and your private keys never leave your wallet.
A Quantora-powered app may log anonymous routing statistics such as:
- which venues were selected,
- average fee savings,
- which tokens are most popular.
These stats help teams improve routes over time, but they do not require any personal identity or seed phrase information.
SDK reference: public API
import Quantora, {
scanVenues,
sortRoutes,
getBestFromList,
getBestRoute
} from 'quantora';
scanVenues(params)
Promise<QuoteResult[]>
Runs all connectors and returns every available route.
getBestRoute(params)
Promise<QuoteResult | null>
High-level helper that returns only the best route.
sortRoutes(routes)
QuoteResult[] → QuoteResult[]
Sorts routes by outAmountUi descending.
getBestFromList(routes)
QuoteResult[] → QuoteResult | null
Extracts a single best route from an existing array.
Examples
Node basic
import Quantora from 'quantora';
const params = {
inputMint: 'So11111111111111111111111111111111111111112',
outputMint: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
amountUi: 1,
slippageBps: 50
};
const routes = await Quantora.scanVenues(params);
const best = Quantora.getBestFromList(routes);
console.log(routes);
console.log(best);
Using in a bot
async function handleSwapCommand({ fromMint, toMint, amount }) {
const best = await Quantora.getBestRoute({
inputMint: fromMint,
outputMint: toMint,
amountUi: amount,
slippageBps: 75
});
if (!best) {
return 'No route found right now, try again.';
}
return \`Best venue: \${best.venue}, you receive ~\${best.outAmountUi}\`;
}
Connectors
Connectors live under src/connectors/ and
implement the same shape:
export async function getQuote(params: QuoteParams): Promise<QuoteResult | null> { ... }
Jupiter
Primary real data source for quotes.
Orca
Simulated venue based on Jupiter output and custom fee profile.
Raydium
Alternative AMM-style venue used for comparisons.
Meteora
Additional venue with different simulated slippage.
Deployment & infrastructure
Recommended setup
- Node 18+ runtime (or Deno/Bun with ESM support).
- Small caching layer for quotes (3–5 seconds TTL).
- Centralized logging for connector failures.
For most bots and wallets Quantora can run in the same process as your API without extra infrastructure.
Tokenomics (draft design)
Quantora can work without a token at all. This section describes a possible token design if the project evolves into a public network.
- Utility: pay for analytics / premium routing profiles.
- Staking: align connectors and operators by staking to venues.
- Rewards: share part of fee savings with integrators.
Exact parameters (supply, emissions, schedules) are intentionally not fixed yet and can be adjusted based on real usage.
Governance & decision making
If a token and DAO are introduced, governance could decide on:
- which venues are allowed or blocked by default;
- how fee savings are split between users, apps and protocol;
- roadmap priorities (new chains, new connectors, new analytics).
Until then, Quantora stays a focused product with decisions made by the core contributors, keeping upgrades fast and opinionated.
Roadmap
Phase 1 — Core routing
Solid connectors, stable quote model, SDK for bots and web apps, reference UI (the demo you already built).
Phase 2 — Deep analytics
Fee savings dashboards, historical route storage, export for desks and funds, more advanced policy engine.
Phase 3 — Cross-chain + token
Multi-chain routing, optional tokenized incentives and governance if there is enough real demand.
FAQ & troubleshooting
Why do I get no routes for some pairs?
Either connectors do not support this pair yet, or minimum amount thresholds are not met. Try a different pair or bigger amount and check connector logs.
Can I force a specific venue?
Yes. You can pass a custom connectors array
in QuoteParams and include only the venues
you want to be queried.
Is Quantora a DEX?
No. Quantora is a routing and analytics layer. It does not hold custody of funds and does not execute swaps directly — connectors talk to venues.