{"id":13565608,"url":"https://github.com/gridiron-zone/bonds","last_synced_at":"2026-03-10T09:45:14.680Z","repository":{"id":217501267,"uuid":"595436063","full_name":"gridiron-zone/bonds","owner":"gridiron-zone","description":"The Bonds module 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 the future, once the Cosmos Inter-Blockchain Communication (IBC) protocol is available, this should enable cross-network exchanges of tokens at algorithmically-determined prices.","archived":false,"fork":false,"pushed_at":"2023-01-31T04:14:02.000Z","size":36425,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2024-11-04T19:41:56.397Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gridiron-zone.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-01-31T04:11:50.000Z","updated_at":"2023-08-18T21:14:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"624cf848-2c9c-4898-8ced-760e7b1ccfea","html_url":"https://github.com/gridiron-zone/bonds","commit_stats":null,"previous_names":["gridiron-zone/bonds"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridiron-zone%2Fbonds","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridiron-zone%2Fbonds/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridiron-zone%2Fbonds/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridiron-zone%2Fbonds/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gridiron-zone","download_url":"https://codeload.github.com/gridiron-zone/bonds/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247090290,"owners_count":20881943,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T13:01:51.092Z","updated_at":"2026-03-10T09:45:14.651Z","avatar_url":"https://github.com/gridiron-zone.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# Bonds Module\n\nThe Bonds module is a custom [Cosmos SDK](https://github.com/cosmos/cosmos-sdk) module that provides universal token bonding curve functions to mint, burn or swap any token in a Cosmos blockchain.\n\nIn the future, once the Cosmos Inter-Blockchain Communication \\(IBC\\) protocol is available, this should enable cross-network exchanges of tokens at algorithmically-determined prices.\n\nThe Bonds module can be deployed through Cosmos Hubs and Zones to deliver applications such as:\n\n* Automated market-makers \\(see [Uniswap](https://uniswap.io)\\)\n* Decentralised exchanges \\(see [Bancor](https://bancor.network)\\)\n* Curation markets \\(see [Relevant](https://github.com/relevant-community/contracts/tree/bondingCurves/contracts)\\)\n* Development Impact Bonds \\(see ixo alpha-Bonds\\)\n* Continuous organisations \\(see [Moloch DAO](https://molochdao.com/)\\)\n\n\u003e [Hayek famously said](https://books.google.co.uk/books?id=Udi_BwAAQBAJ\u0026pg=PA32\u0026lpg=PA32\u0026dq=%22prices+are+an+instrument+of+communication+and+guidance+which+embody+more+information+than+we+directly+have%22\u0026source=bl\u0026ots=LMFRhcW0QS\u0026sig=ACfU3U0I6_J3_uBI96ZFKAxCo-p6yh_eNg\u0026hl=en\u0026sa=X\u0026ved=2ahUKEwimguWHpOjmAhWFTBUIHQCYASYQ6AEwAnoECAkQAQ#v=onepage\u0026q=%22prices%20are%20an%20instrument%20of%20communication%20and%20guidance%20which%20embody%20more%20information%20than%20we%20directly%20have%22\u0026f=false) that \"...prices are an instrument of communication and guidance which embody more information than we directly have\".\n\n## Module functions\n\nAny Cosmos application chain that implements the Bonds module is able to perform functions such as:\n\n* Issue a new token with custom parameters.\n* Pool liquidity for reserves.\n* Provide continuous funding.\n* Automatically mint and burn tokens at deterministic prices.\n* Swap tokens atomically within the same network.\n* Exchange tokens across networks, with the IBC protocol.\n* Batch token transactions to prevent front-running\n* Launch a decentralised autonomous initial coin offerings \\([DAICO](https://ethresear.ch/t/explanation-of-daicos/465)\\)\n* ...and other **DeFi**ant innovations.\n\n## Pricing algorithm libraries\n\nThe Bonds module framework supports libraries for all types of pricing algorithms, such as:\n\n* Exponential\n* Logarithmic\n* Negative exponential\n* Constant product\n* Positive initial price\n* Quasi-polynomial\n* Reserved Supply \\(Augmented\\)\n\nEach formula is specified within the module library. This includes:\n\n* Derived Mint equation\n* Derived Burn equation\n\nUpdates to the module pricing functions must pass through a network governance process to update the module on all nodes, for changes to be made. This is an important security feature.\n\n## Parameters\n\nEach bond has an initial set of constant state \\(invariant\\) parameters that cannot be updated once these have been initialised. Parameters include:\n\n* Pricing function \\(the algorithm that will be used\\)\n* Issuer\n* Token name\n* Token symbol\n* Reserve wallet address\n* Transaction fee rate\n* Exit tax rate\n* Fee wallet address\n* Maximum token supply\n* Order quantity limits\n* Sanity rates\n\nWhen a bond transaction \\(such as buy, sell, swap\\) is submitted, this includes the variable parameters:\n\n* Order quantity\n* Maximum price\n* Wallet address\n\nSome of the parameters of the bond may be edited:\n\n* Token name\n* Sanity rates\n* Order quantity limits\n\n## Building and Running\n\n**Note**: Requires [Go 1.13+](https://golang.org/dl/)\n\nThis repository is set up as a Cosmos SDK application and contains the Bonds module under `./x/bonds/`.\n\nTo build and run the application:\n\n```bash\nmake run\n```\n\nAlternatively, to run with one of the users set up to use Ledger:\n\n```bash\nmake run_ledger\n```\n\nTo build and run the application with some preset accounts:\n\n```bash\nmake run_with_data\n```\n\n### Demos\n\nTo run a demo \\(requires application to be run using `run_with_data`\\):\n\n```bash\nmake demo\n```\n\nThe demo consists of:\n\n* Bond creation\n* Bond querying\n* A mix of buys and sells\n\nTo run a more specific demo, check out the `scripts/more_demos/` folder.\n\n## Tutorials\n\nGuided tutorials are also provided and can be found in the tutorials folder [here](tutorials/)!\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgridiron-zone%2Fbonds","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgridiron-zone%2Fbonds","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgridiron-zone%2Fbonds/lists"}