Setup · login
Login with Riddle Wallet
Site login for other websites. Wallet opens as a popup — never an iframe of the wallet.
- 1
Finish account + origin
Complete Partner account setup so your slug exists, then allowlist your site in Dashboard → Embeds.
- 2
Mount the widget
Replace acme with your slug. This is the supported browser entry (riddlepartners.js, same file as inject.js).
<div id="riddle-login"></div> <script src="https://partners.riddlewallet.com/riddlepartners.js"></script> <script> const riddle = RiddlePartners.createClient({ partner: 'acme' }) riddle.mount('#riddle-login', { product: 'login', height: 420 }) </script> - 3
Iframe alternative
Use the same allow attribute so wallets can copy URIs.
<iframe src="https://partners.riddlewallet.com/embed/login?partner=acme&network=mainnet&embed=1" style="width:100%;height:420px;border:0;border-radius:16px" allow="clipboard-write; clipboard-read; payment; camera; publickey-credentials-get *; accelerometer; gyroscope" title="Riddle login" ></iframe>
- 4
Store the public address on your site
You receive address + chain only. Do not expect rdl_sess cookies on your domain.
window.addEventListener('riddle-embed', (e) => { const d = e.detail if (d.type === 'riddle-embed:connected') { // d.address, d.chain, d.accounts — public identity only } }) - 5
Do not iframe the wallet
wallet.riddlewallet.com has X-Frame-Options DENY. The widget popups it with return on partners.riddlewallet.com/embed/login.