Fair Money for All: Basic Income on the Blockchain


For most people money is something that just exists. In order to receive money, someone needs to be willing to spend this money on you. This conception of money might lead to the false assumption that money is “neutral” and does not have any properties that are worth discussing. The process of issuing new money is highly obfuscated and hidden in the balance sheets of central and private banks. In contrast, for cryptocurrencies this process has become crystal clear. Mining, presales and proof of burn are concepts that have been tried out.

However, to make a forecast which cryptocurrency will play the dominant role in the future is hard. There are many possible stable equilibria where one cryptocurrency is widely accepted and just for that reason others accept it as well. From a game theoretic perspective, currencies are coordination games. If everyone around you accepts a specific currency you will most likely do so as well. If no one does, you wouldn’t either.

In this ongoing cryptocurrency game, Bitcoin is currently the Schelling pointfor the simple reason that it was the first currency of this kind and currently therefore the biggest. Other than that, there is no good reason to join Bitcoin over an unlimited number of copies. In fact, currently a few million people are using Bitcoin. If a decent part of the world’s economy would start using Bitcoin as a currency, this would mean an incredible shift of wealth towards the early adopters. This is highly unlikely because it requires adoption of those who are not favored in any way by this wealth shift. This would only happen with a complete lack of alternatives: only if traditional fiat money widely were in acute danger of collapse and no other, more favorable crypto currencies were in place.

Putting aside for the moment that regulatory instances make this scenario highly unlikely, let’s imagine a few big companies like Amazon, Walmart and Apple would start a cryptocurrency together with similar rules to Bitcoin, like fixed supply and decentralized processing. The initial distribution, however, would be a mix of controlling most of the money themselves and distributing it to customers. This currency would immediately make Bitcoin irrelevant.

So the meta trend is that every entity would favor the use of a currency controlled by itself, or at least a currency that favors the entity during the initial distribution. If we continue this trend to the end, we could end up in a situation where every single person is issuing their own currency. A naïve approach where every person sets their own rules, would most likely fail in the meta game of competing coordination games due to higher complexity.

However, what will make coordination significantly easier is the ability of smart contracts to self restrict. Entities can control their own currency but they can restrict themselves in the set of allowed actions that will make it easier for others to “trust” in such a currency.

One concrete proposal for such a currency system is called “Circles”. The idea is that every single person can issue their own currency, however, this happens exclusively under globally fixed rules. These rules allow individuals to consciously issue new money in a distribution regime aiming for a stable ratio between newly issued coins and existing coins. In simpler terms, in the first year people could issue 1000 units per week and this number is increased by 5% year after year.

We argue that the concept of a UBI is not just compatible but the foundation of a fair money.

Now, all people have a comparable currency. The second important simplification that will make it possible to coordinate on such a system, is that it should be indeed used as a currency, not as equity in this person — the fact that one hour of work for person A has a higher value, shall not be represented by a higher value of their personal currency, instead A would simply charge more units an hour.

This allows another big simplification that could turn this currency system into a world currency (system). People who know each other can agree to set a fixed exchange rate between their currencies of 1:1. They would mutually agree to each other’s existence. They form a “Circle” of two persons and within this “Circle” both currencies can be seen as equal.

This concept allows transitive exchange transactions along “Circles” and thereby create a spending network that effectively functions as a big “Circle”. If a set of people is at least somewhat densely connected to each other, all their currencies have the same value and can be seen as one. For instance, if A has an 1:1 relationship with B and B with C, A can still pay C with C-coins by exchanging A-coins to B-coins and B-coins to C-coins.

Transitive transaction of 100 units from A to C

The result would be a global cryptocurrency where every participant has a good reason to use it (because they get free tokens) but with a fully decentralized mechanism of joining this currency.

This concept borrows from the idea of a universal basic income to answer the question of a fair, initial currency distribution. Of course this concept is an experiment or a long shot. However, Ethereum makes it as easy as never before to start such a social experiment. You can find a more technical description of the Circles concept here and a forum here.

This article was first published on the ConsenSys medium blog.


How would “Circles” be different from our current money system?

You should read the about Circles article first.

1. The debt doesn’t need to be payed back
In our current monetary system new money is created when countries, cooperations, or individuals take a loan. One way to see Circles is that as soon as you spend some of your coins with someone else you have debt to this person but you are not forced to pay it back. This seems completely different from our current system and on an individual level it certainly is. However, a quick glance at the level of US national debt shows that this debt will also never be paid back. As long as the monetary supply doesn’t lose the connection to the GDP growth the money value can be relatively stable nevertheless.

2. Credit is not approved based on rating of banks but fixed per person
Currently, private banks, rating agencies and central banks can decide (based on some rules) whom to credit money to. Their decisions ought to guarantee the value of money. In principal they should also be liable for the debt but the term “too big to fail” shows that this is questionable at least. Furthermore this system favors those with the ability to access cheap money hugely. With Circles, no credit score is needed. Every human is granted the same basic credit to spend. This becomes realized as soon as other people connect to the human and accept their debt.

