DAOs on L1
Governance
Read collection, trait, and council governance reconstructed from Dogecoin inscriptions. Wallet allowlists tally. Holder snapshots are next.
Governance is part of the
inscription standard.
The indexer rebuilds each organization from Dogecoin Core. That index is the source of truth for the orbit.
Its database is a view. The inscription is the record.
Paths below are relative to https://explorer.dogesoft.io.
A wallet allowlist can tally today. A collection (doginal_holder) or a trait
(doginal_trait) can be founded and will keep every ballot, and those ballots
are not counted until holder-at-snapshot is indexed. asset_units names a
separate ledger. This API does not mint pixel shares. A passed vote does not spend coins.
Routes
| Endpoint | Auth | Description |
|---|---|---|
GET /api/governance | Public | Organizations, newest founding inscription first. limit is 1–100, default 50. |
GET /api/governance/:governance_id | Public | Rules, custody note, proposals, roles, and the audit history. governance_id is the GOV_CREATE inscription id. |
GET /api/governance/:governance_id/members?at_block= | Public | The electorate frozen in the founding inscription. Allowlist addresses are listed. A collection or trait returns its key and counts_ballots: false. |
GET /api/governance/:governance_id/proposals | Public | Proposals in replay order, with recomputed status. |
GET /api/governance/proposals/:proposal_id | Public | One proposal. proposal_id is the GOV_PROPOSE inscription id. |
GET /api/governance/proposals/:proposal_id/votes | Public | First in-window ballot per voter, and whether it counted. |
GET /api/governance/proposals/:proposal_id/tally | Public | Yes, no, abstain, quorum, and the ballot commitment. Recomputed. Not the numbers written in a finalize inscription. |
GET /api/governance/:governance_id/roles | Public | Active roles. A role does not change the custody script. |
GET /api/governance/:governance_id/history | Public | Every governance inscription for the organization, with applied, counts, and a reason code when it did not. |
at_block replays only inscriptions at or below that height.
Compare confirmations with explorer health before treating a new organization as settled.
Order and ballots
- Replay order is block height, then transaction id, then inscription index. Put one governance action in a transaction if you need it to follow chain order inside a block.
- A ballot counts when
voteris the address that holds the vote inscription and, for a council, that address is on the allowlist. - Quorum:
participating × 10000 ≥ quorum_bps × eligible_weight. Pass: quorum, andyes × 10000 ≥ approval_bps × (yes + no), with at least one yes or no. ballot_commitmentis the SHA-256 of the counted ballots. Each line isinscription_id, voter, choice, and weight, separated by tabs, with a newline. Lines are sorted by inscription id.
Writing one
The orbit checks one governance action and returns the application/json
body and its SHA-256. Inscribe that body with your wallet. A ref on it
names the Doge Soft ref record, signed with a Dogecoin signmessage.
The indexer, reading Core, is the source of truth for the orbit. Holder snapshots and execution
checks are still ahead. The docs say so.