What is the Houdini Widget?
The Houdini Widget is a pre-built, hosted swap interface that you embed into any website or web application with a single<iframe>. It renders the full Houdini swap experience — no backend and no API key required for a basic embed.
You control which features appear and preselect the swap pair through URL parameters on the iframe src.
Try the Widget Playground
Configure the widget visually, preview it live, and copy a ready-to-paste embed snippet.
Key Features
Drop-in Integration
Add a full-featured swap interface in minutes with a single iframe
Configurable via URL
Preselect tokens and show or hide tabs with simple query parameters
All Route Types
Supports private, semi-private, and DEX swaps out of the box
Responsive Design
Works on desktop, tablet, and mobile devices
Auto-Updated
Maintained and updated by Houdini - always current
No Backend Required
The widget handles all swap logic - no server or API key needed to embed
Quick Start
Embed with an iframe
Add the widget to your page in 2 steps:Configuration (URL parameters)
Append query parameters to the iframesrc to preselect tokens and control which tabs are visible. You can build and preview these combinations in the Widget Playground.
| Parameter | Values | Default | Effect |
|---|---|---|---|
widgetMode | true / 1 | off | Enables widget mode (hides the “Powered By” and “New” badges). The /widget route is always in widget mode; use this flag only when embedding another route. |
tokenIn | Token symbol (e.g. ETH) | — | Preselects the input (“from”) token |
tokenOut | Token symbol (e.g. SOL) | — | Preselects the output (“to”) token |
hideSwap | true | Visible | Hides the Swap tab |
hideMultiswap | true | Visible | Hides the Multiswap tab |
hideSend | true | Visible | Hides the Send tab |
Tab parameters are opt-out: every tab is shown by default, and you set
=true to hide the ones you don’t want. There is no “include” parameter.Examples
Preselect an ETH → SOL swap:Theming
Deeper visual customization (custom colors, fonts, and styling) is coming with
the Widget SDK. It is not yet available via URL parameters.
Notes & gotchas
- Opt-out, not opt-in. The
hide*parameters remove tabs; there is no parameter to add tabs. All tabs are visible unless you hide them. - Don’t hide all three tabs. Setting
hideSwap,hideMultiswap, andhideSendall totrueleaves an empty tab header. Always keep at least one tab visible. widgetModeis independent of thehide*flags. It only controls the badge chrome (“Powered By” / “New”); it does not change which tabs appear.- The
/widgetroute is always in widget mode, so you only needwidgetMode=truewhen embedding a different route.
Widget vs API Integration
| Feature | Widget | Direct API |
|---|---|---|
| Implementation Time | Minutes | Days/Weeks |
| Maintenance | Auto-updated by Houdini | You maintain |
| Customization | Preselect tokens, toggle tabs (theming soon) | Full control |
| UI/UX | Pre-built, tested | Build from scratch |
| Backend Required | No | Yes (for security) |
| Best For | Quick integration, standard flows | Custom experiences, full control |