Cross-ecosystem gaps
Same-chain routing is solved. Bitcoin to Solana is not, and that is exactly the trade someone leaves you for.
Your own book wins often. Not always. The trades where it does not are the ones your users take somewhere else.
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.
Same-chain routing is solved. Bitcoin to Solana is not, and that is exactly the trade someone leaves you for.
Every venue you integrate is an API that will change, degrade and occasionally lie about liquidity. That is headcount.
If you cannot show what the alternatives were, you cannot prove you got the best one.
UTXOs are not accounts. Native BTC means a separate signing model, not one more EVM integration.
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.
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'] });alternatives carries every competing route with its output and its time. Nothing about the comparison is hidden from you.
Drop any venue per request with excludeVenues. Use it for a risk view, or for one that GET /health calls degraded.
best_output by default, or fastest when settlement time beats the last basis point.
Firm routes (market-maker and locked-contract Bitcoin routes) report isFirm and a guaranteedMin. The quoted number lands or the swap does not settle.
GET /health is public and unauthenticated. Point your own monitoring straight at it.
We wrote none. Settlement is the venue's, so using this adds no new contract risk to your stack.
The quote endpoint needs no key and answers browser calls. Point it at a pair you already price and see what comes back.