Docs / Data & markets / Governance

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

EndpointAuthDescription
GET /api/governancePublicOrganizations, newest founding inscription first. limit is 1–100, default 50.
GET /api/governance/:governance_idPublicRules, custody note, proposals, roles, and the audit history. governance_id is the GOV_CREATE inscription id.
GET /api/governance/:governance_id/members?at_block=PublicThe 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/proposalsPublicProposals in replay order, with recomputed status.
GET /api/governance/proposals/:proposal_idPublicOne proposal. proposal_id is the GOV_PROPOSE inscription id.
GET /api/governance/proposals/:proposal_id/votesPublicFirst in-window ballot per voter, and whether it counted.
GET /api/governance/proposals/:proposal_id/tallyPublicYes, no, abstain, quorum, and the ballot commitment. Recomputed. Not the numbers written in a finalize inscription.
GET /api/governance/:governance_id/rolesPublicActive roles. A role does not change the custody script.
GET /api/governance/:governance_id/historyPublicEvery 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 voter is 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, and yes × 10000 ≥ approval_bps × (yes + no), with at least one yes or no.
  • ballot_commitment is the SHA-256 of the counted ballots. Each line is inscription_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.