L1-native governance for eight genesis brand domains — soulbound-weighted votes, on-chain treasury, signed proposals. Not upgradeable EVM GovernorBravo as canonical truth.
FTH operates multiple live brand surfaces (Academy, TTN, Exchange OS, real estate, solar). Each needs governance without capturable upgradeable contracts — where a token dump or proxy admin cannot seize namespace or treasury policy overnight.
dao/registry/genesis_brands.json map Exchange OS, Academy, TTN, and platform domains to L1 soulbound issuers — not a generic DAO template.
governance + state crates — SQLite in dao-service is audit mirror only.
dao_submit_proposal, dao_cast_vote, dao_execute require Ed25519 signatures — verifiable in signed_dao_submit.rs.
L1 at :9944 is source of truth. Python orchestration mirrors for dashboards; EVM Governor stubs in dao/contracts/ are Phase 2 only.
┌─────────────────────────────────────────────────────────────────┐
│ SNP (identity roots) x402 (agent commerce) │
└────────────┬───────────────────────────────┬────────────────────┘
│ │
▼ ▼
┌──────────────────────── TROPTIONS L1 :9944 ─────────────────────┐
│ governance crate · soulbound votes · timelock · treasury RPC │
│ dao_getProposals · dao_submit_proposal · dao_cast_vote · execute │
└────────────┬──────────────────────────────────────────────────────┘
│ JSON-RPC read + signed submit
▼
┌──────────────── dao-service :8093 ────────────────────────────────┐
│ FastAPI · WebSocket /ws · SQLite audit mirror · L1 light client │
│ serves frontends/dao-dashboard (reads L1 directly in app.js) │
└───────────────────────────────────────────────────────────────────┘
│
▼
draft → active → passed|failed → [timelock 720 blocks] → executed
| Method | Role |
|---|---|
dao_getProposals | List on-chain proposals |
dao_getVotes | Votes for a proposal_id |
treasury_getBalance | Treasury by chain / asset |
get_soulbound_credentials | Credential set for voter weight |
| Method | Role |
|---|---|
dao_submit_proposal | Create proposal on L1 |
dao_cast_vote | Soulbound-weighted vote (for / against) |
dao_execute | Execute after timelock |
HTTP mirror at GET/POST /dao/* on port 8093. Sign payloads with scripts/l1-gov-sign.py.
The interactive dashboard is not embedded on GitHub Pages (no public TLS to your operator host). Run locally after bootstrap:
Run locally: .\scripts\bootstrap-dao.ps1 then open http://127.0.0.1:8093
Static UI: frontends/dao-dashboard/ — proposals, treasury, L1 live panel via WebSocket.
| Domain | Purpose |
|---|---|
| TROPTIONSXCHANGE.IO | Exchange OS |
| TROPTIONS-UNIVERSITY.COM | FTH Academy |
| TROPTIONSTelevisionNetwork.Tv | TTN Sports |
| HOTRCW.COM | TTN |
| TROPTIONS.IO / TROPTIONS.ORG | Platform |
| TheRealEstateConnections.com | Real Estate |
| Green-N-Go.Solar | Solar Platform |
| Surface | State |
|---|---|
| L1 + dao-service (PM2) | LIVE on operator host |
| Public investor / docs | LIVE — this page on GitHub Pages /dao/ |
dao.troptions.org | PIPELINE — nginx template ready; DNS not pointed |
API_KEYS / signed relayer, not open submit from internetdao.troptions.org does not resolve — use Pages /dao/ until DNS cutover