The Case for Stablecoins — 3

Examining TandaPay’s architecture to see a specific example where stablecoins change the user experience

Image for post
Image for post

Understanding the specific case to gain insights into the general case

Once I’ve (demonstrated the value of building on Ethereum) then we can imagine two versions of the same decentralized application. One version uses a stablecoin and the other uses ETH. By considering the outcomes for users based upon these options, a stablecoin’s value proposition should become obvious.

In this post I use TandaPay as a specific example of how stablecoins change the user experience. You may have felt comfortable reading installment one and two of this series because I was not referencing TandaPay as I provided valuable information about why stablecoins are important. I was not able to address specific user experience details in those posts because I was talking about the need for stablecoins built upon cryptocurrency networks generally.

The point of this post is not to promote TandaPay. The point is to speak about my experience designing decentralized app architecture that needs to use stablecoins to provide the best possible user experience. I want to explain why I feel the average consumer is negatively impacted when forced to pay premiums and receive claim awards in a currency that is foreign to them, namely ETH. This requires me to speak specifically about how to design app architecture and to provide concrete examples by referencing what I’m currently building.

By the end of this post you will know how stablecoins can positively change the TandaPay user experience. You will then be able to apply this knowledge to understand how stablecoins can impact the user experience across other types of decentralized apps generally. If you are ok with me diving into this specific case to get a feel for the general case then this post is for you (if not then not).

WARNING — this post is very long and technical. If you don’t really care to learn about decentralized architecture you might want to sit this one out. Even if you do care about decentralized architecture I wouldn’t read this entire post in one go as it is long (5,300 words). Because the argument I’m making is not obvious to many people, reading this post requires careful consideration to understand these concepts. Prior to reading this post you may want to consider these two posts to get a general overview with pictures of how TandaPay works:

Image for post
Image for post
Helpful images located in the other posts

TandaPay quick review

  1. Friends and mutual acquaintances can form into a group of 50 people.
  2. Everyone pays $20 a month to a smart contract using cryptocurrency.
  3. Now the group has $1000 to pay two $500 deductibles
  4. The secretary can whitelist a valid claim but is not a custodian of funds.
  5. If any fraud occurs, a policyholder can leave with their premium.
  6. Premiums are finalized at the end of the month, after which the smart contract pays the claimant(s) directly.
  7. After all claims are paid if there are any remaining funds in the smart contract they are returned to policyholders as rebates.

People think in terms of their local currency

Image for post
Image for post

Currency exchange isn’t very fun

  1. What is the exchange rate?
  2. Is this rate better or worse than it was yesterday, last week, last month?
  3. What fees am I paying for this conversion?
  4. Could I get a better rate or lower fees if I went somewhere else?
  5. Is my bank going to charge me excessive fees if I withdraw from this ATM?
  6. Have any of my friends found a better place to exchange their currency?
  7. Did I get the right amount paid to me?

If I go on vacation, I want to enjoy it. I try not to let stress about little things ruin it for me, but the stress of knowing that I was taken advantage of is worse than the stress of having to be careful about whom I trust. So unless someone I trust can provide me with a guarantee that I’m being treated fairly when I convert currency, I have to crunch the numbers every time I do a conversion. This may last for the first few days when I’m on a trip. After a few times of trying to convert to local currency I have a sense as to what rate I should expect to receive. This allows me to relax a lot more, stop worrying and start enjoying my vacation.

But, that’s because the exchange rate between the local currency and USD doesn’t fluctuate much (if at all) during my trips. Imagine if halfway through my trip the value of USD relative to the local currency drops by 10%. Now I’m back to crunching the numbers before I complete a transaction. I also feel frustrated that I didn’t budget a 10% swing in conversion rates in advance. Now everything is 10% more expensive for me than I thought it would be. Can I afford every outing I had planned to take now? I’m stressed and I start complaining that I need a vacation from my vacation.

What’s so challenging about using ETH?

Given that we can bridge people into the world of ETH, how bad could forcing policyholders to transact in ETH be? Until we look at specific instances we might be over exaggerating the negative effect associated with users paying premiums and receiving claims in ETH. When designing our app, some of our major goals should be to:

  1. Design the user interface to be as intuitive as possible.
  2. Create user stories for each user experience event.
  3. Build support processes that strengthen the group’s ability to function.
  4. Plan an onboarding strategy to acclimate new users within 1 to 3 hours.

Step 1: Interface design — How to denominate funds

Image for post
Image for post

