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 (a node-schedule based job runner). 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
npm run build:scheduler
--> compiles scheduler to javascript
npm run start:scheduler
--> runs compiled version of scheduler
This will load a JSON formatted calendar for each organization from our nance_sys DoltDB and schedule appropriate tasks.
npm run db:setup
run local db and launch API in dev mode
npm run dev:db:local