On- and off-ramp infrastructure
for the Fraxtal network.
Drop the widget into any app to buy frxUSD with fiat or pay out back to a bank account or wallet. No registration, no secrets — just one React component pointed at our hosted API.
Built for developers, operated like a payment rail.
Buy & sell
One React component covers both directions — fiat-to-frxUSD on-ramp and frxUSD-to-fiat payouts to bank or wallet.
No registration
Anonymous embed. Mint a session from your backend or directly from the client and you're done.
Typed contracts
Shared TypeScript contracts across the Next.js application, API routes, and Prisma-backed session store.
Fully customizable
Inherits your shadcn theme tokens by default, or scope an isolated frax- theme — colors, radius, and type, all yours.
One component. Buy, sell, or lock the route.
Install @iqai/ramp-react and pass a destination address to buy, or supply an onSellDeposit callback to let users sell frxUSD and receive fiat payouts — bank transfer or wallet, your choice. For non-React apps, use the hosted iframe and listen for postMessage events.
<iframe
id="frax-ramp"
src="https://fraxramp.com/embed?cryptoAsset=FRXUSD&fiatCurrency=USD&parentOrigin=https%3A%2F%2Fapp.example.com"
style="width: 420px; height: 640px; border: 0"
></iframe>
const iframe = document.getElementById('frax-ramp');
window.addEventListener('message', async (event) => {
if (event.origin !== 'https://fraxramp.com') return;
if (event.data?.source !== 'frax-ramp') return;
if (event.data.type === 'order_status_changed') {
console.log(event.data.status);
}
// Selling: send the tokens with your wallet, post the hash back.
if (event.data.type === 'sell_deposit_requested') {
const { requestId, request } = event.data;
const txHash = await wallet.sendErc20(request.token, request.receiver, request.amount);
iframe.contentWindow.postMessage(
{ source: 'frax-ramp-host', version: 1, type: 'sell_deposit_result', requestId, txHash },
'https://fraxramp.com'
);
}
});