Keep the fill you would have lost

Your own book wins often. Not always. The trades where it does not are the ones your users take somewhere else.

17Chains15 EVM + BTC + SOL17Routing venuesRaced in parallel16/17Healthy nowDegraded venue0Fees for usersPermanently

Every venue we race, one call

An aggregator is only as good as the venues it can see. RAVN adds every venue it races behind a single call and returns the whole ranked set, not just a winner. Keep your own routing and use this as the fallback that stops a user leaving.

1 ETHyour user's tradeRAVNevery venueChainflipBESTNEAR IntentsALTTHORChainALTyouwinner + alternatives

Where an aggregator runs out

Cross-ecosystem gaps

Same-chain routing is solved. Bitcoin to Solana is not, and that is exactly the trade someone leaves you for.

Venue maintenance

Every venue you integrate is an API that will change, degrade and occasionally lie about liquidity. That is headcount.

Invisible comparison

If you cannot show what the alternatives were, you cannot prove you got the best one.

Bitcoin is different plumbing

UTXOs are not accounts. Native BTC means a separate signing model, not one more EVM integration.

You get the losers too

One quote returns the winner and every route that lost, with output and settlement time on each. Compare it to your own book and take whichever wins.

compare.tsno key
const quote = await ravn.quote({ /* ...pair... */ });

quote.venue.name;              // 'Chainflip'
quote.output.amount;           // '3180444'  (satoshis)
quote.estimatedTimeSeconds;    // 462
quote.slippage.isFirm;         // true -> quoted number or no settle
quote.gas.usd;                 // '0.02'

// every route that lost, and by how much
for (const alt of quote.alternatives) {
  console.log(alt.venue.name, alt.outputAmount, alt.estimatedTimeSeconds);
}

// drop a venue you have a view on
await ravn.quote({ ...pair, excludeVenues: ['mayan'] });

We rank on net output after gas first. When outputs are close, the faster settlement wins. A firm, gasless route wins if it still beats the rival's worst case.

What you get

The full set

alternatives carries every competing route with its output and its time. Nothing about the comparison is hidden from you.

Venue exclusion

Drop any venue per request with excludeVenues. Use it for a risk view, or for one that GET /health calls degraded.

Ranking mode

best_output by default, or fastest when settlement time beats the last basis point.

Firm pricing

Firm routes (market-maker and locked-contract Bitcoin routes) report isFirm and a guaranteedMin. The quoted number lands or the swap does not settle.

Live venue health

GET /health is public and unauthenticated. Point your own monitoring straight at it.

No contracts of ours

We wrote none. Settlement is the venue's, so using this adds no new contract risk to your stack.

Race it against your own book

The quote endpoint needs no key and answers browser calls. Point it at a pair you already price and see what comes back.