Giter Club home page Giter Club logo

bonds's Introduction

๐Ÿšจ This repo is Deprecated. It is kept for historical context. Refer to ixoworld/bonds/ for the latest version ๐Ÿšจ

Cosmic Bonding

Cosmic Bonding is a custom Cosmos SDK module that provides universal token bonding curve functions to mint, burn or swap any token in a Cosmos blockchain.

In future, once the Cosmos Inter-blockchain Communication protocol is available, this should enable cross-network exchanges of tokens at algormically determined prices.

The Cosmic Bonding module can be deployed through Cosmos Hubs and Zones to deliver applications such as:

  • Automated market-makers (like Uniswap)
  • Decentralised exchanges (like Bancor)
  • Curation markets (like Relevant)
  • Development Impact Bonds (like ixo alpha-Bonds)
  • Continuous organisations (like Moloch DAO)

Hayek famously said that "...prices are an instrument of communication and guidance which embody more information than we directly have".

Module functions

Any Cosmos application chain that implements the Cosmic Bonding module is able to perform functions such as:

  • Issue a new token with custom parameters.
  • Pool liquidity for reserves.
  • Provide continuous funding.
  • Automatically mint and burn tokens at deterministic prices.
  • Swap tokens atomically within the same network.
  • Exchange tokens across networks, with the IBC protocol.
  • (Batch token transactions to prevent front-running)
  • Launch a decentralised autonomous initial coin offerings (DAICO)
  • ...other DeFiant innovations.

Pricing algorithm libraries

The Cosmic Bonding module framework supports libraries for all types of pricing algorithms, such as:

  • Exponential
  • Logarithmic
  • Negative exponential
  • Constant product
  • Positive initial price
  • Quasi-polynomial
  • Reserved Supply (Augmented)

Each formula is specified within the module library. This includes:

  • Derived Mint equation
  • Derived Burn equation

Updates to the module pricing functions must pass through a network governance process to update the module on all nodes, for changes to be made.

Parameters

Each Cosmic Bond has an initial set of constant state (invariant) parameters that cannot be updated once these have been initialised, which include:

  • Pricing function (the algorithm that will be used)
  • Issuer
  • Token name
  • Token symbol
  • Reserve wallet address
  • Collateral wallet address
  • Supply
  • Initial reserve
  • Exponent constant
  • Slope constant
  • Transaction fee rate
  • Exit tax rate
  • Coupon value (percentage)

When a Cosmic Bond transaction (such as buy, sell, swap) is submitted, this includes the variable parameters:

  • Order quantity
  • Maximum price
  • Wallet address

The module returns the following parameters:

  • Integral price ...

Cloning this Repository

Run go get -u github.com/ixofoundation/cosmic

Running the App

For instructions on how to run the Cosmos SDK application containing the Cosmic Bonding module, click here. We also built a user interface, but it is currently not wired up to the SDK application. If you still wish to check it out, refer to the instructions here.

  • The code for the SDK application is under ./ixo-sdk/
  • The code for the user interface is under ./ixo-ui/

bonds's People

Contributors

arnonuem avatar demondayza avatar dependabot[bot] avatar ig-shaun avatar migueldingli1997 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

bonds's Issues

outdated sdk

the sdk is updated and these are now missing

make install
GO111MODULE=on go install -tags "" ./cmd/nsd
../../../go/pkg/mod/github.com/cosmos/[email protected]/store/types/store.go:8:2: unknown import path "github.com/tendermint/tendermint/libs/common": cannot find module providing package github.com/tendermint/tendermint/libs/common
../../../go/pkg/mod/github.com/cosmos/[email protected]/store/types/store.go:9:2: unknown import path "github.com/tendermint/tendermint/libs/db": cannot find module providing package github.com/tendermint/tendermint/libs/db

archive?

maybe best to archive or make this repo private so traffic is directed to the bonds repo at ixoworld

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.