enabling communal decision making
Nance is a governance platform for decentralized, token based communites. With the nance-interface
Nance allows your community members to:
- create proposals
- discuss them in your Discord
- keep community members up-to-date on proposal edits
- perform a react based poll in Discord
- publish to your Snapshot
- submit transactions to your Safe Wallet (include Juicebox project reconfigurations)
- search through past proposals
- and more!
When you use Nance all of your data is published and open on DoltHub, a version controlled mySQL database. This allows you to always access everything that Nance has access to, no CSV exports required!
We even keep our system database up-to-date on DoltHub here so you can use our config data if you'd like
Note: This repo contains both nance-api and nance-scheduler . For production we run both of these services on Railway.
In order to run your own instance of the nance-api you will need access to the following services:
- Infura RPC key
- Infura IPFS key
- HostedDolt instance
- Wallet private key to upload proposals to Snapshot
- Discord bot key
We run the nance-api on Railway, you can deploy your own instance of it by clicking the button below and filling in the required environment variables
npm run dev --> launches local instance of API on port 3003
npm run build:api --> compiles api to javascript and copies required assets into ./dist
npm run start:api --> runs compiled version of API
When you start the API the task scheduler is started as well. It is (a node-schedule based job runner) see scheduler/index.ts.
npm run db:setup
run local db in one terminal and launch API in dev mode in another
npm run db:local
npm run dev:local