Skip to content

Latest commit

 

History

History
111 lines (61 loc) · 4.55 KB

File metadata and controls

111 lines (61 loc) · 4.55 KB

Bonding Curve Survey

Extended Notes and other implementations

Purpose

To present a summary state of affairs of bonding curves and select the most interesting existing model(s) and implementation(s) to move forward with the BC-DAO project.

We also want to take into consideration that:

  • Bonding curve functionality and implementations will evolve likely rapidly
  • We want to handle interfacing with a number of curve implementations.
  • We want to evaluate what will be favored by dxDAO, as we are hoping they will use the CF functionality developed in GECO.

Bonding Curves: Feature Overview

An overview of the features one would conceivably want a bonding curve to support. This will likely evolve as new ideas emerge.

Core Curve Features

  • Curve Function: Linear, Polynomial, Logarithmic, etc. See thorough discussion of trade-offs here
  • ReserveRatio: % relationship between buy and sell prices
  • Spread/Split (separate buy and sell curves): Difference between buy and sell curve or amount that goes to beneficiary

Financial Features

  • Taxes - A % fee for selling back to the market can be added to encourage secondary market trading.
  • Hatching - An initial buying phase where selling is disabled up until a certain amount of tokens are bought. This helps ensure a certain amount of return for early investors.
  • Vesting - Vesting periods can be added to minted tokens, which helps fight against pumping and dumping.
  • Governance - Voting power can be given to token holders, which can help further insulate their potentially risky investment. (potentially through locking down the token)
  • Dividends - Token holders can also be given claims on cash flow of the DAO. This claim can be made on revenues the DAO realizes both in the form of direct customer payments, or via shareholder payouts the DAO chooses to distribute.
  • Donations - users are allowed to donate the reserve currency without getting tokens. (This can be withdrawn by the owner?)
  • Multicurrency Support - Allow multiple tokens to be added to reserve.

Security Features

  • Front-running Guards (Order batching, Expected price, Max gas price)

Relevant Implementations

C-Org / Fairmint (active development)

Revenue injected into curve to raise token price

  • buy(), sell(), burn(), pay(), close()

  • "split" approach (as opposed to "spread")

+ implicit dividend mechanism – revenue()

- rapidly changing (recently started)

- only supports linear curve

- no front-running guards

Aragon Fundraising (active development)

Funds withdrawn by organization through rate limited tap, token is used for governance of funds

  • buy(), sell(), transfer()

  • More info [1][2]

+ batched bonding front-running guard

+ multi-collateral

- No dividend mechanism; Tokens are used for governance

- Closely coupled with AragonOS

Batched Bonding (active development)

Batch buy and sell orders to prevent front-running (combine all the sells into one order, then split it among the participants of the sell. Then combine all of the buy orders into one, then split it among the buyers.)

  • More info [1]

Milky Way (archived)

Composable Bonding Curve Library

+ Composable

- No dividend mechanism

Band Protocol (production)

+ Composable, dynamic curves

- No dividend mechanism

Common Elements

BancorPower.sol

BancorFormula.sol

Bonding Curve: Equation Considerations

  • Actual product adoption for successful projects will likely resemble an S-curve (sigmoid).

  • "when we are designing curves that span several magnitudes, price tends to stay very low for 80% of the curve, then inevitably accelerates to unmanageable and unreasonable levels very quickly."

  • A logarithmic curve might also be appropriate.