Skip to content

Instantly share code, notes, and snippets.

@2075
Last active August 2, 2021 12:55
Show Gist options
  • Save 2075/8f389075f29acb55adf4b0315d3f7f91 to your computer and use it in GitHub Desktop.
Save 2075/8f389075f29acb55adf4b0315d3f7f91 to your computer and use it in GitHub Desktop.
W3F Open Grant — Generic Bonding Curves

W3F Open Grant Proposal

This document will be part of the terms and conditions of your agreement and therefore needs to contain all the required information about the project. Don't remove any of the mandatory parts presented in bold letters or as headlines! Lines starting with a > (such as this one) can be removed.

See the Open Grants Program Process on how to submit a proposal.

  • Project Name: Generic Bonding Curves
  • Team Name: ZERO.IO / GameDAO
  • Payment Address: DAI 0x5ae30612FC6CDA7190a5195cdA95107605450dF4

⚠️ The combination of your GitHub account submitting the application and the payment address above will be your unique identifier during the program. Please keep them safe.

Project Overview 📄

Bonding Curves

Generic Bonding Curve Module, built to interact with the assets pallet to create deterministic token supplies and pricing.

Overview

Please provide the following:

ZERO aims to aggregate all gaming related content / IP / networks into one parachainslot, while being a relaychain itself. GameDAO provides a clearly structured fundraising and coordination framework directly connecting community and creators to transparent governance, coordination, ownership protocols.

Project Details

We expect the teams to already have a solid idea about your project's expected final state. Therefore, we ask the teams to submit (where relevant):

  • Mockups/designs of any UI components
  • Data models / API specifications of the core functionality
  • An overview of the technology stack to be used
  • substrate
  • rust
  • curve functions
  • Documentation of core components, protocols, architecture, etc. to be deployed

  • PoC/MVP or other relevant prior work or research on the topic

  • What your project is not or will not provide or implement This implementation will provide static bonding curves, dynamic curves could be a follow up grant, reflecting dynamic functions integrating external data feeds.

