I. Introduction
There are two ways to get funded for projects in the Secret ecosystem. The first is to apply for a grant (or VC funding), and the other is to make an on-chain proposal. In the first case, the decision is necessarily made by a small number of people, and for the second there is still a high bar that must be met–reaching quorum, etc. The intention of this grant is to build a decentralized crowdfunding platform on Secret Network that is open to anyone to use.
There are a number of smaller/bespoke projects that could be crowdfunded by interested backers, which would not be funded otherwise because they are only of interest to a minority of stakeholders or they are not seen as a central priority for the network. In my opinion, having a way for these projects to still get funded will help create a more vibrant community all around. This would not preclude Secret Labs or the foundation contributing to those projects if they wanted to. In addition to projects that are specifically about Secret Network, this platform will allow for decentralized crowdfunding of projects that are unrelated to Secret Network.
By building on Secret Network the donation amounts from individual users can be kept hidden. A project can request donations be made with SNIP20s (sscrt, silk, etc.). Progress toward funding goals will only be revealed in coarse grained percentages: (50%, 100% funded) so chain analytics cannot be used to figure out individual contributions. The project creator’s address will be public. In theory that could be private as well, but then there is no transparency whatsoever about who you might be funding. Because it is an open source project, if someone wants to run a crowdfunding project completely anonymously then they have the option of putting their own version on chain.
Every project has a public title, public description (that can include linked images, videos online, etc), a private message for people who have pledged money before funding has been completed, and a private message for people who have contributed money after the project is funded. All of this information is stored on the Secret Network chain. Private messages can be used for any special things that the creator of the project wants to share with supporters, e.g. special whitelist codes for NFT badges.
II. Background
I began building a crowdfunding app, called Mage Hands, last year, so some work has already gone into this project, however at the moment it is not being actively developed. With this idea being added to the CCBL list of projects, I’ve decided to complete it. You can read more about what was already done here: Mage Hands - Crowdfunding Dapp. It requires more work before it is ready for release, which I describe in the following section.
One reason I did not continue at the time was due to the complex regulatory space, liability issues around crowdfunding, which frankly I did not want to deal with. If I continue this project, then I will build it to be a permissionless and commission-free platform with fully open-source code. In other words, I do not plan to personally make money off this platform, but I would like to get some funding to support my development time, given the value to the wider community.
Developer Ben Adams (@darwinzero) – associate professor of computer science, developer of Fardels and contributor to other Secret Network projects. darwinzer0 (Ben Adams) · GitHub
III. Timeline, Milestones & KPIs
Deliverables
Contract:
- Update existing codebase to CosmWasm 1.0 + newer query permit functions.
- Implement a receive interface for SNIP20 payments, and query interfaces for coarse-grained funding goals.
- Deadman switch – if a successfully funded project is not paid out after a given block, then it reverts to not funded status and contributors can pull their money out.
Frontend:
- SecretJS based integration tests.
- Basic but fully functional UI written in Svelte (a minimal UI is halfway there but it requires some code-refactoring, update to newer version of SecretJS, etc).
Note: there are many frontend features that would be nice to have, but are out-of-scope, e.g. a search interface for public project information, which would require some kind of off-chain indexing.
Community testing:
- Release on Pulsar testnet (post-Shockwave Delta update).
- Gathering of feedback / bug fixes.
Documentation (e.g. Gitbook):
- Basic tutorial on how to use the platform.
- Detailed information on all the message types on the platform, so that e.g. other devs can create their own frontends, command line scripts, etc.
Timeline / Milestones
I will work on this project part-time (10 hrs/wk).
Week 1-2:
- Contract code updates (5 hrs), receive interface + query (5 hrs), and deadman switch (6 hrs). Integration tests (4 hrs).
- KPI 1: Successful compilation and upload to Shockwave Delta local dev testnet (with SecretJS)
- KPI 2: Successful SecretJS integration test of SSCRT receive and deadman switch
Week 3-4:
- Front-end dev (16 hrs). Integration tests (4 hrs)
- KPI3: Completion of integration tests for all message interfaces
- KPI4: A user interface that supports creating a new project, viewing existing projects (including current and past), and contributing to a project.
Week 5-6:
- Release contract on Pulsar and setup testnet website (4 hrs). Documentation and tutorials (16 hrs).
- KPI5: A working version is on testnet and users can successfully complete the tutorial.
I will post on KPIs on the SN forum.
After this grant is completed, the contract should be ready to release on mainnet. The UI will be open source, so anyone in the community will be able to extend it as they see fit.
IV. Budget
- SCRT 2000, nominal amount for prior work on this idea last year
- 60 hours developer time x $USD 150/hr = $USD 9000 equivalent in SCRT. Current price @ $1.20 = SCRT 7500.
Total: SCRT 9500
This hourly rate is lower than my normal contract rate but seems to be in line with other grants. For open source development I am happy to do a discounted rate.
Note, this funding does not include an external audit of the contracts. If the CCBL wants this added, then it will be in addition to the listed budget.
I would be happy to discuss any details of this proposal. Unfortunately it is hard for me to attend the normal governance meetings because they are held in the middle of the night in my time zone, but I can review any recommendations and respond in the forums or another meeting time.