Skip to content

Commit 9a1d406

Browse files
authored
Merge pull request #110 from motosharpley/main
DevPathDao Challenge Submission
2 parents 0e08589 + 1bcdd6e commit 9a1d406

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+32339
-0
lines changed

5-DAO/dao/.gitignore

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Generated by Cargo
2+
# will have compiled files and executables
3+
debug/
4+
target/
5+
6+
# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
7+
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
8+
Cargo.lock
9+
10+
# These are backup files generated by rustfmt
11+
**/*.rs.bk
12+
13+
# MSVC Windows builds of rustc generate these, which store debugging information
14+
*.pdb

5-DAO/dao/Cargo.toml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
[package]
2+
name = "dao"
3+
version = "0.1.0"
4+
edition = "2021"
5+
6+
[dependencies]
7+
sbor = { git = "https://github.com/radixdlt/radixdlt-scrypto", tag = "v0.6.0" }
8+
scrypto = { git = "https://github.com/radixdlt/radixdlt-scrypto", tag = "v0.6.0" }
9+
10+
[dev-dependencies]
11+
transaction = { git = "https://github.com/radixdlt/radixdlt-scrypto", tag = "v0.6.0" }
12+
radix-engine = { git = "https://github.com/radixdlt/radixdlt-scrypto", tag = "v0.6.0" }
13+
scrypto-unit = { git = "https://github.com/radixdlt/radixdlt-scrypto", tag = "v0.6.0" }
14+
15+
[profile.release]
16+
opt-level = 's' # Optimize for size.
17+
lto = true # Enable Link Time Optimization.
18+
codegen-units = 1 # Reduce number of codegen units to increase optimizations.
19+
panic = 'abort' # Abort on panic.
20+
strip = "debuginfo" # Strip debug info.
21+
overflow-checks = true # Panic in the case of an overflow.
22+
23+
[lib]
24+
crate-type = ["cdylib", "lib"]

5-DAO/dao/README.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
Getting Started
2+
3+
You can interact with a deployed version @ https://devpathdao.web.app/
4+
5+
There is a known issue with account switching due to no event from test wallet.
6+
7+
`cd client`
8+
`npm i`
9+
`npm start`
10+
11+
Design summaries can be found in /ReadMe directory. With CDD.md "Comunnity Driven Development" as the top level starting point and category details expanded in supporting docs ie members, accounting, voting etc.
12+
13+
Navigate to Dashboard page where you can currently input DAO name, initial token sale price, and number to total shares(member_tokens). Click Create Member DAO Tokens button to load the vault with initial token supply and recieve the founders_badge in the calling account address. This is the tiny beginning of a DAO platform.
14+
15+
The blueprints get reused and automagically applied to the callers wallet as super user(founders_badge) making a seemless flow easily setting up new organizations.
16+
17+
If you think about this process in comparison to all the hoops required to start a business merchant account alone the same approach can be reused in a very simple manner for many forms of new business account creation.
18+
19+
From here you can navigate to the Marketplace where you can then purchase member tokens from any account. In a complete model the marketplace would serve as a place to crowdfund new projects.
20+
21+
There will also be an expansion via CreateProposal to facilitate work contributions which are awarded member tokens as a way to earn your way in with "sweat equity". This enables workers to gain equity and founders to build start ups with lower capital requirements.

5-DAO/dao/ReadMe/Accounting.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
## Accounting
2+
3+
The accounting system needs to provide mechanisms for storing, tracking, and distributing Assets.
4+
5+
### Expenses
6+
7+
- Provide mechanisms for storing assets to pay expenses: Asset Vaults
8+
- Provide a means of triggering resupply of expense vault assets.
9+
- Provide a mechanism for triggering payment of expenses signed by an authorized badge
10+
- Provide a mechanism for adding new expenses
11+
12+
### Earnings
13+
14+
- Provide a mechanism for storing DAO earnings: Asset Vaults
15+
- Provide a mechanism for distributing earnings
16+
17+
### OrgOwned Assets including DAO owned tokens
18+
19+
- DAO owned tokens collect earnings equal to every other member token in order to provide operational assets.
20+
- Operators need mechanisms to adjust the amount of org owned tokens to produce operating capital, growth capital etc.

5-DAO/dao/ReadMe/CDD.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Community Driven Development
2+
3+
> A new way to think about building a business!
4+
5+
This was an idea that I had years ago which is now far more feasible with the advances in blockchain technology, DAOs in particular, and the unique capabilities opened up with Radix and Scrypto.
6+
7+
The general idea is to open up real world projects to the community and deliver direct rewards to contributors with ownership in the project.
8+
9+
To explain a bit further every contribution will recieve shares of ownership wether financial investment, programming, marketing, customer support, etc. There is NO REASON why any form of contribution can't be utilized and compensated fairly and equitably.
10+
11+
### To have a successful business requires the complete picture. Every contribution has real and tangible value, they should be rewarded as such.
12+
13+
With the shares earned every contributor gets a voice to vote on the direction of the project. To accommodate those who prefer to have a more hands off status they can choose to vote or delegate their votes to elected delegate representatives.
14+
15+
### Key Elements
16+
17+
- Shares or stock certificates this could be tokens or nfts
18+
- Members & Roles - A combination of tokens and badges
19+
- Accounting systems - How will the money flow?
20+
- Voting - How will the DAO make decisions?
21+
- Elections - How will the DAO elect leaders and how will it deal with non performing members in key roles.
22+
23+
## Top Level Blueprints
24+
25+
- DAO
26+
- Members
27+
- Voting
28+
- Accounting
29+
30+
### DAO
31+
32+
> Governance Contracts - Define the purpose of the organization.
33+
34+
- How the ownership structure will look.
35+
- How operational positions will be compensated.
36+
- How expenses will pe paid.
37+
- How earnings will be distributed.
38+
39+
### Members
40+
41+
- TotalSupply of member tokens = 100% of ownership
42+
- % DAO owned member tokens for operation cost and growth funding
43+
- Founders badges
44+
- Voting badges
45+
- Accounting badges
46+
- Operator badges
47+
- Delegate badges
48+
49+
### Voting
50+
51+
- Simple Vote
52+
- Operator Vote
53+
- Election
54+
- Delegate
55+
56+
### Accounting
57+
58+
- Expenses
59+
- Earnings
60+
- OrgOwned Assets including DAO owned tokens

5-DAO/dao/ReadMe/DAO.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
## DAO
2+
3+
> Governance Contracts - Define the purpose of the organization.
4+
5+
### How the ownership structure will look.
6+
7+
- Provide a mechanism for defining ownership structure, transfer of ownership, and altering ownership structure.
8+
9+
### How operational positions will be compensated.
10+
11+
- Provide a mechanism for special compensation of operational positions in the organization. One option would be allocation of earnings from DAO ownership tokens but not transfer of onwership of said tokens.
12+
13+
### How expenses will pe paid.
14+
15+
- Provide mechanisms for submission and payment of organization related expenses.
16+
17+
### How earnings will be distributed.
18+
19+
- Provide a mechanism for distributing organization earnings. Allow for adjustments in liquidity pool levels, distribution frequency, etc.

5-DAO/dao/ReadMe/Members.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
## Members
2+
3+
### TotalSupply of member tokens = 100% of ownership
4+
5+
- Provide mechanisms for minting ownership tokens
6+
7+
### % DAO owned ownership tokens for operation cost and growth funding
8+
9+
- Provide mechanisms for altering min and max levels of DAO owned ownership tokens: including a mechanism for a locked level.
10+
11+
### Founders badges
12+
13+
- Essentially a super-user badge
14+
15+
### Voting badges
16+
17+
- provide a mechanism for creating auth-level voting badges
18+
19+
### Accounting badges
20+
21+
- Special badge type for co-signed transactions and extended read-only privilege
22+
23+
### Operator badges
24+
25+
- Special Badge type possibly NFT badges
26+
27+
### Delegate badges
28+
29+
- Special badge type for delegate vote representatives.

5-DAO/dao/ReadMe/Voting.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
## Voting
2+
3+
### Simple Vote
4+
5+
- The simplest voting mechanism, give a list of options pick x num of choices
6+
- **impl option 1** - create a vault for each ballot option then mint vote tokens and deposit in vault of choice
7+
- **impl option 2** - create NFT Vault and mint NFT votes with NFT data being the chosen vote(might be harder to read results but might be useful for delegate votes)
8+
9+
### Operator Vote
10+
11+
- Provide a privilege voting mechanism to facilitate operational management decision making
12+
- access rules - require operator badge
13+
- NFT voting mechanism for small voter pool, high data flexibility
14+
15+
### Election
16+
17+
- Provide a mechanism for electing special positions awarded with corresponding badges to winners
18+
- Provide a special election mechanism for removing problematic privilege members. ie. operators who do not fulfill their operational duties
19+
- simple token and vault system allowing delegate reps to cast block votes with verified delegate stake and badge
20+
21+
### Delegate
22+
23+
- Provide a mechanism for allowing members to allocate their votes to delegate representatives.
24+
- Remember to have a mechanism to un-allocate or change to other available delegates.
25+
26+
### Ballot
27+
28+
- option 1 create vaults from array of ballot options then mint vote tokens and deposit accodingly on vote cast.
29+
- option 2 casting vote mints nft that gets deposited in ballot vault non-withdrawable with vote data immutable.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
asset-manifest.json,1665519342693,3a6205cc6e11265c198221ebdfcecf8d74a2ad89b8fae5687ae72a8585a37503
2+
index.html,1665519342693,c3a55c02cb640b3e519b5e251a792748d317ae293c34ac3dee418c41b81e2ba2
3+
logo192.png,1665519334504,caff018b7f1e8fd481eb1c50d75b0ef236bcd5078b1d15c8bb348453fee30293
4+
robots.txt,1665519334506,391d14b3c2f8c9143a27a28c7399585142228d4d1bdbe2c87ac946de411fa9a2
5+
static/css/main.ded876d6.css,1665519342695,2d9c342b7a5ec294bf4a68b1e907ece0b42084abbfb883adb71b044581e9e2ce
6+
static/css/main.ded876d6.css.map,1665519342695,032babeef4c4ce1758d08896d25c53095915c79ff921e26ad01d30d0efab0c63
7+
logo512.png,1665519334505,191fc21360b4ccfb1cda11a1efb97f489ed22672ca83f4064316802bbfdd750e
8+
manifest.json,1665519334506,341d52628782f8ac9290bbfc43298afccb47b7cbfcee146ae30cf0f46bc30900
9+
static/js/main.1eccd005.js.LICENSE.txt,1665519342696,89931acae0c3bb5de31300c10a6ba0965cf44179df9fab18c27a63fb0b9d5b0d
10+
favicon.ico,1665519334503,d9a0853aea3b517e942179d199248923ea612f6a7e5a3092cad65dcc424f3520
11+
static/js/main.1eccd005.js,1665519342696,a665e8a66543a55986b85578903eb094fa451cd371c76eefadba2cca1b8e5d33
12+
static/js/main.1eccd005.js.map,1665519342695,7d9b1b6fd50d3363c236c387835e1842c6b56012b85a966dcda627d86677324d

5-DAO/dao/client/.firebaserc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"projects": {
3+
"default": "devpathdao"
4+
}
5+
}

0 commit comments

Comments
 (0)