When designing the app interface how will you denominate funds? It’s important to assume that the majority of TandaPay users will not have used cryptocurrency prior to downloading the TandaPay app. A user always pays the same monthly premium denominated in USD. If we do not use DAI, after paying in USD they then receive ETH to their wallet for the purpose of paying their premium. This gives rise to the following question: how will you display these funds as USD or as ETH?

  1. If a user expects to see a price in USD and the developers feel that this expectation is reasonable, how can you do this without showing them that the value of their premium fluctuates as it sits in their wallet?
  2. If a user expects to see a price in USD and the developers feel that this expectation creates issues, how can you force the users to think in a currency (ETH) that is foreign to them?

Remember that for TandaPay the end goal is to cover the cost of a $500 auto insurance deductible. The deductible is priced in dollars not in ETH. The premiums are also priced and initially paid for in dollars not in ETH. Displaying a price in ETH simply forces them to do conversions in their head since all they care about is dollars. That causes a frustrating user experience. Displaying a price in dollars will show that the dollar value of the premium is fluctuating. In times of downward volatility this will have a similar effect to the vacation scenario I described earlier, resulting in a stressful situation. Either choice causes a frustrating user experience. So with regard to interface design, we are in a lose-lose scenario if we transact in ETH rather than DAI.

Step 2: User stories — Receiving a claim payment

Image for post
Image for post
Welcome to the world of cryptocurrency. Great promises lie ahead, trust us. Just proceed down the well-lit path.

There are many examples I could give of user stories but the most important is paying a claimant for a qualifying claim. TandaPay is covering the cost of a $500 deductible so a user’s claim is always denominated in dollars. The problem is that without DAI a smart contract always pays the users claim award in ETH, then this award requires conversion from ETH to a payment in USD. When using ETH as a method of awarding a claim two scenarios could potentially play out:

  1. There isn’t enough ETH in the contract to pay a $500 deductible.
  2. There is more than enough ETH to pay a $500 deductible.

Step 2: User stories — Not enough ETH

Rather than boring you with with an explanation describing how claimants might react to downward volatility, let’s laugh together at the misery of some NPR reporters (Cardiff and Stacy). This is their reaction as they experience the joys of buying a cryptokitty:

THE INDICATOR @ planet money We Buy A Cryptokitty! (start at 3:10 — click play button)

Cardiff: Well we procrastinated a little longer than expected and actually like a week went by and we finally sat down to buy our cryptokitties.

Stacy: This is exciting.

Cardiff: Oh my God. The value of our Ethereum has plummeted.

Stacy: Wait what (gasp).

Cardiff: Oh my God. Our hundred dollars is down to seventy one dollars and twenty three cents.

Stacy: Oh my God.

Cardiff: What fresh hell is this.

Stacy: But…

Cardiff: Our money’s gone (laughs), it’s gone.

Stacy: it’s not gone, it’s holy… Well maybe the, wow.

Cardiff: Wow that’s astonishing.

Stacy: It’s brutal in the blockchain.

If normal people (not Ethereum maximalists) describe their experience of volatility as, “fresh hell” and “brutal” how long can we expect our app users to stick around if this is their experience?

Step 2: User stories — More than enough ETH

But the policyholders who opened claims at other times could have received a full claim payment. Imagine how you would feel if the month you decide to open up a claim you are awarded $400, yet others opening claims in the previous months received $500. Unequal outcomes makes people feel as if the system is applying some standard of unequal treatment. This isn’t true but it doesn’t stop people from holding this opinion, even if they can understand that the price of ETH is volatile.

In the end, they may feel that having their claim paid in full is simply a matter of luck. This isn’t how purchasing insurance should feel like. Purchasing insurance should feel like you are making a prudent choice to manage your risk. Taking such a responsible action should result in feeling like there is fewer negative consequences resulting from bad luck, not more.

Step 2: User stories — Timing the market

Image for post
Image for post

A volatile price tends to turn mild mannered policyholders into crazed speculators. Claimants who receive a claim award are not merely trying to mitigate risk but they may also be trying to time the market when they exit. If Ethereum is down maybe if they wait the price will go back up. Is Ethereum on a bull run? if so then don’t convert your ETH now or you’ll loose out on the opportunity to make money.

Their claim award was initially meant to assist in the payment of a deductible but now when claimants receive this money they are trying to decide if they should “let it ride” or “cash out their chips.” As I explained in the first blog in this series:

Volatility makes cryptocurrency networks the Las Vegas of payment systems. It’s exciting to go to Vegas, but it’s not always fun.

