The funnel leaks
A user sent to an external bridge is on someone else's page. Plenty never return and you never find out which.
They hold BTC and you need USDC on Base. Today that is three tabs and a bridge they have to trust. It can be one call inside your app.
Every dapp leaks at the same point: the user is ready, and their money is somewhere else in something else. The usual fix hands them to a bridge you do not control. This one keeps them on your page and ends in the real token on the chain you use.
A user sent to an external bridge is on someone else's page. Plenty never return and you never find out which.
A bridge that delivers a wrapped copy leaves your contracts holding something your protocol may not accept.
Each new corridor you build yourself is another venue, another failure mode, another thing that breaks quietly.
A swap API that needs a key makes you run a backend proxy just to hide it. This one needs none.
Quote, execute, poll. No key is required and every endpoint accepts browser calls, so the front end can call it directly.
import { Ravn } from '@ravnexchange/sdk';
const ravn = new Ravn();
// 1. price it across every eligible venue at once
const quote = await ravn.quote({
inputChainId: -1, // Bitcoin
outputChainId: 8453, // Base
inputToken: 'native',
outputToken: USDC_BASE,
inputAmount: '10000000', // 0.1 BTC, in satoshis
userAddress, destinationAddress,
});
// 2. turn the winning quote into something signable
const exec = await ravn.execute({ quoteToken: quote.quoteToken });
// 3. follow it to settlement
const status = await ravn.status({ swapId: exec.swapId });Your contracts receive the destination chain's real token. No wrapper to whitelist, no synthetic to unwind.
No key, and every endpoint accepts calls from a web page. No proxy service to run, pay for or keep alive.
TRANSACTION to sign and broadcast, SIGNATURE for gasless orders, DEPOSIT for send-to-address. The response tells you which.
On market-maker routes the user signs a message and the market maker pays the gas. The price they sign is the price they get, and they need no gas token.
Test with no real funds and no metering before it touches a user.
Charge 0 to 100 bps on your own key if you want the swap to fund the feature. We add nothing on top.
No account needed. Paste the call, read the route that comes back, then decide whether to integrate.