Kyodo Ethereum blockchain based web app, the cross-platform incentive tool for building the crypto economy for DAO based on Impression revenue model. We build Kyodo to run Decent.Fund. As an organizational structure, it's defined as Adhocracy As governance, it has two models Democracy and Meritocracy.
Colony: Decent.Fund Decent.Fund mission is to contribute to the mass adoption of the decentralized solutions, making the concepts of the new crypto economy closer to the unchained world. According to the mission Decent.Fund focuses on following activities:
- UI/UX design
- Programming
- Digital marketing
- Research
- Education
- Fund management
Decent.Fund aims to grow the community of people who are interested in experiments in building the decentralized organization which embraces individual and social interests, economic efficiency and incentive mechanism for growing.
There are two opposite models of the Task management in Kyodo:
-
Impression revenue model The contribution is done without an initial task setting. A contributor posts the contribution to Riot/Colony → Domain's members evaluate the contribution by tipping → send tips with Riot bot → the contributor gets his DF tokens.
-
Task management model Everybody can initiate task by staking DF token. The process: stake task → add task description → assign roles → define an amount of DF token to stake to participate → define reward tasks → open task
This is a monorepo for Kyodo project consisting of 3 modules:
- Kyodo web app to setup colony, sign final tips, get your balance and view tasks progress
- Kyodo backend to run mongodb server and tipping watch within a period
- Kyodo bot to run riot bot for task creation and instant tipping
The Kyodo token model should reflect the value, which the project aims to accumulate and grow, discourages speculation, incentivizes desirable dynamics within a community built around open source software.
The Kyodo has a two-token model / continuous:
DF token
Tech layer - ERC 20 Blockchain native token
Purposes: Cryptocurrency. DF token is intended to be a medium of exchange and store of value for the Decent.Fund activity. DF token is tied to the fund of the community, which is under the GOV domain.
The price of DF token is calculated with this formula: Total cap / Total supply
DF token functionality as cryptocurrency is:
- payments for tasks
- medium of exchange
DF token also has a functionality of Network token which is intended to be used within Kyodo ecosystem:
- ability to set a task
- ability to claim a task
- ability to vote
- ability to initiate a dispute
Underlying value Network value token that is tied to the value and development of the network. Closely interwind with key interactions of Decent.Fund participants. The value generated by work within Decent.Fund domains increases the token value and the share of the fund a member will receive.
Utility DF token is the hybrid token that featuring traits of both Usage and Work token:
- Grants access to system functionalities
- Allows owner to contribute to the system
Legal status Utility token - closely tied to functionality / internal currency / Grants owners to contribute to the system vs. passive investor role.
How to earn: Buy on a decentralized exchange or Fund management domain
DFMerit Tech layer - NFT Blockchain native token Purpose: Network token - not intended to be cryptocurrency, has the functionality within the system:
- access to contribute in Gov domain
Underlying value Network value token that is tied to the value and development of the network.
Utility Usage token - the token that provides access to Gov domain
Legal status - Utility token
How to earn: owners are defined in Gov domain. The dispute could be initiated by a member who wants the merit. The decision is made by voting within Gov domain.
Incentives Incentives involve both monetary and non-monetary rewards and punishments:
- pay-for-performance reward in points which are converted to DF token every period (completing tasks, voting)
- holder reward (holding DF token)
- Inactivity punishment (a member loses stake he put to claim the task in case of not showing an activity. Inactivity is defined by not receiving points for the claimed task)
Short-run | Long-run | |
---|---|---|
Fanancial | Points | DF token revenue |
-------- | -------- | -------- |
Non-Fanancial | Work with the decentralized community | Mission driven |
The incentive to hold - the rising token value
Token distribution Period - 1 month At the end of a period, a member should sign a transaction approving the number of tips (DF tokens) he spread within members as evaluation of the work they have done. At the end of the period, the number of points members earned for work are converted to the DF token and distributed to the members from the Gov domain.
Inflation Dynamic inflation depends on the amount of the money earned in a current period.
Government type - Meritocracy "Meritocracy is the idea that decisions should be taken by the entities better qualified for it" - Xavi Vives
Merit properties by Xavi Vives
- Defines what’s of value to the system to make decisions.
- Can’t be a medium of exchange
- Needs to be quantifiable
The merit, which meets requirements, is represented by NFT token in Kyodo.
One member of Gov domain can have only one NFT token, meaning one member has only one vote.
NFT token is the access to vote in Gov domain.
Other members elect the new Gov domain's members in Kyodo by voting on Aragon platform.
The voting topics of the Gov domain are:
- Tokenomics
- Approving a new member / NFT minting
- Creating a new domain
- Disputes from other domains
git clone https://github.com/decentfund/kyodo.git
cd kyodo
yarn
cd packages/kyodo-contracts
# Start ganache cli with necessary parameters
yarn start-ganache
# Setup colonyNetwork and its dependencies
yarn setup-colony
# Create initial distribution of tokens
# Change `deploy_parameters.json` to reflect the initial distribution you want or leave the accounts section empty.
cp migrations/deploy_parameters.example.json migrations/deploy_parameters.json
# Compile smart contracts
yarn deploy-contracts
yarn start
Don't forget to switch Metamask network to localhost:8545
# Truffle tests
npm run truffle:test
# App tests
npm run jest
We implement an ERC-20 token contract to bootstrap app based on OpenZeppelin ERC20 Mintable token and Ownable contracts, for working with strings we utilize strings.sol library.
If you need to specify additional token balances, you can do so by creating a balances.json
file in the root of the kyodo package
Tokens should be specified in the form of TICKER: BALANCE
, like BTC: 1