Ecosystem Fit

  • Who is your target audience (parachain/dapp/wallet/UI developers, designers, your own user base, some dapp's userbase, yourself)? Chain and Dapp creators building on dynamic incentive / token mechanisms, AMM, finance or governance related products.

  • What need(s) does your project meet? Finding a price for an asset in a deterministic fashion.

Team 👥

Team members

Marco Bahn

Contact

Legal Structure

ZERO Labs c/o, ONE.IO GmbH, Sihlquai 131, CH-8005 Zürich

Team's experience

The team Please describe the team's relevant experience. If your project involves development work, we would appreciate it if you singled out a few interesting projects or contributions made by team members in the past. For research-related grants, references to past publications and projects in a related domain are helpful.

If anyone on your team has applied for a grant at the Web3 Foundation previously, please list the name of the project and legal entity here. We have applied before for grant based work on a swift port of polkadotjs and a decentralised graph node, which both where rejected. We have also applied for the builders programme and are already a listed project at PVN.

Team Code Repos

Please also provide the GitHub accounts of all team members. If they contain no activity, references to projects hosted elsewhere or live are also fine.

Team LinkedIn Profiles (if available)

Development Status 📖

If you've already started implementing your project or it is part of a larger repository, please provide a link and a description of the code here. In any case, please provide some documentation on the research and other work you have conducted before applying. This could be:

  • links to improvement proposals or RFPs (requests for proposal),
  • academic publications relevant to the problem,
  • links to your research diary, blog posts, articles, forum discussions or open GitHub issues,
  • references to conversations you might have had related to this project with anyone from the Web3 Foundation,
  • previous interface iterations, such as mock-ups and wireframes.

Development Roadmap 🔩

This section should break the development roadmap down into milestones and deliverables. Since these will be part of the agreement, it helps to describe the functionality we should expect in as much detail as possible, plus how we can verify and test that functionality. Whenever milestones are delivered, we refer to this document to ensure that everything has been delivered as expected.

Below we provide an example roadmap. In the descriptions, it should be clear how your project is related to Substrate, Kusama or Polkadot. We recommend that the scope of the work can fit within a three-month period and that teams structure their roadmap as 1 milestone ≈ 1 month.

For each milestone,

  • make sure to include a specification of your software. Treat it as a contract; the level of detail must be enough to later verify that the software meets the specification. To assist you in defining it, we have created a document with examples for some grant categories here.
  • include the amount of funding requested per milestone.
  • include documentation (tutorials, API specifications, architecture diagrams, whatever is appropriate) in each milestone. This ensures that the code can be widely used by the community.
  • provide a test suite, comprising unit and integration tests, along with a guide on how to set up and run them.
  • commit to providing Dockerfiles for the delivery of your project.
  • indicate milestone duration as well as number of full-time employees working on each milestone.
  • Deliverables 0a-0d are mandatory for all milestones, and deliverable 0e at least for the last one. If you do not intend to deliver one of these, please state a reason in its specification (e.g. Milestone X is research oriented and as such there is no code to test).

⚡ If any of your deliverables is based on somebody else's work, make sure you work and publish under the terms of the license of the respective project and that you highlight this fact in your milestone documentation and in the source code if applicable! Teams that submit others' work without attributing it will be immediately terminated.

Overview

  • Total Estimated Duration: 2 months
  • Full-Time Equivalent (FTE): 1 FTE
  • Total Costs: 25k USD

Milestone 1 — Implement Substrate Modules

  • Estimated duration: 1 month
  • FTE: 1
  • Costs: 10,000 USD
Number Deliverable Specification
0a. License Apache 2.0 / GPLv3 / MIT / Unlicense
0b. Documentation We will provide both inline documentation of the code and a basic tutorial that explains how a user can create a token and assign a curve to find a price based on the currently existing volume.
0c. Testing Guide Core functions will be fully covered by unit tests to ensure functionality and robustness. In the guide, we will describe how to run these tests.
0d. Docker We will provide a Dockerfile(s) that can be used to test all the functionality delivered with this milestone.
0e. Article We will publish an article that explains what was done and achieved as part of the grant, on subsocial and medium, as part of the ongoing GameDAO communications. It will also include further reading, like relevant research material.
1. Substrate module: Curve We will create a Substrate module that will enable buy and sell of a token with a mocked stable currency (PLAY) at a deterministic price, based on a previously selected bonding curve. We are using the existing assets pallet to provide multiple currencies and therefore have it as a requirement for both Curve and chain.

Milestone 2 — Example Chain + Web Application

  • Estimated Duration: 1 month
  • FTE: 1
  • Costs: 10,000 USD
Number Deliverable Specification
0a. License Apache 2.0 / GPLv3 / MIT / Unlicense
0b. Documentation We will provide both inline documentation of the code and a basic tutorial that explains how a user can run the complete stack of a local chain and the frontend to create, buy and sell token with Curve
0c. Testing Guide Core functions will be fully covered by unit tests to ensure functionality and robustness. In the guide, we will describe how to run these tests.
0d. Docker We will provide a Dockerfile(s) that can be used to test all the functionality delivered with this milestone.
0e. Article We will publish an article on subsocial and medium, that explains how to utilize Curve inside of a simple React frontend.
1. Substrate chain Curve will tie in with the assets pallet and enable the selection of a curve upon token generation.
2. React based Dapp We will create a React based Dapp which enables a regular frontend user to utilize Curve, creating token and buying and selling them through a simple UI

Future Plans

Curve will be one of the building blocks for ZERO and GameDAO, to have deterministic token supply and pricing, when e.g. staking, buying or selling token inside GameDAO.

ZERO as a Network aims to become the go to relaychain and parachaing for videogames with GameDAO as the community owned fundraising and coordination entity to create end to end sustainable community powered videogame economies.

Concepts like quadratic voting / funding and bonding curves are not only related to currently existing financial protocols, but also gain relevance inside of videogame economies where market dynamics, liquidity, balancing of stakeholders and multiple assets are vital contributors to success, in terms of economic incentive and design. Continuously improving game economies fostering community ownership, curation and contribution are the driving factors of videogames of the future.

Metaprotocols like Polkadot and ZERO, which focusses on game economies are needed to build borderless ecosystems but also manage existing mechanisms, e.g. for identity, IP, licensing, ownership but also taking away the pain of complex system designs on technical and economic level (network, assets). We tackle this by providing primitives as building blocks and build bridges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment