RouterX

On-chain DEX aggregation for operators

query() · live on EVM
NO API RATE LIMITSGAS-AWARE ROUTINGQUOTE = EXECUTIONADAPTER ARCHITECTURE

// PRODUCT

Built for operators who optimize execution

Differentiate on quote fidelity, on-chain access, and controllable routing — plus Swap, Cross, Limit, and DCA for trading, and SDK / API for integration.

FIG 01SYS.QUOTE

Accurate on-chain quotes

Path search runs on RXQuoter.query with gas-aware scoring, so quotes reflect what can actually execute.

FIG 02SYS.ACCESS

No API rate limits

Anyone can call RXQuoter view methods on-chain. Quoting is not gated by a centralized API quota when you integrate the contracts.

FIG 03SYS.EXEC

Execution aligned to quote

Quotes match on-chain executable routes, reducing slippage and failed fills caused by quote drift between price and settlement.

FIG 04SYS.BOTS

Integrable quoting

Liquidation engines, arbitrage bots, and other operators query RXQuoter directly — no mandatory off-chain quote service sitting in the critical path.

FIG 05SYS.PATH

Custom routes

Supply your own hops and split legs to swap when you need full control instead of trusting a black-box router.

FIG 06SYS.TRADE

Swap, Cross, Limit & DCA

The same on-chain router powers the RouterX App — same-chain swaps, CCTP cross-chain swaps, limit orders, and DCA — so operators and traders share one execution path.

// INTEGRATE

Integrate where it matters

Start with on-chain quote and swap for operators (liquidation, arbitrage, and strategy engines). REST API and SDK are optional convenience layers — Swap, Cross, Limit, and DCA sit on the same router.

On-chain authority

Query RXQuoter directly for quotes — the same path model the router executes.

Custom path execution

Pass your own hops and split legs to swap when strategy requires it.

Built for bots & engines

Liquidation, arbitrage, and other operator integrations call view + swap without a mandatory API middleman.

RXQuoter.sol
// RXQuoter 0x27fe493F8A4F02e3049080d6aBD96646C7B1a666 (view)
// hopTokens replaces TRUSTED_TOKENS for this call; empty = direct only
FormattedOffer memory offer = quoter.query(
    amountIn,
    tokenIn,
    tokenOut,
    maxSteps,    // 1–4
    hopTokens,
    gasPrice     // gwei; 0 ranks by amountOut
);

// Zip path + adapters + extras into a 1-leg Trade
Hop[] memory hops = new Hop[](offer.adapters.length);
for (uint256 i; i < hops.length; ++i) {
    hops[i] = Hop({
        adapter:  offer.adapters[i],
        tokenOut: offer.path[i + 1],
        extra:    offer.extras[i]
    });
}
SplitLeg[] memory legs = new SplitLeg[](1);
legs[0] = SplitLeg({ split: 0, hops: hops });

router.swap(
    Trade({
        amountIn:  offer.amounts[0],
        amountOut: offer.amounts[offer.amounts.length - 1],
        tokenIn:   offer.path[0],
        legs:      legs
    }),
    recipient,
    feeBps
);

// METRICS

Backed by operators who ship

0+

EVM chains via adapters

0+

DEX & pool adapters

0ms

API rate-limit delay

0.0%

Quote-to-fill alignment