📱xApps ("dApps")

Build your own web app to live in-app, inside Xumm for all Xumm users. Build an xApp. Use your favourite tools & frameworks for the client side code (HTML, CSS, JS, etc.

xApps are web apps. They are offered to users as integrated apps, opened in Xumm for a great user experience. They add value (tools, apps, wizards, ...) for end users. They receive context information when opened, and can interact with some of the native Xumm features & users through Sign Requests.

Please read carefully: Requirements

Permissions

xApps have extra special permissions, allowing the xApp (web app) to interact with some of the native Xumm features:

  • They receive context (user account selected in Xumm when opened, Xumm theme, input params, account type (eg. Tangem / ...)

  • They can trigger overlay Sign Requests and receive callback info

  • They can trigger the QR scanner and receive scanned QR data

Opening xApps

xApps can be opened (triggered) in lots of ways:

  • In the Xumm shortlist (we feature some apps, they get replaced by frequently used apps by the user)

  • From the xApp directory

  • By opening a deeplink (browser / from within another app)

  • By scanning a QR code

To prevent showing a double loader (first the Xumm xApp loader, then your xApp's loader while hydrating / booting) you can enable the "Xumm Loader Screen" option in the Xumm Developer Console (xApp tab). See ready()

Advanced ways to open xApps

  • By attaching an xApp memo to an XRPL TX (so the Event list will show there's an xApp attached to the TX)

  • Using push notifications

  • From the Event list, as an xApp session pushed to a Xumm user

xApp example use cases

  • Trading interface (offloads signing to Xumm)

  • Admission ticket checking

  • NFT marketplaces / viewers

  • Issuing tokens, checking tokens

  • Tools: setting up accounts, crafting advanced transactions, escrows, etc.

  • Exchange deposit / withdraw integrations

Sample code

<html lang="en">
  <body>
    <h1 id="accountaddress">...</h1>
        
    <script src="https://xumm.app/assets/cdn/xumm.min.js"></script>
    <script>
      var xumm = new Xumm('your-api-key')
      
      xumm.on("ready", () => console.log("Ready (e.g. hide loading state of xApp)"))
  
      // Account can't change (like Web3 logout/login) so we can rely on the promise
      xumm.user.account.then(account => {
        document.getElementById('accountaddress').innerText = account
      })
    </script>
  </body>
</html>

Last updated