Permissionless on-chain governance for every Soroban protocol.
NebGov is the canonical governance framework for the Stellar ecosystem — a modular, auditable, and composable set of smart contracts that any Soroban protocol can plug into to add on-chain governance.
| Feature | Description |
|---|---|
| Proposal lifecycle | Create, vote, queue, and execute on-chain proposals |
| Timelock execution | Mandatory delay between passing and execution |
| Token-weighted voting | Snapshot voting power from any SEP-41 token |
| Delegation | Delegate voting power to any address, in full or split by percentage (docs) |
| Multi-sig treasury | DAO-controlled treasury with configurable threshold |
| Treasury yield strategies | Governance-controlled allocation of idle treasury funds to whitelisted yield adapters (docs) |
| Permissionless factory | Deploy your own governance instance in one call |
| Conviction voting | Self-executing voting based on staking duration and amount (docs) |
| Optimistic governance | Fast-track proposals that execute unless challenged (docs) |
| Proposal bonds | Refundable proposer bonds with governance-triggered slashing (docs) |
| Gasless signaling | Off-chain polling with on-chain result anchoring (docs) |
| Package | Description |
|---|---|
contracts/governor |
Core governance contract — proposal lifecycle, voting, execution |
contracts/timelock |
Delayed execution controller |
contracts/token-votes |
Voting power with checkpointing and delegation |
contracts/governor-factory |
Permissionless governor deployer |
contracts/treasury |
Multi-sig treasury with budget streams |
contracts/token-votes-wrapper |
SEP-41 token wrapper that adds governance voting |
contracts/co-sponsorship |
Pool voting power to meet the proposal threshold |
contracts/liquidity |
Protocol-owned liquidity pools (constant-product AMM) |
contracts/proposal-bonds |
Refundable proposer bonds with governance-triggered slashing |
contracts/optimistic-governor |
Object-to-block optimistic proposal track |
contracts/conviction-voting |
Self-executing conviction voting |
contracts/treasury-strategies |
Governance-controlled yield allocation for idle treasury funds |
contracts/signal-anchor |
On-chain anchoring of off-chain signaling poll results |
contracts/vote-escrow |
Time-locked voting power boost (vote-escrow model) |
contracts/voting-rewards |
Epoch-based, Merkle-claimed voting participation rewards |
| Package | Description |
|---|---|
sdk/ |
TypeScript SDK (@nebgov/sdk) |
app/ |
Next.js governance dashboard |
backend/ |
Off-chain REST API (notifications, relayer, signaling) |
packages/indexer/ |
Off-chain governance event indexer (@nebgov/indexer) |
packages/cli/ |
Terminal-based governance workflows (@nebgov/cli) |
| Package | Description |
|---|---|
tools/sim/ |
Rust governance simulation harness (nebgov-sim) |
tools/simulation/ |
Lifecycle simulation against a mock Soroban RPC (@nebgov/simulation) |
Get started by deploying your first NebGov DAO to the Stellar testnet in under 10 minutes:
👉 Deploy your first DAO on Stellar with NebGov
Bring up Postgres + indexer + backend + app with one command:
cp .env.example .env
# Set GOVENOR_ADDRESS in .env (required)
docker compose up --buildThen open:
- App:
http://localhost:3000 - Backend health:
http://localhost:3001/health - Indexer health:
http://localhost:3002/health
For full setup instructions and contribution guidelines, see CONTRIBUTING.md.
For a step-by-step local development guide, see docs/local-development.md.
See docs/architecture.md for the full design overview.
- docs/deployment.md — full production deployment walkthrough for contracts, backend, indexer, and frontend
- docs/parameter-guide.md — safe governance parameter ranges and preset configurations
- docs/security.md — treasury reentrancy analysis and contract security notes
- docs/deployments.md — official contract addresses for all networks
- docs/troubleshooting.md — RPC, wallet, transaction, and contract error reference
propose() → Governor → [voting period] → queue() → Timelock → execute()
↓
Token Votes (snapshot voting power)
See CONTRIBUTING.md to get started.
Issues are labeled by complexity:
complexity: trivialcomplexity: mediumcomplexity: high
- Reflector Oracle — dynamic quorum based on token price
- Stellar Wallets Kit — multi-wallet support in the frontend
- OpenZeppelin Contracts for Stellar — composable token standards
MIT
If you discover a vulnerability, please review SECURITY.md and report it privately instead of opening a public issue.