Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Real Democracy

An on-chain liquid-democracy voting protocol — the chain, smart contracts, and zero-knowledge circuits that power JUX Foundation's voting system. Fork it, run it, and build your own governance surfaces against it.

This repository is a published mirror. It is generated from a private mono-repo by an automated export that strips secrets, operational runbooks, and internal history. It has no long-form git history by design and is force-pushed on each release (see CONTRIBUTING.md). It is a faithful snapshot of the protocol layer — not the day-to-day development repo.


What's in here

Path What it is
besu/ Hyperledger Besu network config — a QBFT proof-of-authority chain. Genesis, validator config template, and node scripts.
smc/ Solidity smart contracts (the voting, delegation, token, and role machinery) + a Hardhat project.
smc/circuits/, circuits/ Circuit sources (Circom + Cairo) for eligibility and vote proofs.
zk/vote_stark/ STARK proving/verification for anonymous vote tallies.

What is not here (and why)

This mirror deliberately excludes: validator private keys, chain state/data, operational runbooks (prod cut, node onboarding), internal design docs, prod data exports, and build artifacts. A forker generates their own keys and their own chain — see .env.example.

We will soon offer onboarding for validators and verifiers. This happens over a tailscale mesh network we are a permissioned chain after all!

Quick start (run against a local chain)

# 1. Configuration
cp .env.example .env      # then edit — set your own RPC + a freshly generated signer key

# 2. Stand up a local Besu node (dev)
cd besu && ./scripts/generate-keys.sh   # generates YOUR validator key (never commit it)
docker compose up -d

# 3. Compile + deploy the contracts
cd ../smc && npm install
npx hardhat compile
npx hardhat run scripts/deploy.js --network besu

Note (release blocker being resolved): a sanitized smc/hardhat.config.js — one that reads the signer strictly from the environment with no key literal — is being finalized upstream and will land in a subsequent release. Until then, add a minimal hardhat.config.js pointing networks.besu.url at your BESU_RPC_URL and accounts at [process.env.BLOCKCHAIN_SIGNER_PRIVATE_KEY].

Build on the chain, not just in this repo

The whole point of the clean split: you do not need JUX's application code to build against this protocol. Point any client — your own frontend, a bot, another DAO — at a node running this chain config and interact with the deployed contracts. This repo is the substrate; what you build on top is yours.

License

GNU AGPL-3.0. If you run a modified version of this software as a network service, you must make your modified source available to its users. Democracy stays open.

About

Liquid-democracy chain layer: Hyperledger Besu network, governance smart contracts, and the zero-knowledge anonymity layer. Public mirror of the JUX Foundation private monorepo.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages