The deposit API is available now - build your own UI on it (see the
API reference). The widget runs as a live preview at
widget.rheon.io.
Deposit API
Available now. The deposit API is three calls - quote, build the transaction, track status - on the same rails the widget runs on. It is non-custodial: the API returns unsigned transactions and the user’s wallet signs them. Use it when you want your own UI end to end. Calling it from your own backend? Start with Server-side integration for the key, the/v1 prefix
and the whole flow in order.
Embeddable widget
Coming soon. The widget will drop into your page in a few lines. The design below is the intended shape - expand it to see how each piece will work. It is a plan, not a live spec, and details may change as it ships.Embed modes - iframe, SDK, redirect
Embed modes - iframe, SDK, redirect
Three ways to embed, so you can trade off speed vs control:
- Hosted iframe - the full widget, either as an overlay on top of your page or embedded into a DOM element. Fastest to ship.
- Web SDK - the widget as a component, with lifecycle events and theming hooks, so your app reacts to the flow in real time.
- Redirect - send the user to a hosted Rheon URL and they return after, for cases where you cannot embed.
Planned - shape may change
Secure signed widget URL
Secure signed widget URL
For production white-label deposits, your backend requests a signed widget
URL rather than building one from raw query params on the client. The signature
means the amount, destination, and branding cannot be tampered with client-side.
The token is single-use and short-lived.This is the recommended pattern when the host app must not be able to alter the
deposit configuration.
Configuration - filtering and pre-fill
Configuration - filtering and pre-fill
The widget will be configurable so it fits your product:
- Chain / token filtering - restrict which source chains and tokens the user
sees (
chains.allow / deny,tokens.allow / deny / featured). Rheon’s reach is “any asset, any chain → USDC”, so most partners will want to narrow it. - Pre-fill - pass
walletAddress,amount, target chain/token,emailto skip screens. Each pre-filled field is one fewer step for the user. - Lock fields - mark any pre-filled field as non-editable, so the user cannot change a value you fixed (e.g. the destination).
Lifecycle events (in-page UX)
Lifecycle events (in-page UX)
Embedded via the SDK (or
postMessage from the iframe), the widget will emit
events so your page reacts without polling. Planned set:DepositStarted- the user confirmed, routing beganRouting- settling cross-chainSourceConfirmed- source payment confirmedCompleted- USDC landedFailed- the deposit failed