Exploring the concept of inflation for ERC-20 tokens and how to manage it for tokens deployed on OpenDApps Cloud.
Table of contents
- Types of inflationary tokens and how they work
- Examples of inflationary tokens
- Inflation on OpenDApps Cloud
5.2 Why is it unique?
5.3 The Math
- Deployment configuration on OpenDApps Cloud
- Inflation rewards management on OpenDApps Cloud
7.1 Automatic burn
7.2 Staking rewards
7.3 Distribution to an address
In this blog post we will take a look at the concept of inflation for ERC-20 tokens, how inflation found a use-case for cryptocurrencies, and what are the real-world examples of successful projects with inflationary tokens.
We will also show you how to deploy inflationary tokens using OpenDApps Cloud Testnet dApp with an explanation of the available configurations for deployment as well as the management of inflation rewards.
Before we start make sure you have MetaMask set up and you have successfully connected and logged into OpenDApps Cloud. A quick guide on how to do that on testnets can be read here:
OpenDApps Cloud — Testnet Connection and Testing Guide
A how-to guide on preparation for testing services from OpenDApps Cloud on testnets
Before taking a grasp into inflationary tokens you have to be familiar with the concept of ERC-20 tokens and OpenDApps Cloud Token-as-a-Service solution. An overview of those can be found in this blog post:
Token-as-a-Service on OpenDApps Cloud — An Overview
Exploring the concept of ERC-20 tokens and how they are used to create the Token-as-a-Service solution on OpenDApps…
Let’s get started!
Types of inflationary tokens and how they work
Similar to most real-world currencies, inflation for cryptocurrencies is by definition the creation of new tokens, which increases the total supply of the cryptocurrency. Most of the time there is a big difference in the means of how new tokens are created for cryptocurrencies compared to real-world currencies.
The inflation for real-world currencies comes mostly from central banks' issuance of new banknotes and banks loaning more than their actual reserves. In the cryptocurrency world, inflation can be created in many different ways, some of which being:
- Inflation as block rewards for native tokens — new tokens are created every block and are paid out to the miner/validator that mines the block. This creates an incentive for miners/validators to participate in consensus further securing and distributing the blockchain. Block rewards are a fundamental part of most blockchains and most of the time they come from inflation.
- Periodically mint a fixed amount of tokens as a reward for owners — a token is supplied with a mint function that can be manually called once a fixed amount of time has passed and a fixed amount of tokens are created to reward the owners. This is a common practice in DeFi protocols that supplies the creators with fresh capital for running and working on that protocol.
- Algorithmically increase the supply with rewards distribution — the supply of the token is increased through an algorithm with increasing or decreasing rewards. Each time the new tokens are minted they are distributed as rewards to various receipts in a configurable manner. This can be seen in newer blockchains where block rewards are distributed to various needs and not only to miners/validators.
Another big difference between inflationary tokens is the existence of maximum supply. Some tokens have a max supply and mining of new tokens stops after that number is reached while others have an endless process of new tokens issuance while offering other means to limit the increase of supply without a theoretical maximum.
Examples of inflationary tokens
Here we will take a look at some existing cryptocurrencies and tokens using inflation as a part of supply distribution.
- Bitcoin — the first and the biggest blockchain that currently exists. New amounts of the native token BTC are issued every block and rewarded to the miner. BTC block rewards are minted on a timeline decreasing every few years at a predefined block height — an event called halving. The process continues until the max supply of 21,000,000 BTC is reached and block rewards are removed. This is one of the most well-known algorithms of inflation in the cryptocurrency world.
- Ethereum — the original EVM blockchain has a different approach to inflation. ETH has no maximum supply and new tokens are issued every block without a predefined algorithm for decreasing block rewards size. The size is rather decided by Ethereum Improvement Proposals. Ethereum approach gives more flexibility and promises better longevity than having a fixed supply while still managing to reduce total supply with the burning fees.
- DeFiChain — a fork of Bitcoin that follows the same decreasing block rewards algorithm with max supply but adds additional features to inflation like configurable rewards distribution through DFIP voting. This is a powerful addition to the algorithm while still maintaining the original properties of the Bitcoin solution.
- Uniswap — a DeFi protocol that launched its token UNI on Ethereum. The UNI token has a different approach to inflation and it has defined a 2% inflation per year after the first 4 years. The rewards are distributed to the community to ensure continued participation.
Inflation on OpenDApps Cloud
Inflationary tokens are one of the unique selling points of OpenDApps Cloud Token-as-a-Service solution. Inflation is not easy to program in ERC-20 tokens and that is the reason why it is quite rare while being pretty common for native tokens.
If an ERC-20 token is inflationary, most of the time it is through some time-based manual minting, and no standard or available service is providing an easy and reliable algorithm for ERC-20 inflationary tokens.
This is where the OpenDApps Cloud Token-as-a-Service solution shines. It offers very flexible and easy-to-deploy algorithmic-based inflationary tokens. The tokens have all the other benefits of the OpenDApps Cloud ERC-20 template while offering the additional configuration of inflationary cycle rewards distribution.
Why is it unique?
OpenDApps Cloud Token-as-a-Service solution takes the good from all available inflation solutions and combines them into a single inflation algorithm.
Inflationary tokens deployed on OpenDApps Cloud have a max supply and start with a total supply between 50% and 90%. The rest of the supply is minted automatically for every predefined amount of underlying blockchain blocks with a decreasing cycle rewards size similar to Bitcoin. The cycle rewards do not get reduced in half every cycle but rather follow a formula ensuring a decrease to 0 when approaching max supply.
Cycle rewards distribution from inflation is fully customizable and configurable at any time during the lifetime of the token. Rewards distribution is inspired by the DeFiChain approach to inflation and it can be configured to provide rewards to owners, to staking contracts, and much more through wallet distribution.
This paragraph is here to show the formulas behind the decreasing cycle rewards and total supply increase through inflation. It might be a little geeky so read on with caution.
Let’s get right into it.
First, we will define the initial supply that our token will start with as well as the max supply. Those two are input parameters for our inflationary token and from them, we can easily calculate the supply of inflationary rewards:
We can have to define the total number of rewards cycles we want our rewards supply to be distributed in:
From here we want to define the algorithmic formula for the size of rewards for a particular cycle. We are using a decreasing rewards algorithm where the size of the rewards decreases with a fixed amount each cycle until reaching 0 on cycle C(X) + 1:
We can calculate the limit of UR(X, Y) to check if rewards will actually reach 0 if Y -> C(X) + 1:
After we defined the formula for the algorithmic decrease of cycle rewards we need to define the formula for the calculation of total unlocked rewards for a particular cycle as the sum of all unlocked rewards for the past cycles:
From here it is pretty easy to define what the total supply of rewards R(X) will be if we use the total unlocked rewards TUR(X, Y) with Y equal to the last cycle C(X):
With R(X) already known, we can use it to finally calculate the size of the rewards in the first cycle Y = 1, UR(X, 1):
Our inflationary token template takes the parameters for M(X) and I(X), calculates R(X) and UR(X, 1), and after that uses TUR(X, Y) and UR(X, Y) to mint additional supply according to decreasing rewards algorithm.
If you got this far, kudos to you!
Let’s move on to some more interesting stuff.
Deployment configuration on OpenDApps Cloud
Inflation can be enabled for tokens in OpenDApps Cloud in the phase of deployment. Before we dive into the available configuration for inflation make sure you know how tokens are deployed in our dApp from our guide:
Guide: How to deploy ERC-20 Tokens using OpenDApps Cloud
A how-to tutorial for deployment and basic management of ERC-20 tokens using OpenDApps Cloud with an overview of the…
Now that we know how to deploy tokens let’s look closer into the available configuration for inflation. After we enabled it we can see three main sliders:
The Initial Supply slider is important because this is the number that the token will start with as a total supply after deployment. It is defined as a % from Max Supply defined using the slider in tokenomics:
The combination of Max Supply and Initial Supply is used to calculate cycle rewards according to the decreasing rewards algorithm described in the math section above.
The next slide Rewards Minting Speed allows for the configuration of cycle speed. Every cycle new supply is minted according to the decreasing cycle rewards algorithm.
The cycle speed is defined in blocks but it is converted into approximate time according to the blockchain block speed.
The slide Rewards Per Mint allows for the configuration of the AVERAGE rewards per mint through the lifetime of the token according to the decreasing cycle rewards algorithm.
It is essentially UR(X, 1) / 2 (sorry for the math, see above), and in practice, it controls the number of cycles that will be executed for the distribution of the supply of the cycle rewards.
With these options, we can fully control the inflation parameters and once we are happy with the result of size and timeframe we can deploy our token. The configuration for the rewards and decreasing cycle rewards algorithm are permanent for the token and cannot be changed after deployment!
After successful deployment, the information for current supply, average rewards per cycle, and max supply reach are available at the tokenomics page in OpenDApps Cloud dApp:
Inflation rewards management on OpenDApps Cloud
After deployment, inflation rewards distribution can be fully customized and configured at any point in time in the lifetime of the token. To manage the configuration we need to go to the tokenomics editor page which is accessible through the dashboard:
Once we are on the tokenomics editor page we can switch to the inflation tab where we can manage the rewards distribution:
As we can see there are some predefined values in the inflation rewards tab.
There is a 1% tax for all inflationary tokens deployed on OpenDApps Cloud that is paid to the platform through the rewards and it cannot be altered or removed!
Let’s look into the different possibilities.
Any unused rewards are automatically burned and from the initial state of inflation configuration, 99% of the rewards are burned. We need to add distribution to change that and we can monitor the burn size from the Burned Rewards Slider:
If we have staking deployed we can use the Staking Rewards slider to feed the staking contract with fresh tokens every cycle to distribute to the holders part of the staking pool:
This is a great way to generate staking rewards and provide holders with an incentive to hold and stake their tokens for the long term while the project is still in development.
Distribution to an address
Similar to tokenomics, for any other needs we can use the wallet distribution configuration. It allows us to configure a % from inflation rewards to be contributed to any wallet or contract address we provide. This option is the backbone of all custom utilities like marketing or developer payments, charity, custom contract interactions, and much more.
To add an address to rewards distribution we can use that “Add Address To Distribution” input, part of the inflation rewards management form:
For this example, we will input a wallet from the theoretical developer. Once we input the wallet, a slider will pop up allowing us to configure the requested % from rewards we want to distribute to the wallet:
After we execute the save transaction we will have the option to edit the distribution at any time as well as to remove any we do not need anymore:
This wraps it up with our overview and guide to inflationary tokens in OpenDApps Cloud.
In-depth guides on available services and other SaaS-related information resources are available in this blog and any related content will be linked here:
- OpenDApps Cloud — Testnet Connection and Testing Guide
- Token-as-a-Service on OpenDApps Cloud — An Overview
- Guide: How to deploy ERC-20 Tokens using OpenDApps Cloud
- Tokenomics on OpenDApps Cloud — An Overview & Guide
- Baseline Price Insurance Service for Tokens on OpenDApps Cloud — An Overview
- Decentralized Companies in OpenDApps Cloud — An Overview