riddlePARTNERS
XRPL · EVM · Solana · XLM · MAINNET

Partner signup, swap & bridge embeds, Login with Riddle, and sign widgets.

Production partner APIs and drop-in widgets for dApps. Users pay with any suite wallet (Riddle, Xaman, Joey, MetaMask, Phantom) on mainnet through Riddle; you earn a share of platform fees on every attributed swap, bridge, and Cafe trade. Add Login with Riddle and sign widgets without shipping your own wallet UI.

REST APIs

Mainnet swap quotes, bridge estimate/create/status, Cafe broker quote — all with partner fee breakdown.

Embed widgets

Swap, bridge, marketplace, login, and sign — one setup path, origin allowlist.

Login with Riddle

Drop-in identity: users authenticate with a suite wallet. Session + origin allowlist for partner dApps.

Sign widgets

Request signatures for payments and messages from the same wallet matrix used by swap and bridge.

Mainnet fee ladder (platform)

fee_extra model — user pays full amount + platform fee to suite treasury.

ProductPlatform feePartner share (Growth)Live app
Swap0.85%30% of feeswap.riddlewallet.com
Bridge1.20%30% of feebridge.riddlewallet.com
Cafe marketplace1%30% of feecafe.riddlewallet.com

Quick embed

Same snippet as setup. Replace acme with your slug.

<div id="riddle-header"></div>
<div id="riddle-swap"></div>
<div id="riddle-bridge"></div>
<div id="riddle-market"></div>
<div id="riddle-login"></div>
<div id="riddle-create"></div>
<div id="riddle-buy"></div>
<div id="riddle-custom"></div>
<script src="https://partners.riddlewallet.com/riddlepartners.js"></script>
<script>
  const riddle = RiddlePartners.createClient({ partner: 'acme' })
  riddle.mount('#riddle-header', { product: 'header', height: 56 })
  riddle.mount('#riddle-swap', { product: 'swap', height: 560 })
  riddle.mount('#riddle-bridge', { product: 'bridge', height: 760 })
  riddle.mount('#riddle-market', { product: 'marketplace', height: 560 })
  riddle.mount('#riddle-login', { product: 'login', height: 420 })
  riddle.mount('#riddle-create', { product: 'create', height: 480 })
  riddle.mount('#riddle-buy', { product: 'buy', height: 280 })
  riddle.mount('#riddle-custom', { product: 'custom', height: 640 })
</script>