The goal of this code is to provide information, a framework, and ultimately a full-stack solution to users and organizations seeking to conduct governance or voting on the Cardano blockchain.
Key features that have informed design decisions of this platform include, but are not limited, to the following:
- Public Auditability: It is the belief of our team that all pertinent and relevant information concerning a vote to be cast on-chain should be fully transparent and publicly auditable to all users (not withstanding some technical prowess) at any time past or present without reliance on 3rd parties.
- Vote Security: Particularly when conducting a vote utilizing on-chain assets (native $ADA or other native assets) the paramount importance is proof of voter participation intent. This is not to be confused with voter collusion which shall be addressed separately based upon historical observations.
- Ease of Use: The voting platform should be as easy to use, understand, and participate with as possible to maximize voter participation in any particular vote or governance matter.
Please refer to the schema and usage documentation found under docs.
DripDropz On-Chain Voting by the DripDropz Team is licensed under a Creative Commons Attribution 4.0 International License.
All of the work, documentation, source code, and information contained within this repository is licensed under the Creative Commons 4.0 International "Attribution" license. Essentially this means you are free to use (including monetization), modify, adapt, and redistribute the code in any way you see fit. The only thing we ask is that you provide attribution on any derivative works or implementations. You may attribute either this repository or DripDropz Team. Please see LICENSE for the full details of the license.
- DripDropz: This platform was built out of the work performed on behalf of DripDropz to conduct on-chain governance
voting utilizing the $DRIP native asset. We have conducted several successful votes utilizing the techniques and
solutions described in this repository. It has always been our goal to give back to the Cardano community by open
sourcing solutions to common problems.
- More information and historic vote results available at: https://dripdropz.io/vote/
- SundaeSwap: The team at SundaeSwap has been hard at work on their own version of on-chain governance using Merkle Tree
roll-ups to the blockchain to provide vote auditability.
- More information available at: https://services.sundaeswap.finance/
- Voteaire: The team at Voteaire has created a simple and easy to use voting platform that is open and available today to
all ecosystem participants. This platform was built out as an expansion to the earlier work performed by members of
the DripDropz Team, the Voteaire Team, and other community participants on behalf of SPOCRA.
- Platform Available at: https://voteaire.io.
- Github: https://github.com/voteaire/voteaire-onchain-spec/
- SPOCRA: The Stake Pool Operators Collective Representation Assemble (SPOCRA) conducted the very first on-chain voting on Cardano in late 2020. The status of the group itself is unknown at the time of writing but much of the early work done by the community and members of the DripDropz team to support and conduct the first SPOCRA votes has helped to shape and grow our current platform.
- We are happy to add any other community-driven projects developing on-chain voting for the Cardano ecosystem. Please let us know about them in the GitHub Issues tab above, so we can add them!
- Make sure you have docker installed and running.
- Make sure you have make installed.
- Have sed installed
- Have your blockfrost project id ready to paste into your terminal
- Clone this repository:
git clone https://github.com/DripDropz/onchain-voting.git
- cd into the project directory:
cd onchain-voting
- Run
make init
to install all frontend and backend dependencies and start the docker services. - Run
make vite
to start the vite dev server and watch for changes. - When vite is up, In a separate terminal from the project root run
make wasm
to get wasm and vite to play nice. - Navigate to
http://localhost:8080/admin/dashboard
in your browser.
make dev
Runs docker services in the background,
installs composer dependencies, and generates application key.
make watch
Starts vite dev server and watches for changes.
make docker-setup
Runs docker services in the background.
make backend-setup
Installs laravel composer dependencies,
and generates application key.
make backend-install
Installs laravel composer dependencies.
make frontend-install
Delete and reinstall node_modules.
make frontend-clean
Delete node_modules, lock files and yarn cache.
make rm
remove all docker containers and volumes.
make down
shutdown all docker containers but keep volumes.
make up
start docker containers.
make test-backend
Run pest php tests.