Dynamic Token Bonding Curves

David Truong
Token Economy
Published in
9 min readSep 5, 2018

--

Bonding curves are essentially a mechanism that allows the continual liquidity of a token, with the price changing depending on how much ‘activity’ is conducted. Most use cases are for buying and selling into the curve, e.g. the more people that buy tokens, the higher the price goes up, the less people that buy tokens, the lower the price goes. For more explanations about bonding curves, see these very well written articles: 1, 2, 3, 4, 5.

Traditional bonding curve graphs might look like this (simplistically, currentPrice = tokenSupply²):

From Slava Balasanov post on creating continous token models

A real (crypto) world example of this is the Bancor protocol. Bonding curves have also been applied in other areas such as curation markets, alternatives to traditional ICOs, and recently NFTs(!).

With these models the same bonding curve is used for every participant, based on the funds held in the bonding contract (one size fits all model). Assuming the price keeps moving up the bonding curve then:

  • If you got in early, you can hold a large portion of the supply (at a cheap price) indefinitely, if you don’t sell.
  • If you got in late, then you’ll never reach the equivalent portion of supply held by the early adopters (unless you have really deep pockets).

This is similar to bitcoin and ethereum, where early adopters can (and probably do) hold a large portion of the supply. Whether this is good or bad is a discussion for another time.

Dynamic Token Bonding Curves for Individuals

What if we had bonding curves that used the shared funds in a bonding contract, but the curve were based on the individual token holder’s ‘activity’ (i.e. their portion of the total token supply)?

The current price of the token is a function of the individual’s portion of the total supply.

Lets assume Person A got in early and bought a large amount of tokens in the beginning to hodl. Person B bought a small amount of tokens early and consistently buys every week. Person C buys some early on and periodically buys every few weeks. Assuming no one sells any tokens, the total funds in the bonding contract and the token supply steadily increases over time.

For each person, their bonding curve price would look quite different:

Person A buys a lot of tokens in the beginning, which represents a large portion of the supply initially. However over time those tokens they purchased become a smaller portion of the total supply (as more tokens are minted for other people). As a result, the price of the token for them in the beginning is very high, but becomes cheaper as their portion of the total supply becomes lower.
Person B buys tokens consistently every week. Their portion of the supply slowly increases as they continue to buy more tokens. At the same time, others are also buying tokens so the total token supply increases. In this case, Person B is buying more tokens each week, which results in each token purchase becoming more expensive as their portion of the total supply increases over time. I.e. they are buying more tokens then everyone else.
Person C buys varying amounts of tokens periodically and their portion of the supply fluctuates. The price of the token for them also fluctuates, depending on their portion of the total supply that they hold.

What is the effect of these dynamic bonding curves?

  • If you hold a large portion of the supply, then buying more tokens is very expensive but you will receive a much higher price if you sell your tokens.
  • If you hold a small portion of the supply, then buying more tokens is very cheap, but selling your tokens will result in a very low price.

This incentivises new adopters to hold tokens, penalises inactive adopters (the value of the tokens reduce over time), and helps ensure the supply of tokens is widely distributed (i.e. if you hold a large amount of the supply, then you should sell your tokens as that is the best current price).

The problem in this situation is an easy Sybil attack of spreading your tokens among many different addresses, creating many ‘low portion of supply’ bonding curves (i.e. you can buy it cheap), when in fact you hold a large portion of the supply (i.e. it should cost you more). Therefore these dynamic bonding curves only work in the case where the person is strongly incentivised to keep their portion of the supply public and honest, which we’ll discuss later in this article.

Applying Dynamic Token Bonding Curves

With the above incentives and dis-incentives in mind, in what use case would a dynamic bonding curve make sense?

The first that comes to mind (and the one I’m doing further research on) is in community tokens. Why community tokens? Let’s break down what a community means according to Google:

Community: a group of people living in the same place or having a particular characteristic in common.

In other words, a group coordinated around a common purpose, whether it is to ensure your neighbourhood is safe, or to ensure a commercial outcome for stakeholders. When building and maintaining communities, some very difficult problems arise:

  1. How do you incentivise the creation and participation of new members when a community does not yet exist?
  2. How do you prevent the ‘free-rider’ problem, where someone joins the community to extract value but never adds value?

There are a few other problems, but we’ll discuss only the above 2 in this article.

  1. Incentivising new members

If a community leader could mint and award tokens to potential community members, that may incentivise them to join and contribute. Depending on how much the community member contributes, they may earn a higher portion of the supply, meaning their bonding curve will resemble Person B’s curve (i.e. they could sell the tokens at a higher price).

Therefore their contribution to the community would be linked to their portion of the token supply, at that point in time. If you contributed a lot to the growth of the community today, then you will have a large portion of the token supply. If only contributed a little bit, then you will only have a little bit of the token supply. If you contributed a lot in the beginning, but became inactive over time, then the value of your tokens would reduce over time as the community continues to grow without you.

2. Dis-incentivising ‘free-riders’

