├── .gitignore └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # TypeScript v1 declaration files 45 | typings/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Microbundle cache 57 | .rpt2_cache/ 58 | .rts2_cache_cjs/ 59 | .rts2_cache_es/ 60 | .rts2_cache_umd/ 61 | 62 | # Optional REPL history 63 | .node_repl_history 64 | 65 | # Output of 'npm pack' 66 | *.tgz 67 | 68 | # Yarn Integrity file 69 | .yarn-integrity 70 | 71 | # dotenv environment variables file 72 | .env 73 | .env.test 74 | 75 | # parcel-bundler cache (https://parceljs.org/) 76 | .cache 77 | 78 | # Next.js build output 79 | .next 80 | 81 | # Nuxt.js build / generate output 82 | .nuxt 83 | dist 84 | 85 | # Gatsby files 86 | .cache/ 87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 88 | # https://nextjs.org/blog/next-9-1#public-directory-support 89 | # public 90 | 91 | # vuepress build output 92 | .vuepress/dist 93 | 94 | # Serverless directories 95 | .serverless/ 96 | 97 | # FuseBox cache 98 | .fusebox/ 99 | 100 | # DynamoDB Local files 101 | .dynamodb/ 102 | 103 | # TernJS port file 104 | .tern-port 105 | 106 | # Contracts 107 | artifacts 108 | cache 109 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # lastest state in `#dev` (as of 9:30pm PST on Nov 13th) 2 | 3 | `Note from @m1guelpf#4217` 4 | 5 | *Hey devs! We experimented with a bunch of ideas regarding different ways to approach raising the funds, but have decided to end up going with Juicebox, which has already been audited and should be much more solid than anything we can get out in a few days. I'm super thankful of everyone who has dedicated their time to building the "unofficial" contracts, but since we're not going to be using those and we don't want any confusion, we would like to ask y'all to rename the GitHub organization (since right now it looks a bit more official than it actually is).* 6 | 7 | *We're closing off the crowdfund efforts, and we could really use everyone's help in spreading the word when we annunce them in a few hours, so we'd like to ask y'all to direct your efforts to marketing. Get creative! Let's get as many people as possible to know about this 🔥* 8 | 9 | *We've created the multisig we'll use to hold the crowdfund, and we're finalising the infrastructure required for people to start actually commiting funds (we'll be using a platform called Juicebox, which has been thoroughly tested and audited), which we hope to soft-launch by the end of the day. We'll keep everyone updated!* 10 | 11 | ## Docs 12 | 13 | ### Getting started 14 | 15 | 1. [Juicebox Protocol](https://juicebox.money/) was best equipped to roll up their sleeves on work with us on deploying the contract that will enable us to pursue this monumental undertaking (and waive all of their fees 🙏). Their work with SharkDAO and others is a testament to what they can accomplish and we're glad to have them on board. The community should look over the contracts. `@jango` is the contact for getting oriented there. 16 | 17 | 2. In the meantime, we have a repo where we can start organizing devs and getting people on the same page with things. This GitHub repo is NOT going to be used for the crowdfund. Not the frontend or the solidity contracts. We are not building anything custom for the token raising. The GitHub is only for coordinating the future plans with some of the awesome solidity and frontend devs that want to help us make this even better the next time we do something like this. Looking to the future with that one. 18 | 19 | 3. If you don't want to do #1 or #2, then look at `What are people working on?` and `What are things we might want to start doing?` below. Find something that interests you / matches your skillset and reach out to the most relevant team member (roles listed below) in #dev on discord. 20 | 21 | ### What are people working on? 22 | 23 | - `@alicemama` is in leading the website 24 | - `@jango` is leading juicebox.money 25 | - `@bwags` is leading multisig 26 | - `@sethfork` owns the org / repos 27 | - `@pmoncada` was keeping #dev aligned with core team until it was made `read-only` 28 | - `@ty` kept this page updated with latest in #dev until it was made `read-only` 29 | 30 | ### What are things we might want to start doing? 31 | - We could use help auditing the Juicebox protocol and contracts 32 | - Make proposals in PRs and we can get moving on decision making wrt governance/tokens/etc. for the future 33 | 34 | ### Juicebox FAQs 35 | 36 | #### Q: Where can I learn more about Juicebox 37 | 38 | Here is [an idea of how ConstitutionDAO will use the many Juicebox tools](https://juiceboxdao.notion.site/ConstitutionDAO-on-Juicebox-4490ae7fb2ea4c7d82aa6fff5bfae477). You can also check out [these docs](https://www.figma.com/file/dHsQ7Bt3ryXbZ2sRBAfBq5/Juicebox-Technical-Docs) to get started. 39 | 40 | #### Q: Which fund tokens do we accept? 41 | 42 | A: ETH 43 | 44 | #### Q: What is the ratio of gov/tokens to fund tokens? 45 | 46 | A: 1,000,000 token per ETH 47 | 48 | #### Q: Is there a cap? 49 | 50 | A: No cap 51 | 52 | #### Do we want to take any measures to make sure the majority of gov tokens don't wind up in the hands of a few? 53 | 54 | A: Not possible. 55 | 56 | #### How can you audit the Juicebox protocol? 57 | 58 | A: The tests for V1 are really thorough for those auditors who want to go through quickly 59 | - unit: https://github.com/jbx-protocol/juice-contracts/tree/main/test/unit/v1 60 | - integration/load: https://github.com/jbx-protocol/juice-contracts/tree/main/test/integration/v1. 61 | 62 | #### Q: How can I try out Juicebox? 63 | 64 | A: Anyone can [try juicebox on rinkeby](http://rinkeby.juicebox.money/) by clicking the `design your project` button 65 | 66 | #### Q: Could we do a partial refund when ppl claim their tokens. Lets say we raise 20M and only use 15M. How can we give the excess back? 67 | 68 | A: We'd create a pool with the extra funds for token holders to claim. Or, leave in in the DAO's treasury for token holders to govern in other ways. 69 | 70 | #### Q: Is there a way the dao could decide what to do with the excess with Juicebox? 71 | 72 | A: Juicebox doesn't have an opinion on this. It just issues tokens and manages the funds ==> gives people an option to burn their tokens for some of whats in the treasury. We can build contracts that use the tokens for decision making, or just use snapshot votes + multisig. There's an interface that we can implement to enforce on-chain governance strongly for changes in treasury configurations. Each Juicebox project is represented as an NFT, the owner of which can admin the treasury over time. If this owner is a governance contract with strong rules, all decisions will have to go through it 73 | 74 | #### Q: what's the biggest project juicebox has handled? how much is not being audited a problem? 75 | 76 | A: The protocol was deployed in July, SharkDAO ($5M in ETH) is the biggest we've seen to date. Also TileDAO and JuiceboxDAO itself 77 | 78 | #### Does Juicebox exist on any L2s yet? Arbitrum? Etc? 79 | 80 | A: not yet but erc20 project tokens on L1 can naturally be bridged to L2s or sidechains 81 | 82 | ### General FAQs 83 | 84 | #### Q: Are we creating anything custom? 85 | 86 | A: No. We cannot make our own super secure solidity contracts in 5 days. We are going to use battletested tools. Juicebox.money did a big workshop earlier explaining all their contracts 87 | 88 | #### Q: What is our highest priority? 89 | 90 | A: Security is the highest priority. This is going to be a high-profile raise and someone will try to exploit us in every way. Trusting someone with the $20M is unavoidable for making the bid. Either we need to convert to fiat ourselves and move to a bank, or we can partner with a non-profit to handle this for us. It is preferable to give contributors ownership of the DAO as they add funds instead of anything retroactive. Therefore at the moment we are leaning most towards using Juicebox due to their ease of minting tokens on contribution, fund overflow mechanics, and demonstrated battle-testing. As of right now, ConstitutionDAO core team is talking with some core developers at Juicebox to work out the details. 91 | 92 | #### Q: What is our ENS? 93 | 94 | A: Our ens is `constitutiondao.eth` thanks to @alicemama 95 | 96 | ## Learn more 97 | - [Website](https://constitutiondao.com/) 98 | - [Discord](https://discord.gg/XQcmCmWDn8) 99 | - [Twitter](https://twitter.com/constitutiondao) 100 | - [FAQs](https://docs.google.com/document/d/1i1zLBXpdFdojvQVXpYBbeABEi7io60j0gOnM4uyZBdI) 101 | --------------------------------------------------------------------------------