3. No (forced) debt union – more resilience
With our current fiat money (€, $, ..) we basically have a forced debt union. Everyone who holds € is to some degree liable if too many € are created through the process of new debt. Having the same currency in a  bigger territory has obviously a lot of advantages, but there are no firewalls implemented in case the system breaks down. With Circles, contingency measures are possible. People, cooperations and event countries could join into huge groups. However, the underlying smaller groups all the way down to personal level would continue to exist. If a big group were to fail, the system would only fall back to the underlying groups.

4. A steady growth rate of money – more stable economy
Keynesian economics suggest to influence the economy through the monetary supply. Mostly this means a state should increase debt (-> increase monetary supply) during a depression. This “control mechanism” gets lost with a monetary system like Circles. However – the theory of business cycles can be questioned in general with a basic income. As long as people constantly receive a basic income and thus have money to spend, the downward spiral of (people spend less -> companies shut down -> jobs are lost -> people spend less) can never happen. 

Introducing Circles – Universal Basic Income

“Circles” will be a currency created from basic incomes only. In the system outlined in the following, new money is constantly distributed to every account participating in the system. The money in every individual account are uniquely identifiable and only gain in value if the account connects to other accounts and joins groups. This incentivizes every user to limit themselves to one account.

  1. Everyone can create a new account
  2. An account will constantly generate an income (1000 units per week)
  3. The rate at which the income is generated will increase by g=5% per year
  4. A new account starts with the income that will be generated in the next 3 months
  5. One month of income is for the account owner – the other two are reserved for people who trust this account, it is called the trustee reward.
  6. Accounts can trust one  another. This will allow both accounts holders to exchange their coins 1:1.
  7. Trust can be revoked by both parties.
  8. If an account trusts another account it is credited with half of the remaining trustee reward.
  9. Arbitrary groups can be created.
  10. Groups can verify accounts as members.
  11. Groups can exclude accounts as members.
  12. All members can convert their private money into group money (1:1 exchange rate). This exchange is irreversible.
Design rationale
The main purpose of this project is to establish a world wide basic income.
Requirements are:
a. Decentralization

A world wide basic income is something so powerful that no single entity in the world should have control over it in order to preclude manipulation. Particularly, there should be no central authority that decides which person can get a basic income and which person cannot.

b. Smooth growth

The solution should support a smooth growth. If the only two equilibria are “no one participates” or “all people participate” then it is nearly impossible to change to the “all” equilibrium, especially if no central entity is involved. In the approach presented here, groups can grow locally, even starting at a single family level. However, there are no constraints on subsystem growth. All subsystems can  merge into a global system at any time.

c. Resilience

The system can support something like a world currency. However – if this currency fails at some point, it is not the whole system that would collapse. Instead, the system would fall back on the group level underneath, for instance a country group. Even if the group currencies should fail at one point (because they accepted too many members that just consume their income and don’t provide any goods or services for their income) it can still fall back on the personal level where the value of a currency is closely related to the personal relationship with the other person.

d. Incentives for organic growth

The trust reward should help to give a strong incentive to bring new people to the system. Adding new accounts to your circle is to some degree a risk. To balance the incentives and enable growth we introduced the trust reward. It creates common incentives for both the newcomer and the people already established in the network: Through the acknowledgment of the trust relationship, the newcomer gains network credibility and the first people to place their trust in the newcomer benefit financially. The risk inherent to trusting a newcomer are only out-weight by the benefits if the newcomer is be-known to the people who place their trust in them. If the newcomer does not turn into a viable member of the network the trust placed in the newcomer was misguided and the trust results in a financial loss.

e. Universality

Some people argue that Bitcoin was a one time shot. A currency has to be scarce to some degree to function as such. A single digital currency can have features that ensures the scarcity of this currency – however, if other digital currencies become successful, scarcity as a characteristic of digital currencies overall becomes questionable. This is especially true for a basic income. We strongly believe that a basic income currency can only be successful if it is the only one that is commonly used. This is why we keep this proposal as general as possible. The only free parameter crucial to the system is the growth rate g and needs to be discussed carefully. The trust reward is not strictly necessary, however, it does not affect the long term equilibria of this approach.

Detailed discussion.

Transitive Transactions

If A and B trust each other, and B and C trust each other, then A and C can pay each other as long as B is liquid. If A is a customer and C is a merchant, A could send money to C. The network will automatically send a-coins from A to B and b-coins in exchange for the a-coins from B to C.

The growth rate g = 5%.
The growth rate g determines the ratio between the total coin supply and the income per month. This number is subject to discussion. It should be chosen to maximize the value of the income.

Note that a high growth rate (inflation rate) destroys the capability of the currency as a store of value. Consequently, the potential dollar market cap is a function of the growth rate: market cap = f(g). (The market cap of the currency is a function of g that most likely will decrease sharply for bigger g like 10% – 15%). g should be chosen to maximize g*f(g).

