RouterX

On-chain DEX aggregation for operators

findBestPathWithGas() · 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, Limit, and DCA for trading, and SDK / API for integration.

FIG 01SYS.QUOTE

Accurate on-chain quotes

Path search runs through adapter query methods with gas-aware scoring (findBestPathWithGas) so quotes reflect what can actually execute.

FIG 02SYS.ACCESS

No API rate limits

Anyone can call router 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 the router directly — no mandatory off-chain quote service sitting in the critical path.

FIG 05SYS.PATH

Custom routes

Supply your own path and adapters to swapNoSplit when you need full control instead of trusting a black-box router.

FIG 06SYS.TRADE

Swap, Limit & DCA

The same on-chain router powers the RouterX App — market 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, Limit, and DCA sit on the same router.

On-chain authority

Query the router directly for quotes — the same path model used at execution time.

Custom path execution

Pass your own path and adapters to swapNoSplit when strategy requires it.

Built for bots & engines

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

RXRouter.sol
// On-chain quote (view) — no API rate limit
FormattedOffer memory offer = router.findBestPathWithGas(
    amountIn,
    tokenIn,
    tokenOut,
    maxSteps,   // < 4
    gasPrice    // gwei, for gas-aware scoring
);

// Execute with the returned path + adapters
router.swapNoSplit(
    Trade({
        amountIn:  offer.amounts[0],
        amountOut: offer.amounts[offer.amounts.length - 1],
        path:      offer.path,
        adapters:  offer.adapters
    }),
    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