What’s worse is that they are not relying on a typical cryptocurrency exchange to convert from ETH to dollars. They are instead relying on the leader of their group to perform this conversion. This leader has the designation of being the group’s secretary. Prior to the start of a policy period the members of a group give their secretary the equivalent of their premium in dollars. The secretary performs a conversion of USD to ETH. This allows the policyholders to pay their premium in ETH to a smart contract. At the end of a policy period the group decides who is eligible for a claim award. The smart contract then gives the claimants their claim award in ETH and the secretary performs a conversion from ETH to USD.

Image for post
Image for post

As you can see from the graphic above ETH moves clockwise through the system. If claimants do not send their ETH to the secretary then the secretary will not have ETH to give to policyholders.

Procrastinating claimants can create cash flow issues by placing undue burden on the secretary. Claimants shouldn’t have the expectation that secretaries would always have cash on hand to convert ETH to dollars. With stablecoins there is no incentive for claimants to hold onto DAI hoping that the value of their DAI will increase. With ETH these conversions may be subject to the whims of the claimant.

Claimants do not want to receive dollars if the value of their ETH is lower than what they expect it to be in the future. Secretaries do not want be forced to hold more funds than are necessary to help the group remain liquid. If a secretary has $500 set aside to pay a claim but the claimant waits until their ETH is worth $600 then the secretary’s liquidity isn’t sufficient to perform this conversion. This could result in the secretary feeling that the expectations placed upon them are unreasonable.

As we will see in step 3: support processes it is critical that claimants convert to cash immediately once they receive their award. If claimants want to hold ETH for the purposes of speculation, they would be required to purchase it themselves. ETH must flow from the participants in the following way:

  1. From the secretary to the policyholders
  2. From the policyholders to the smart contract
  3. From the smart contract to the claimants
  4. From the claimants to the secretary

The secretary is not an institutional organization. He is only an individual with the capacity to serve a small group. This requires the group to cooperate. ETH’s volatility is a distraction which may produce selfish behavior in some claimants that depreciates from the groups main focus of helping one another.

Step 2: User stories — Conclusion

  • Validating the details of legitimate claims
  • Helping one another recover from accidents
  • Building a community around P2P insurance

Step 3: Support Processes — Dollars to Crypto

Image for post
Image for post

UPDATE (Dec. 2019): The problem discussed in this section is now obsolete thanks to new advances in technology. Users do not need to rely on the secretary to obtain small amounts of DAI nor do they need to register with a cryptocurrency exchange. A fiat on-ramp is now natively integrated into the Fortmatic wallet used by TandaPay. To find out more about this please see:

The portal is now open — Fortmatic fiat on-ramp is in public beta!

WARNING — This is the most technical section and you should not read it if you don’t want to have to think carefully about TandaPay’s architecture. Thank you for getting 2,000 words deep into the article. Your effort is appreciated, you’re the real MVP. If you are up for the challenge, then I say go for it! Months after writing this I wrote a more clear and concise version with graphics illustrating these processes here. The newer post is written better than this section and it says about the same thing, FYI (same Dec. 2019 update also applies to this post).

Step 3: Support Processes — Conversion

Its important to remember that secretaries never hold other peoples money. They do however hold a subset of their own funds which are earmarked to help policyholders and claimants. These funds provide liquidity to the community. The community is relying on these “liquidity funds” the same way that you rely on the ATM at the airport to be stocked with cash. If there is no cash at that ATM it doesn’t mean that your money is gone, but it does mean that you can’t get cash before getting on your plane.

Similarly, if these liquidity funds are spent by the secretary on personal expenses this does not constitute misappropriation of funds, since these funds were his to begin with. This does however frustrate the community and make them unable to rely on the secretary (just like you can’t rely on an ATM that has no cash). Not maintaining a separate subset of funds for conversions results in the group being unable to function. If something isn’t done quickly to remedy the situation then the policyholders may not be able to pay their premiums, which may result in a lapse of coverage.

The below infographic illustrates what I call the “liquidity funds problem.” For a normal business (a business that does not rely on blockchain) what I describe as a problem they would simply see as a requirement of doing business. By the end of this section you will either be convinced that:

  1. I’m totally wrong, I’m trying to use blockchain for something unnecessary. We already have good mechanisms for creating and registering businesses. These businesses can then open up business banking accounts to hold funds. Any person who would run a TandaPay group and not want to run it as a formal business is stupid.
  2. Creating a business to help a group of 50 friends is an unreasonable expectation. This is incredibly onerous given the groups small size and the informal nature of the service. Creating a business entity doesn’t even provide better guarantees for policyholders, only less liability for a secretary. Why create a business just to acquire a business banking account when we can get better guarantees by tracking funds on the blockchain? The entire process of acquiring a business bank account is costly, burdensome, and unnecessary.