The growth rate can be seen as a capital tax that finances the basic income. People with exactly the average wealth would pay the same amount of money in fees as they would get from their UBI.


Groups are necessary to bring more stability into the system. Holding coins of a specific person always carries a certain risk. In some sense, the value of theses coins is always backed by the person. If the person dies or more broadly speaking the trust in this person sinks, these coins may become worthless. However, as long as a person is member of a group, the money can be converted irreversibly into group money. It is in the responsibility of the groups themselves to keep them tight on the one hand to not dilute the value, but on the other hand have a positive network effect. This makes it interesting for merchants to accept such group money.

Q: Can I create 100 fake accounts that all trust each other and abuse the system?

A: You can create them but this will not create value. As long as nobody else trusts these accounts they can only exchange money with each other, rendering all the money worthless.

Q: Why should I add someone else to my trust network?

A. Your trust network is what gives your personal currency value beyond what you are willing to provide for this currency. Lets say 100 people are in your trust network, that means that 100 people are accepting your currency. Even for those who do not accept your currency directly, may accept it indirectly since they know they can use it to get goods or services from 100 people. Accepting money is all about network effects.

However, on the other hand accepting a new person bears some risk. If this person turns out to be a fake account you will end up having his worthless money and the scammer can spend your money. To make the incentive higher to be among the first to accept an new account nevertheless, the trustee reward was introduced. However, accepting a completely new account will and should be backed by a personal relationship of the two participants that ensures that the new person participates honestly in the system. If they don’t the only person who loses money is the person who wrongly trusted them.

Q: What is the money of an account worth?
A: In theory it should be max(value(group1), value(group2), value(group3), … , value(connection1), value(connection2), …). Note that only connections to liquid people count. As long as the memberships in the groups and the connections are stable (or expected to be stable) there should be no incentive to convert money into group money.
This concludes in the assumption that it is not necessary to convert your money into group money or to exchange money with one of your trusted connections. Just having the ability to do so makes your money at least as worthy. This could stabilize the system and allow user A to connect to user B despite the fact that user B’s coins are worth less. This connection could raise the value of user B’s coins without changing the value of A’s coins. However, this stops if B tries to abuse this connection, but in this case, A can cancel the trust relationship.

From time to time users could lose their connections because they create panic. This is the unlikelier the better the user is connected. This strengthens the incentive to concentrate all your social connections/ reputation into one account.

Q: How much of the group money is yours?
A: The amount that you’ve converted. Only difference is that now it’s no longer tied to you as an individual. This means that if you do something bad, the group cannot do anything to revoke your group money. However, they can kick you out of the group.

With groups exchanges are mono directional with individuals. Only individual => group, NOT group => individual. However, exchanges are is bi-directional between groups. So Berlin <=> SF is OK.


The easiest way to implement Circles would be as contracts on Ethereum. Latest technical discussion here. We started a new forum all about basic income and circles here. Your are more than welcome to join!

The contracts would look similar to this:

//data structure

Dictionary -> tuple
accounts[owner] =  (time_created, money_spent, trustee_reward)
Dictionary -> Set
groups[owner] =  [member1, member2 ,..]
Dictionary -> Set
trustees[account] = [account1, account2, …] // each relationship need only be saved once
Dictionary – > Dictionary -> int
balance[owner][foreign_account] = amount
years = 0
//pseudo code
    trustee_reward = (1000*12) * 1.02 ** years

    accounts[message.sender] = (block.time – 1month, 0, trustee_reward)

add_account(account1, account2):
    //somehow check that both accounts signed the message
    if int(account1) > int(acount2):
    //credit and update the trustee reward
    balance[account1][account2] = accounts[account2][3] / 2
    balance[account2][account1] = accounts[account1][3] / 2
    accounts[account2][3] /= 2

    accounts[account1][3] /= 2

    if int(message.sender) > account:
send_money(amount, currency, receiver):
    if balance[message.sender][currency] >= amount:
        balance[message.sender][currency] -= amount
        balance[receiver][currency] += amount
send_new_income(receiver, amount):
        //todo factor in 2% growth rate
        income_generated = (block.time – accounts[message.sender][0])/ weeks * 1000
        if income_generated – money_spent > amount:
            money_spent += amount
            balance[receiver][currency] += amount
exchange_money(account1, account2, amount)
    if message.sender == account1 or message.sender == account2:
        if account2 in trustees[account1]:
            if balance[account1][account1] >= amount:
                if balance[account2][account2] >= amount:
                    balance[account1][account1] -= amount
                    balance[account2][account2] -= amount
                    balance[account1][account2] += amount
                    balance[account2][account1] += amount
    groups[message.sender] = Set()

convert_into_group_money(group, amount)
    if message.sender in groups[group]:
        if amounts[message.sender][message.sender] >= amount:
           amounts[message.sender][message.sender] -= amount
           amounts[message.sender][group] += amount