• Developer Reflections: Xumm App

  • This week on Developer Reflections, we're proud to highlight Xumm (pronounced “sum”), an app for users on the XRP Ledger to create accounts, send and receive funds, track transactions, check balances and exchange value on the XRP Ledger.

    Xumm App was built by Wietse Wind, a popular, parrot-owning, prolific developer within the XRP Community and his talented team Ali Mohammadloo and Tristan vande Kamp, which together form XRPL Labs, a company that Xpring invested in to continue building apps that showcase the power of the XRP Ledger.

    At first look, Xumm may appear to be an ordinary crypto wallet for XRP. But to the trained eye, Xumm provides a host of features and functionality that make it a powerful platform for thousands of its individual users to “be your own bank.”

    Almost every great crypto app starts with a way to store, send, and receive crypto.

    Storage

    Xumm provides users with the ability to store their XRP Ledger private keys in a safe and sensible way, without storing the keys on your behalf. Although don’t expect account creation to be as simple as inputting your email and creating a password. It’s a little more complicated than that - for good reason. There’s an old saying in crypto - “not your keys, not your coins” - which means that if an app is storing your private keys on your behalf, then they own and control your crypto, you don’t. This is similar to how a bank custodies your funds. But a unique aspect of crypto is the ability to own and control your own funds, which relates to another common saying in crypto to “be your own bank.” The Xumm App empowers users with this ability.

    Account Creation

    Upon account creation, Xumm generates a random set of eight six-digit numbers, which act as your private key. These numbers are required if you ever lose access to your phone and have to download the Xumm App again from the Android or Apple app stores, because remember, Xumm doesn’t store the numbers. If you lose those numbers, then you lose your funds. Xumm then requires users to type in the numbers again. This helps to ensure that users have written down their random set of numbers, which is safer than checking a box that confirms you’ve written the numbers down.

    Account Activation

    Once the account has been created, Xumm reveals your public address on the XRP Ledger, which is the address used to receive funds and usually starts with an r. In the “be your own bank” analogy, this address is like your own bank routing number, which is important. But before you can do anything with your new account, it has to be activated. Similar to how you make an initial deposit into your bank account, XRP Ledger accounts need at least 20 XRP, which is called a base reserve, in order for the account to be activated. Since every account on the XRP Ledger takes up space in the network, and more space means that servers have to store and process more information, this cost is designed to reduce the amount of spam accounts created, which could “bloat” the network and potentially slow it down.

    Most users fund their Xumm XRP Ledger account from either an exchange or another wallet that they own, which already has an active XRP Ledger account. If you don’t have either of those, then there’s an active, growing, generous XRP Community on social media that is always thrilled to see new enthusiastic users. Ask nicely :)

    Receive Funds

    Receiving XRP for the first time, especially on Xumm, is a fun experience as it demonstrates the lightning speed of the XRP Ledger. A user can copy their XRP Ledger public address on Xumm and paste it into any other exchange or wallet that they own. The exchange may ask for an optional destination tag address, which in the “be your own bank” analogy is the equivalent of a bank account number. As a single bank routing number can have millions of bank account numbers associated with it, so can an XRP Ledger address have millions of destination tag addresses associated with it. But since Xumm allows you to be your own bank, you don’t need to input a destination tag address. All you need is your XRP Ledger address.

    Once the XRP is sent to your XRP Ledger address, Xumm will almost-instantly reveal your new account balance on the XRP Ledger. Certain exchanges process XRP withdrawal transactions in batches every ~60 seconds, but generally you should see XRP hit your account in 3-5 seconds - as fast as receiving an email.

    Send Funds

    In order to send XRP from any account on the XRP Ledger, including those using Xumm, a user needs 20 XRP, plus at least 10 “drops,” where 1 drop is equal to one-millionth of an XRP. These 10 drops are the minimum amount used to pay an XRP Ledger transaction fee, which is burned on the XRP Ledger, in order to reduce transaction spam on the network. 10 drops can be used to send as little as 1 drop or as high as billions of XRP. Unlike most payment networks, the XRP Ledger doesn’t distinguish between the amount of XRP being sent and the cost to send a transaction. To ensure there’s enough XRP to send funds, users generally fund their XRP Ledger accounts with at least 21 XRP, which would cover up to 100,000 XRP transactions at 10 drops per transaction. Although there are 17(!) different transaction types on the XRP Ledger, of which Xumm supports several, some of which require a higher base reserve than 20 XRP, so use your best judgement.

    Sending funds from Xumm is as simple as selecting the currency (read ‘other currencies’ below), adding the amount, and either manually typing the destination XRP Ledger address, scanning a QR code, or selecting from your contact list. Handling crypto addresses is generally hard, but Xumm makes it a less painful experience. You can even add a little note in the XRP Ledger “memo field”, which allows arbitrary messaging data to be sent with the payment. Once the transaction fields are filled, a user simply sends the payment transaction, which costs 12 drops that are burned on the XRP Ledger as previously noted. Every transaction on Xumm includes a hash that can be copy pasted into any XRP Ledger explorer to visualize on the live network.

    Xumm is different from other great crypto apps in the advanced functionality that it supports on the XRP Ledger.

    Advanced Functionality

    The XRP Ledger was created in 2012, by former Bitcoin developers David Schwartz, Arthur Britto and Jed McCaleb, as an alternative to Bitcoin. One of the most distinguishing (and cool) characteristics of the XRP Ledger is that it has a decentralized exchange - the first of its kind - embedded in the network. A decentralized exchange allows users to exchange value with each other directly, on a peer-to-peer basis, without trusting central operators.

    In 2013, at a time when people were still trying to wrap their heads around Bitcoin, grokking a decentralized exchange was the equivalent of jumping into a PhD course shortly after taking the introductory class. Today, decentralized exchanges are being actively used as part of a broader effort to decentralize finance, or “DeFi” for short, and Xumm is surfacing that advanced functionality on the XRP Ledger for its users in a simple, yet powerful way.

    Other Currencies

    Xumm taps into the power of the XRP Ledger decentralized exchange by allowing users to add other currencies, including fiat, like US dollars and Euros. On the XRP Ledger these are called “issued currencies,” which represent value held by other entities outside of the XRP Ledger. Fiat denominated issued currencies on the XRP Ledger’s decentralized exchange are akin to fiat backed stable coins, like Tether (USDT), on other centralized exchanges, which have exploded in popularity over the past few years.

    On Xumm, a user can select different issued currencies to add to their account by connecting to these external entities through “trust lines,” which are links between accounts on the XRP Ledger that allow issued currencies to be exchanged on the XRP Ledger for XRP and other issued currencies. A user on Xumm can establish a trust line to another entity by selecting the decentralized exchange, the issued currency type, and signing a “trust set” transaction, which costs 12 drops on Xumm. This transaction authorizes the trust line, sets the limit amount of value to be exchanged on the trust line, and requires 5 XRP to be added to the original 20 XRP base reserve.

    Once the trust line is established, a user on Xumm can choose to exchange XRP for the issued currency or vice versa using the FX rates from each decentralized orderbook. This exchange of value is a transaction on the XRP Ledger called an “offer create,” which is like placing a trade on a centralized exchange, except on the XRP Ledger it only costs 12 drops, which is practically free compared to the fees (up to 7%) that centralized exchanges charge. Note that some issuers do charge less than a percentage for the exchange, so check their fee schedules beforehand.

    The Xumm App makes the experience so easy that a user can go from the first step of key generation to having a USD issued currency in their wallet in less than 20 minutes.

    More…

    The Xumm App provides users with the basic tools to “be your own bank,” which include the ability to create accounts, store, send, receive and exchange value, using the XRP Ledger. But wait there’s more. In a future post on Developer Reflections, we will cover the Xumm Platform, which gives developers an array of additional tools to build their own bank.

    If you're a developer that uses the XRP Ledger, Interledger, Xpring SDK, XRP API, ripple-lib, XRP CLI or related open-source technologies in your products and apps, then fill out this form [link] with details about your product or app, and join the community.

    Warren Paul Anderson

    Warren Paul Anderson