I will refer back to this infographic several times:

Image for post
Image for post

What the infographic can teach us:

  1. Periods have overlap, this is due to the fact that people pay premiums prior to the start of the month and claims are paid after the end of the month.
  2. During the pay premiums stage policyholders want to exchange their $$ for ETH so that they can pay their premiums to the smart contract.
  3. During the pay claims stage claimants want to exchange their ETH for $$ after the smart contract has awarded them with ETH.
  4. The gap of time where the secretary holds $$ from policyholders (from period 2) before he pays out $$ to claimants (in period 1) is relatively short (approximately 3 to 5 days).
  5. The gap of time where the secretary holds ETH from claimants (in period 1) before he sells ETH to Policyholders (in period 3) is relatively long (approximately 25 to 27 days).
  6. This period exposes the secretary to volatility risk. To mitigate this risk he would need to convert ETH to $$ at the start of the period and $$ to ETH at the end of the period.
  7. If he doesn’t open a business bank account these “liquidity funds” are sitting in his personal account.

My problem with architecture that uses ETH:

  1. If the secretary screws up even one time and spends the community’s liquidity funds then the community will need to be rescued.
  2. Using TandaPay for currency conversion requires TandaPay to perform AML / KYC on all policyholders in a group. This allows them to purchase or sell DAI through the TandaPay website and is problematic because:
    * It is expensive to TandaPay
    * Absorbing these costs are unreasonable
    * Passing these costs on to policyholders would upset them
    * TandaPay as a protocol is more centralized if secretaries are unreliable
  3. Anytime the secretary holds funds off of the blockchain there is no way to validate that liquidity funds are kept separate from personal funds
  4. If these funds were DAI they could be placed into a time lock contract and all these problems would go away.

Why TandaPay must use DAI:

  1. Volatility of policyholder premiums (ETH) sitting inside of the smart contract creates risk and uncertainly for claimants.
  2. Volatility of liquidity funds (ETH) which need to be held by the secretary for the majority of a month force the secretary to temporarily convert these funds to dollars.
  3. Dollars cannot be tracked easily thus the policyholders are not provided with good guarantees that liquidity funds will be kept separate from personal funds.
  4. This opens up the potential risk that these funds will be mismanaged and the community will need to be rescued. This makes the protocol less reliable
  5. If the architecture used DAI it could guarantee that a secretary’s personal funds are kept separate from a community’s liquidity funds.

Step 3: Support Processes — Conclusion

  1. Converting cash to cryptocurrency before the start of each month
  2. Converting cryptocurrency to claim payments after the end of each month

Without this service policyholders would be unable to pay their premiums and claimants would be unable to cash out their claim awards. Using stablecoins, such as DAI, allows secretaries to put liquidity funds in a time lock contract for the majority of the month. This creates a greater level of transparency and offers better guarantees that the secretary has the funds to keep the system operating. Most importantly it keeps liquidity funds separate from the secretary’s personal finances. The blockchain provides this service at a much lower cost than obtaining a business bank account.

If you do not use a stablecoin and instead use ETH to pay premiums and claims this exposes the secretary to volatility when they hold liquidity funds as ETH. To mitigate this risk a secretary must convert ETH into $$ and later in the month $$ back to ETH. This requires that he store these $$ in a bank account for the majority of the month. This creates less transparency and offers fewer guarantees that the secretary has the funds to keep the system operating. Most importantly it doesn’t ensure that liquidity funds are kept separate from the secretary’s personal finances. In addition banks provide business banking accounts at a much higher costs than using a smart contract to hold DAI on the blockchain.

Using DAI in the architecture makes the system simpler and more reliable, it provides better guarantees for policyholders and exposes everyone to less risk.

Step 4: onboarding strategy

Explaining ETH volatility is technical, and that’s bad

Image for post
Image for post
When Windows “can’t handle” it’s problems we’re supposed to “search for the error online” because we’re expected to know how to fix Microsoft’s problems. What do I look like a computer therapist or something? I’m not qualified for this.

The secretary is not a portfolio manager or an investment adviser. They are not telling people to buy ETH as an investment strategy. Secretaries need policyholders to purchase ETH because peer-to-peer insurance requires censorship resistant payments and escrows free from custodial liability. If we are forced to teach people about Ethereum’s volatility as an asset then this will distract people.

