Building a free-to-use social DApp


Cointelegraph is following the development of an entirely new blockchain from inception to mainnet and beyond through its series, Inside the Blockchain Developer’s Mind, written by Andrew Levine of the Koinos Group.

In my first article in this series, I explained why Ethereum and Steem have not been able to deliver a conventional decentralized social app (DApps). In my second article, I explained how EOS tried to combine features of both strings but it did so in a way that still required users to buy high-priced random access memory (RAM) for accounts and smart contracts.

In this article, I want to take a different approach to this problem, not based on comparisons with existing platforms, but based on first principles. Rather than constrain our imaginations based on the limitations of early attempts at general-purpose blockchains, let’s look at the problem from a developer perspective. What do they need to deliver the user experience that core users require? In my previous article, I described this as “no fees and no exceptions.” In other words, they want totally free apps.

Building a free-to-use DApp from first principles

The first thing a user will need to use an app of any kind is an account, so introducing a fee here would immediately create a negative user experience. We want to minimize friction for the user so that we can maximize virality; we certainly don’t want to force them to buy an account. But we don’t want to solve this problem by simply forcing the developer to pay the account creation cost because this will increase their costs.

Related: Transactions without gas will revolutionize Web3

This problem is easy because it has already been solved by Bitcoin and Ethereum, both of which allow users to create addresses for free. So thinking from first principles, if we don’t want developers or end users to have to pay for accounts, we need a blockchain with addresses that work as accounts.

Who pays?

Using Bitcoin or Ethereum style addresses allows us to create accounts without the end user or DApp developer having to pay the fee. Great. But, now we want people to actually use the decentralized application, which means we want them to run a computer program. on a decentralized computer and consume some of the computer’s resources. We want to let them do something that will have a real cost that someone will have to pay. It’s just a question of who, right? Well, this assumes that there is only one way to charge people.

This is precisely where first principles thinking provides so much value. Fees are the traditional way we charge people to use blockchains, so if we assume this is the only solution, the only conceivable option is who pays the fee, not whether there is an alternative approach to the problem.

Related: The Power of Cheap Transactions: Can Solana’s Growth Overtake Ethereum?

opportunity cost of freight

Taking people’s money is one way of imposing a cost (i.e. lowering your token balance), but there is another kind of cost: opportunity cost. Taking people’s ability to use their tokens (i.e. their money).

If we could create a decentralized system to “charge” people for using the blockchain, not by taking their tokens, but by taking away their ability to use their tokens (for a period of time), then we could allow them to use the blockchain. without taking any of his chips.

Not only that, but once that time period is up, they could choose to use the blockchain more, meaning they wouldn’t have to constantly buy more tokens just to be able to continue using the app they love. This would dramatically increase user retention and further maximize growth.

video game experience

We now have a mechanism for charging users that doesn’t seem like a fee, but our goal is to provide a mainstream user experience. Requiring people to consciously lock cryptocurrency tokens before they can use an app is not a conventional user experience.

If we can’t require people to consciously lock tokens, that means we need a system that allows people to just use the blockchain without thinking. All it means is that the size of the opportunity cost has to be decided by the system instead of the user. Taking this decision out of the hands of the user allows us to design the system so that the size of the opportunity cost is as low as possible, all while maintaining economic sustainability. This gives the user the confidence that they are never “overpaying” (even if it is just an opportunity cost) while maximizing growth by lowering barriers. The cheaper the transactions, the less they feel like fees, the better the user experience, and the faster we can expect the user base to grow.

Of course, the user deserves to know how many of his tokens will be locked if he decides to take the action. What we want is basically a mana bar from a video game. The user should be able to see how much free blockchain usage they have based on the liquid tokens they have in their wallet. When they go to perform some action that consumes blockchain resources, they should be able to see how much of their mana will decrease when they perform the action. If they find the cost acceptable, they simply perform the action, such as minting a non-fungible token (NFT), their mana is consumed and the correct number of tokens are locked for the set amount of time. Wouldn’t that be great?

the last barrier

There is one last problem: with the system we have described, the end user must still have some tokens in their wallet. Usually that means they still have to make a purchase (of tokens) before they can use the app. While we still have a pretty good user experience, telling people they have to spend money before they can use an app is a barrier to entry and ends up feeling like a fee. I would know, this is exactly what happened on our previous blockchain, Steem.

ea599073 9611 432c 9f47 5548fc3a6663

To solve that problem, we added a feature called “delegation” that would allow people with tokens (eg developers) to delegate their mana (called Steem Power) to their users. This way, end users could use Steem-based apps even if they didn’t have any of the native STEEM tokens.

But that design was very much tailored to Steem, which had no smart contracts and required users to first buy accounts. The biggest problem with delegations is that there was no way to control what a user did with that delegation. The developers want people to be able to use their DApps for free so they can maximize growth and generate revenue in some other way, like a subscription or by selling in-game items. They don’t want people taking their delegation to trade decentralized finance (DeFi) or using it to play another developer’s big game like Splinterlands.

We want users to be able to use a specific DApp without having to buy tokens first, and as always, we don’t want the developer to have to spend money to make this happen. The last part is difficult because the traditional way to solve this problem is to design the smart contract so that the developer can choose to pay the fee instead of the user. But remember, we’ve already solved this problem because no one is paying a fee for anything, just an opportunity cost. As long as the developer has tokens, they can choose to pay for the “mana” someone needs to use their app.

Free for developers?

But what if the developer doesn’t want to buy tokens? What if they have an existing app with a thriving user base that the platform would be lucky enough to attract? It is in the best interest of large token holders to attract high-quality developers to a platform so they can do the same. The stakeholder could allow the developer to set them (the stakeholder) as the “payer” of mana for the developer’s smart contracts.

The stakeholder is not losing any money by doing this, but can still implement your capital to support value creation and growth, which is great. If the stakeholder provides their mana to a developer whose app adds tremendous value to the platform, then the value of their tokens will increase. If the developer’s app doesn’t add value, the stakeholder has an incentive to stop providing their mana to that developer and find someone else who can make better use of their mana.

Now we’ve figured out not only how to make a DApp free to use for the end user, but as an added bonus, we’ve figured out how to make the blockchain free to use for developers while also giving large stakeholders a way to invest in growth and value creation without sacrificing any of their token holdings.

Impossible?

But, this is all just in theory, right? Not really. What I have described here is exactly how we are building Koinos. In fact, all of these features are already live on our current testnet and the third and final version of the testnet is coming soon. If you want to learn more about mana, you can read the white paper here.

This article does not contain investment advice or recommendations. Every investment and trading move involves risk and readers should do their own research when making a decision.

The views, thoughts, and opinions expressed here are those of the author alone and do not necessarily reflect or represent the views and opinions of Cointelegraph.

Andrew Levine is the CEO of the Koinos Group, a team of industry veterans accelerating decentralization through accessible blockchain technology. Its core product is Koinos, a free and infinitely updatable blockchain with universal language support.