Stellar Governance Guardians
Read Soroban governance on Stellar without trusting a UI: decode the raw
ScVal payloads, see which published risk rule matched, index the events into
Postgres, and read delegate behaviour as raw counts plus formulas.
The suite is three public repositories with a strict dependency direction:
soroban-governance-parser → governance-event-indexer → delegate-portal-dashboard
(Rust + WASM) (TypeScript) (Next.js)
| Repository | What it does today | Status |
|---|---|---|
| parser | Decodes ScVal → JSON; extracts and parses contractspecv0; classifies risk from a published rule table; decodes Script3 proposals and events; models dry-run output from committed captures; ships a WASM package; exposes sgp simulate for validated transaction envelopes. | Script3 adapter implemented. OpenZeppelin adapter planned. |
| indexer | Ingests raw governance events from the public testnet RPC into Postgres with cursors, ≤1000-ledger windows, retention-gap recording, fixture replay, and a read-only GraphQL health/raw-event connection. | Ingestion and initial GraphQL surface built. Decode, reconciliation and deploy remain planned. |
| dashboard | Decodes a pasted base64 ScVal in the browser with the pinned parser WASM; shows indexer health and the exact interface pins. | Scaffold merged: /, /simulate, /status. Data pages are planned. |
Who this is for
- Indexer and dashboard builders who need decoded governance payloads without reimplementing governor logic.
- Delegate-tooling authors who want risk classifications that expose the rule that fired instead of a composite score.
- Anyone who needs to read a proposal, a vote or a tally from raw chain data and check the reading themselves.
How this site is built
Everything on this site is either a page in
docs-site/src/ or generated from a committed source file by a script in
docs-site/scripts/:
| Page | Generated from |
|---|---|
| Risk rules | crates/core/src/risk.rs |
| CLI reference | the sgp binary’s own --help output |
| API reference | schemas/governance-v1.graphql |
| Evidence | deployments.json |
| Upstream pins | docs-site/sources.lock |
CI rebuilds every generated page and fails on any diff, so a page cannot
describe a rule table, an export list, a schema or a contract that the source
files do not contain. Prose claims are checked by
docs-site/scripts/check-docs-claims.py.
What is not built
The honest limitations page aggregates every gap across the three repositories — including the OpenZeppelin adapter, decoded indexer tables, reconciliation, deployment, and the dashboard’s planned data pages. Nothing on this site describes a planned feature as if it existed; planned pages carry a Status: planned banner.
License
MIT, in all three repositories.