Building a free-to-use social DApp

CoinTelegraph follows the development of an all-new blockchain from its inception to the mainnet and beyond through its series, Inside the Blockchain Developer’s Mind, written by Andrew Levine of Koinos Group.

In my first article in this series, I explained why Ethereum and Steem have failed to deliver a mainstream social decentralized application (DApp). In my second article, I explained how EOS tried to combine the functions of both chains, but did it in a way that still required users to buy expensive RAM (Random Access Memory) for accounts and smart contracts.

In this article, I want to approach this problem in a different way, not based on comparisons with existing platforms, but based on first principles. Rather than limiting our imaginations based on the limitations of the earliest attempts at general-purpose blockchains, let’s instead look at the problem from the developer’s perspective. What do they need to provide the user experience that regular users need? In my previous article I described this as ‘free with no exceptions’. In other words, they want completely free-to-use applications.

Building a free-to-use DApp from the first principles

The very first thing a user needs to use any application of any kind is an account, so entering a fee here would immediately create a negative user experience. We want to minimize friction for the user so 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 fee as this will increase their cost.

Related: Gas-Free Transactions Will Revolutionize Web3

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

Who pays?

By using Bitcoin or Ethereum like addresses, we can create accounts without the end user or DApp developer having to pay the fees. Awesome. 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 use some of the computer resources. We want them to do something that carries a real price that someone has to pay. It’s just a matter of who, right? Well, this assumes there is only one way to charge people.

This is exactly where first principle thinking offers so much value. Fees are the traditional way we charge people for using blockchains, so if we just assume that this is the only solution, the only conceivable option is who pays the fee, not whether there is an alternative approach to the problem. is.

Related: The Power of Cheap Transactions: Could Solana’s Growth Surpass Ethereum?

Charging option costs

Taking people’s money is one way to impose costs (ie lower their token balance), but there is another kind of cost: opportunity cost. Taking the ability of people to use their tokens (ie their money).

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

Not only that, but once that period is over, they can choose to use the blockchain more, meaning they don’t have to constantly buy more tokens to continue using the application they love. This would dramatically increase user retention and further maximize growth.

Video game experience

We now have a user charging mechanism that doesn’t feel like a fee, but our goal is to provide an overall user experience. Requiring people to knowingly lock down cryptocurrency tokens before they can use an application is not a regular user experience.

If we can’t demand that people consciously lock tokens, that means we need a system that allows people to easily use the blockchain without thinking about it. That just means that the system has to determine the size of the opportunity cost rather than the user. By taking this decision out of the hands of the user, we can design the system to minimize the opportunity cost, all while maintaining economic sustainability. This gives the user confidence that they will never “overpay” (even if it is only opportunity cost), while again maximizing growth by lowering barriers. The cheaper transactions are, 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 chooses to perform the action. What we want is actually a mana bar from a video game. The user should be able to see how much free use of the blockchain they have based on the liquid tokens they have in their wallet. When they go to perform an 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 that cost acceptable, they simply perform the action such as hitting a non-fungible token (NFT), their mana is consumed, and the correct number of tokens are locked in for the set period 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 a few tokens in their wallet. In general, that means they have to make another purchase (of tokens) before they can use the application. While we still have a pretty good user experience, telling people to spend money before they can use an app is a hurdle and it feels like a fee in the end. I would know, this is exactly what happened on our previous blockchain, Steem.

To fix that problem, we’ve added a feature called “delegation”, which allows people with tokens (e.g. developers) to delegate their mana (called Steem Power) to their users. This way, end users could use Steem-based applications even if they didn’t have any of the native token STEEM.

But that design was very much in tune with Steem, which had no smart contracts and required users to buy accounts first. The biggest problem with delegations is that there was no way to control what a user was doing with that delegation. Developers want people to be able to use their DApps for free so they can maximize growth and monetize them in some other way, such as a subscription or through in-game item sales. They don’t want people taking their delegation to trade in decentralized finance (DeFi) or using it to play some great game from another developer 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 spend money to make this possible. The latter is difficult because the traditional way to solve this problem is to design the smart contract in such a way that the developer can choose to pay the fee instead of the user. But remember, we’ve already solved this problem because nobody pays a fee for anything, just an alternative cost. As long as the developer has tokens, they can choose to pay the “mana” that someone needs to use their application.

Free for developers?

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

The stakeholder does not lose money because of this, but they can still use their 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 token holdings 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 put their mana to better use.

Not only have we now figured out how to make a DApp free to use for the end user, as an added bonus we’ve figured out how to make the blockchain free to use for developers while giving major stakeholders a way to invest in growth and value creation without sacrificing any of their symbolic assets.


But this is all in theory right? Not really. What I have described here is exactly how we build Koinos. In fact, all 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 carries risks and readers should do their own research when making a decision.

The views, thoughts and opinions expressed herein are those of the author only and do not necessarily reflect or represent the views and opinions of Coin-Crypto.

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

Leave a Comment