riddlePARTNERS

Setup · login

Login with Riddle Wallet

Site login for other websites. Wallet opens as a popup — never an iframe of the wallet.

Open live demo →

  1. 1

    Finish account + origin

    Complete Partner account setup so your slug exists, then allowlist your site in Dashboard → Embeds.

  2. 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. 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. 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. 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.