With community leaders minting and awarding tokens to active members (under some agreed community rules/governance), we are essentially creating an ‘inflation penalty’ for non-contributing members. If someone joins the community just to extract value, they will not be awarded many tokens, therefore their portion of the supply will always remain low. Therefore their tokens will always have minimal value and will only reduce in value over time as they continue to be non-contributors.

Eventually we could block them from the community entirely by applying certain entry thresholds of token portions. If you have enough tokens (and continue to contribute to the community), then you can remain part of it and extract value. If you fall below the threshold, then you have not contributed enough and will no longer be part of the community.

In both of the above, ‘contributing’ to the community could be as small as regularly attending events and meet ups, to larger contributions such as volunteering at events or inviting new members. Higher impact contributions would receive larger token awards, depending on the community leaders (or DAO?) and their community guidelines for minting and awarding.

Preventing ‘network attacks’

Preventing whales buying the supply

To prevent whales from buying up large portions of the supply (if they are not already deterred by the increasing price as they buy more) we could only allow selling tokens against the curve. In other words, there would be no buying function, only a selling function against the bonding curve.

If the only way to earn tokens were to be awarded them by community leaders, then the portion of the supply that you hold would be a great proxy for your current contribution to the success of the community.

In addition, if you held a large portion of the supply and decided to sell your tokens to a whale outside of the bonding curve on a secondary market, then you probably deserve it as you’ve contributed greatly to the community (so much so that a whale is willing to pay for access to the community!). The whale would also need to start contributing to the community quickly or the tokens they purchased would quickly reduce in value as more are minted.

Preventing Sybil attacks

Disallowing buying against the dynamic bonding curve also has the added benefit of preventing Sybil attacks, as it does not make sense to spread your tokens across many addresses (you would have a small portion of the supply in each address, meaning the sell price would be very low). It would be in your interest to consolidate all your tokens into one address to be able to sell for a better price, which more accurately reflects your portion of the total supply. Therefore you are strongly incentivised to keep your portion of the supply public and honest.

Funding the dynamic bonding curve

In the case of our community token, if community leaders are minting tokens for free and there is no way to buy tokens against the bonding curve (i.e. putting funds into the curve to receive tokens), then were do the funds underpinning the dynamic bonding curve come from?

Communities could fund the tokens however they wanted, based on the stage or maturity of their community. For a community just starting out, there might be no funds backing the bonding curves, so tokens would not be worth anything initially, which would attract the core believers of what that community is trying to achieve (these are the people you want in the beginning stages). As a community matures, it could attract sponsorships, earn revenues from ticket sales, or accept donations. All of these revenue streams, or a portion of that revenue, could go directly into funding the dynamic bonding curve (i.e. the contract would be payable and accept ETH, but not mint tokens on funding events).

Therefore the value of the funds underpinning the dynamic bonding curves grows as the community grows (in both size and revenues), increasing the value of each community member’s token holdings.

As the ‘backing’ funds in the dynamic bonding curve increases (purple), the economic value of every person’s tokens also increases along their individual bonding curve. At close to t=0, there are no backing funds so the tokens have no economic value. At t=100, there are funds backing the dynamic bonding curve, so all tokens will have economic value, but with different prices depending on the person’s curve.

Combining it all together: if a person consistently contributes to a community, then their portion of the token supply will increase, while the value underpinning those tokens also increase (similar to Person B’s curve).

In the case of Person A, they earned a lot of tokens initially helping to bootstrap the community’s growth when the token was worth nothing. However as they stopped contributing, their portion of the total supply reduced over time. In addition, the community grows and more funds are used for backing the dynamic bonding curve, resulting in their tokens gaining economic value.

To make this more clearer:

— if initially Person A earned 1000 tokens and the total token supply at the time was 1500, their portion of the total supply was 66.7% at that time. The funds backing the curve was $0, therefore their 1000 tokens = $0.

— after a period of time the community grows and funds the curve with $10,000. However as the community has grown, so has the total supply of tokens, which is now 10,000 tokens. Therefore Person A’s portion of the supply is now 10% of the supply, but their 1000 tokens will have some $USD value based on their bonding curve.

This fairly rewards the early contributors for the work they did in the beginning, while making it possible for new comers to be fairly rewarded and recognised based on their contributions to the community today.

I would love to hear your thoughts, opinions, and comments. I believe this is a pretty novel concept but would love to hear what others think of it. Please comment below or tweet at me @daveytea

Edits:

1. Wilson Lau brings up a good point that similar objectives could be achieved with a static bonding curve (currentPrice = 1/totalSupply). In my opinion, a benefit of dynamic bonding curves is the cumulative effect of earning more tokens — the more you have then the more each extra token is worth, and the more invested you are into the success of the community. This should incentivise you to either earn more tokens, or to liquidate and reduce your portion of the supply (giving others the opportunity to contribute to the community).

2. Fixed mistake in token supply percentage – thanks Anthony T and Co-Pierre G for catching it!

3. I (and Adriana Truong) just published a (non-technical) continuation of this article that goes into detail about the community specific use case, ‘Incentivising participation and growth in communities’.

--

--