Its very difficult for people to understand that Ethereum has unique features that other payment networks do not have. Our policyholders have only known one payment network their entire life, the banking system. Trying to tell them that there are other types of payment networks is likely to generate the following response, “OK so what, why should I care, why are you telling me this?” You can continue to explain that, “to gain greater fraud protections and to lower the cost of overhead imposed by government regulations, a new payment system is needed. This new payment system has more features but the trade-off is accepting that ETH is a volatile asset. TandaPay requires policyholders to transact using ETH and this exposes policyholders to volatility risk.” The expected response is still, “OK so what does this have to do with me?

Put yourself in their shoes, most of what you are being told is technical. Policyholders are being told that the below three things, which seem totally unrelated, are somehow connected:

  1. TandaPay provides greater protections from fraud and misappropriation of funds
  2. TandaPay allows users to avoid costly government regulations. This lowers operating costs and passes savings on to policyholders.
  3. TandaPay requires users to accept the price volatility of Ether

Try as much as you like, but getting people to understand that using TandaPay must expose them to volatility risk doesn’t make that much sense. If I was a potential policyholder, I would respond with, “I don’t really understand but if you think I should invest in ETH then I’ll invest in ETH. Otherwise if you can just give me coverage without price volatility then I’ll take that option.” 🤦

Trying to teach facebook users about how packet routing and IP addresses work is a bad idea. Trying to teach Windows users how to fix BSOD problems on their own is definitely a bad idea. Trying to teach TandaPay users about cryptocurrency payment features and price volatility is also an equally bad idea. We shouldn’t expect users to understand the technical workings of a technology to benefit from its use.

Innovative technologies mature over time. As a technology matures, less technical skill is required to benefit from the use of a technology. Cryptocurrency networks without stablecoins are at the same level of maturity that the internet was in 1994 because the skill level required to gain benefits from using the technology is still too high. Cryptocurrency networks with stablecoins can abstract away the technical details of how Ethereum, as a payment network, functions. This is similar to how DNS can abstract away the need for users to remember IP addresses on the internet.

With DAI no explanation of volatility is needed, and that’s good

  1. They pay premiums in dollars
  2. Funds in the app are denominated in dollars
  3. Claims are paid out in dollars

Now our policyholders get the benefits of cryptocurrency as a technology without having to learn how the technology works. All mature technologies provide benefits to users without requiring them to understand how the technology functions. We drive cars but 95% of drivers have only the vaguest idea about how a car turns gasoline into forward motion. We use computers but 95% of users have no idea how they work. Cars did not always require so little technical knowledge and neither did computers, but they do now because they have become mature technologies.

Using DAI = less time spent onboarding


Image for post
Image for post
Clint ETHwood doesn’t do Mexican standoffs he settles them, you get my drift hombre.

Stablecoins convert the exciting world of cryptocurrency into a boring payment network with some fancy features. This allows less technical people to benefit from its use. Stablecoins will become a necessary facilitator allowing mainstream consumers to use apps built atop of cryptocurrency. The service stablecoins provide will be the key driver which will lead to the increased adoption of new types of financial services, hopefully P2P insurance is one of them. These new applications will use stablecoins in a way that is completely inconspicuous. Users will not realize that they are using stablecoins and by implication they will not realize that they are using cryptocurrency. In this way cryptocurrency as a technology will become mature and start offering users services where all of the technical details are abstracted away. The most important of these technical details is the price of the underlying token on which the network is built.

Conversely if your altcoin platform doesn’t have a stablecoin integrated into it then the following will also be true:

  1. The majority of your platform’s users will continue to care about the price of your token
  2. The apps on your platform will not abstract away the technical details of using cryptocurrency
  3. No applications running on your platform will use cryptocurrency inconspicuously
  4. Apps built on your platform will require users to have a technical knowledge of cryptocurrency
  5. No one will view your platform as a mature technology
  6. Your platform will not see adoption from mainstream consumers
  7. Usage of your platform will decline until only the most die-hard of users remain
  8. Your platform will, given enough time, eventually die (unless you are Bitcoin)

UNQUALIFIED PREDICTION: If your cryptocurrency platform doesn’t have a stablecoin integrated into it in less than 2 years from now the chance of it having a market-cap above 100 million dollars 4 years from now is less than 95%.

As Clint ETHwood might say

You’ve Got To Ask Yourself One Question: ‘Do I Feel Lucky?’ Well, Do Ya, Punk?

Image for post
Image for post
If you are a developer of an altcoin and you don’t plan on integrating a stablecoin then best of luck.

Written by

Incentives architect for TandaPay

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store