Cardano On-Chain Governance Guide
Help developers, DReps, SPOs, and ADA holders understand and participate in Cardano's on-chain governance system introduced by CIP-1694 in the Conway era.
When to use
- Developer needs to integrate governance features into a dApp
- Someone wants to understand how CIP-1694 governance works
- Registering as a DRep or delegating voting power
- Building governance-aware tools or dashboards
- Submitting or voting on governance actions
- Understanding the Constitutional Committee, DReps, and SPO roles
- Practicing governance on preprod/preview (or SanchoNet for bleeding-edge features)
When NOT to use
- General smart contract development (use Aiken/Plutus skills)
- Stake pool setup or configuration (separate topic)
- Token minting or NFT creation
- Basic wallet integration without governance (use
connect-wallet skill)
Key principles
- Three governance bodies share power. Constitutional Committee, DReps, and SPOs each have defined voting roles. No single body controls governance.
- Every ADA holder participates. Either directly as a DRep or by delegating to one. Abstain and No-Confidence are also valid delegation choices.
- The Constitution constrains governance. All actions must be constitutional. The Constitutional Committee certifies this.
- Governance actions have specific types. Each type has its own voting thresholds and required approvals.
- Tools are maturing. GovTool, SanchoNet, and SDK support are actively developing. Check current status before advising.
Workflow
Step 1: Identify the role
Ask the developer (if not already clear):
- What is your role? (developer | drep | stake-pool-operator | ada-holder)
- What do you want to do? (understand governance | vote | build governance features | register as DRep)
Step 2: Search Bundled Documentation
Search the bundled documentation for relevant content:
${CLAUDE_SKILL_DIR}/../../docs/sources/cips/ - CIP specifications (CIP-1694, CIP-95)
${CLAUDE_SKILL_DIR}/../../docs/sources/sanchonet/ - SanchoNet governance testnet docs
${CLAUDE_SKILL_DIR}/../../docs/sources/govtool/ - GovTool docs
Step 3: Explain how governance works
Reference the CIP-1694 summary for detailed structure:
File: skills/governance-guide/references/cip-1694-summary.md
Quick overview
Cardano governance has three pillars:
- Delegated Representatives (DReps): ADA holders who vote on governance actions. Any ADA holder can become a DRep or delegate to one.
- Stake Pool Operators (SPOs): Vote on specific governance actions (hard forks, no-confidence, new committees, security-relevant protocol parameters).
- Constitutional Committee (CC): A group that certifies governance actions are constitutional. Does not propose or select -- only approves/rejects constitutionality.
Governance action types
| Action |
DRep vote |
SPO vote |
CC vote |
| Motion of no-confidence |
Yes |
Yes |
No |
| New Constitutional Committee |
Yes |
Yes |
No |
| Update Constitution |
Yes |
No |
Yes |
| Hard fork initiation |
Yes |
Yes |
Yes |
| Protocol parameter changes |
Yes |
Security-relevant only* |
Yes |
| Treasury withdrawal |
Yes |
No |
Yes |
| Info action |
Yes |
Yes |
Yes |
* Changes to security-relevant parameters (block/tx sizes, fees,
utxoCostPerByte, govActionDeposit, and similar) require an additional SPO
vote with its own threshold (Q5, ~0.51) — see CIP-1694.
Step 4: Role-specific guidance
For developers
Integrating governance into a dApp:
Read governance state: Query current proposals, DRep list, voting results
- Use Blockfrost, Koios, or Ogmios governance endpoints
- Governance state is on-chain in Conway era
Build governance transactions: Use CIP-95 wallet extensions
- Register as DRep:
dRepRegistration certificate
- Vote on action:
votingProcedure in transaction body
- Delegate vote:
voteDelegation certificate
- Submit proposal:
proposalProcedure in transaction body
CIP-95 wallet integration: Extension to CIP-30 for governance
getRegisteredPubStakeKeys() -- get stake keys
getPubDRepKey() -- get DRep key
- Enables signing governance transactions in browser wallets
SDK support:
- Mesh SDK: Governance transaction builders available
- Evolution SDK: Conway-era governance — DRep registration via
.registerDRep({ drepCredential }), voting via .vote({ votingProcedures }), DRep delegation, proposals, and committee operations
- cardano-cli: Full governance command set (
cardano-cli latest governance ...; the era-pinned conway group also still works, but prefer latest)
For DReps
Getting started as a DRep:
- Register: Submit a DRep registration certificate with a deposit (currently 500 ADA)
- Set metadata: Publish a metadata document (name, bio, motivations) to a URL
- Vote: Review and vote on governance actions through GovTool or CLI
- Communicate: Share your voting rationale with delegators
- Stay active: DReps must vote periodically to remain active (inactivity period defined by protocol)
Tools for DReps:
- GovTool (https://gov.tools): Web interface for DRep registration, voting, delegation
- cardano-cli: Command-line governance operations
- Preprod/Preview: Practice governance flows with test ADA (SanchoNet only for bleeding-edge features)
For stake pool operators
SPO governance participation:
- SPOs cast votes actively — a vote is a transaction signed with the pool cold key; pool registration alone casts nothing
- Optionally, delegate the pool's reward account to a pre-defined voting option (Abstain / No-Confidence) as a standing default — this does NOT apply to hard-fork actions, which always need an explicit vote
- Vote on: hard fork initiation, motion of no-confidence, new CC members, security-relevant parameter changes, info actions
- Voting weight proportional to delegated stake
- Use cardano-cli or SPO-specific tools to cast votes
For ADA holders
Participating in governance:
- Delegate to a DRep: Choose a DRep whose values align with yours
- Delegate to Abstain: Opt out of governance (your stake does not count toward thresholds)
- Delegate to No-Confidence: Signal dissatisfaction with the Constitutional Committee
- Become a DRep yourself: Register and vote directly
- Use GovTool: Web interface for delegation and exploration
Step 5: Tools and resources
GovTool
- Web-based governance participation tool
- Features: DRep registration, delegation, proposal viewing, voting
- URL: https://gov.tools
- Supports mainnet and testnets
Test environments
- Conway governance is live on mainnet (since 2024) and fully available on
preprod and preview — practice DRep registration, voting, and
proposals there with faucet test ADA
- SanchoNet is the bleeding-edge governance testnet; use it only for
features not yet on the public testnets
cardano-cli governance commands
# Register as a DRep
cardano-cli latest governance drep registration-certificate \
--drep-verification-key-file drep.vkey \
--key-reg-deposit-amt 500000000 \
--out-file drep-reg.cert
# Create a vote
cardano-cli latest governance vote create \
--yes \
--governance-action-tx-id <tx-id> \
--governance-action-index 0 \
--drep-verification-key-file drep.vkey \
--out-file vote.json
# Query governance state
cardano-cli latest query gov-state
cardano-cli latest query drep-state --all-dreps
Step 6: SDK integration examples
Querying governance data
// Using Blockfrost
const proposals = await blockfrost.governanceProposals();
const dreps = await blockfrost.governanceDReps();
const votes = await blockfrost.governanceProposalVotes(proposalId);
# Using Koios
import requests
dreps = requests.get("https://api.koios.rest/api/v1/drep_list").json()
proposals = requests.get("https://api.koios.rest/api/v1/proposal_list").json()
Building governance transactions
// Using Mesh SDK
import { MeshTxBuilder } from "@meshsdk/core";
// DRep registration
const tx = new MeshTxBuilder({ fetcher, submitter });
tx.drepRegistrationCertificate(drepKeyHash, deposit);
// ... build, sign, submit
Step 7: Common issues
- Deposit requirements: DRep registration and proposals require deposits (returned when deregistered/enacted)
- Voting thresholds: Different action types have different thresholds (see CIP-1694 summary)
- Era mismatch: Governance transactions require Conway era; ensure node and tools are up to date
- Metadata hosting: DRep and proposal metadata must be hosted at a stable URL with a matching hash
- Wallet support: Not all wallets support CIP-95 yet; check wallet compatibility
References
1---2name: governance-guide3description: Guides Cardano on-chain governance under CIP-1694 and the Conway era. Triggers: "governance", "DRep", "CIP-1694", "Conway era", "governance action", "vote on proposal", "constitutional committee", "treasury withdrawal", "GovTool".4---56<!-- Documentation lookup path: ${CLAUDE_SKILL_DIR}/../../docs/sources/ -->78# Cardano On-Chain Governance Guide910Help developers, DReps, SPOs, and ADA holders understand and participate in Cardano's on-chain governance system introduced by CIP-1694 in the Conway era.1112## When to use1314- Developer needs to integrate governance features into a dApp15- Someone wants to understand how CIP-1694 governance works16- Registering as a DRep or delegating voting power17- Building governance-aware tools or dashboards18- Submitting or voting on governance actions19- Understanding the Constitutional Committee, DReps, and SPO roles20- Practicing governance on preprod/preview (or SanchoNet for bleeding-edge features)2122## When NOT to use2324- General smart contract development (use Aiken/Plutus skills)25- Stake pool setup or configuration (separate topic)26- Token minting or NFT creation27- Basic wallet integration without governance (use `connect-wallet` skill)2829## Key principles30311. **Three governance bodies share power.** Constitutional Committee, DReps, and SPOs each have defined voting roles. No single body controls governance.322. **Every ADA holder participates.** Either directly as a DRep or by delegating to one. Abstain and No-Confidence are also valid delegation choices.333. **The Constitution constrains governance.** All actions must be constitutional. The Constitutional Committee certifies this.344. **Governance actions have specific types.** Each type has its own voting thresholds and required approvals.355. **Tools are maturing.** GovTool, SanchoNet, and SDK support are actively developing. Check current status before advising.3637## Workflow3839### Step 1: Identify the role4041Ask the developer (if not already clear):4243- **What is your role?** (developer | drep | stake-pool-operator | ada-holder)44- **What do you want to do?** (understand governance | vote | build governance features | register as DRep)4546### Step 2: Search Bundled Documentation4748Search the bundled documentation for relevant content:49- `${CLAUDE_SKILL_DIR}/../../docs/sources/cips/` - CIP specifications (CIP-1694, CIP-95)50- `${CLAUDE_SKILL_DIR}/../../docs/sources/sanchonet/` - SanchoNet governance testnet docs51- `${CLAUDE_SKILL_DIR}/../../docs/sources/govtool/` - GovTool docs5253### Step 3: Explain how governance works5455Reference the CIP-1694 summary for detailed structure:5657```58File: skills/governance-guide/references/cip-1694-summary.md59```6061#### Quick overview6263Cardano governance has three pillars:64651. **Delegated Representatives (DReps)**: ADA holders who vote on governance actions. Any ADA holder can become a DRep or delegate to one.662. **Stake Pool Operators (SPOs)**: Vote on specific governance actions (hard forks, no-confidence, new committees, security-relevant protocol parameters).673. **Constitutional Committee (CC)**: A group that certifies governance actions are constitutional. Does not propose or select -- only approves/rejects constitutionality.6869#### Governance action types7071| Action | DRep vote | SPO vote | CC vote |72|---|---|---|---|73| Motion of no-confidence | Yes | Yes | No |74| New Constitutional Committee | Yes | Yes | No |75| Update Constitution | Yes | No | Yes |76| Hard fork initiation | Yes | Yes | Yes |77| Protocol parameter changes | Yes | Security-relevant only* | Yes |78| Treasury withdrawal | Yes | No | Yes |79| Info action | Yes | Yes | Yes |8081\* Changes to security-relevant parameters (block/tx sizes, fees,82`utxoCostPerByte`, `govActionDeposit`, and similar) require an **additional SPO83vote** with its own threshold (`Q5`, ~0.51) — see CIP-1694.8485### Step 4: Role-specific guidance8687#### For developers8889**Integrating governance into a dApp:**90911. **Read governance state**: Query current proposals, DRep list, voting results92 - Use Blockfrost, Koios, or Ogmios governance endpoints93 - Governance state is on-chain in Conway era94952. **Build governance transactions**: Use CIP-95 wallet extensions96 - Register as DRep: `dRepRegistration` certificate97 - Vote on action: `votingProcedure` in transaction body98 - Delegate vote: `voteDelegation` certificate99 - Submit proposal: `proposalProcedure` in transaction body1001013. **CIP-95 wallet integration**: Extension to CIP-30 for governance102 - `getRegisteredPubStakeKeys()` -- get stake keys103 - `getPubDRepKey()` -- get DRep key104 - Enables signing governance transactions in browser wallets1051064. **SDK support**:107 - **Mesh SDK**: Governance transaction builders available108 - **Evolution SDK**: Conway-era governance — DRep registration via `.registerDRep({ drepCredential })`, voting via `.vote({ votingProcedures })`, DRep delegation, proposals, and committee operations109 - **cardano-cli**: Full governance command set (`cardano-cli latest governance ...`; the era-pinned `conway` group also still works, but prefer `latest`)110111#### For DReps112113**Getting started as a DRep:**1141151. **Register**: Submit a DRep registration certificate with a deposit (currently 500 ADA)1162. **Set metadata**: Publish a metadata document (name, bio, motivations) to a URL1173. **Vote**: Review and vote on governance actions through GovTool or CLI1184. **Communicate**: Share your voting rationale with delegators1195. **Stay active**: DReps must vote periodically to remain active (inactivity period defined by protocol)120121**Tools for DReps:**122- **GovTool** (https://gov.tools): Web interface for DRep registration, voting, delegation123- **cardano-cli**: Command-line governance operations124- **Preprod/Preview**: Practice governance flows with test ADA (SanchoNet only for bleeding-edge features)125126#### For stake pool operators127128**SPO governance participation:**1291301. SPOs cast votes actively — a vote is a transaction signed with the pool cold key; pool registration alone casts nothing1312. Optionally, delegate the pool's reward account to a pre-defined voting option (Abstain / No-Confidence) as a standing default — this does NOT apply to hard-fork actions, which always need an explicit vote1323. Vote on: hard fork initiation, motion of no-confidence, new CC members, security-relevant parameter changes, info actions1334. Voting weight proportional to delegated stake1345. Use cardano-cli or SPO-specific tools to cast votes135136#### For ADA holders137138**Participating in governance:**1391401. **Delegate to a DRep**: Choose a DRep whose values align with yours1412. **Delegate to Abstain**: Opt out of governance (your stake does not count toward thresholds)1423. **Delegate to No-Confidence**: Signal dissatisfaction with the Constitutional Committee1434. **Become a DRep yourself**: Register and vote directly1445. **Use GovTool**: Web interface for delegation and exploration145146### Step 5: Tools and resources147148#### GovTool149150- Web-based governance participation tool151- Features: DRep registration, delegation, proposal viewing, voting152- URL: https://gov.tools153- Supports mainnet and testnets154155#### Test environments156157- Conway governance is live on **mainnet** (since 2024) and fully available on158 **preprod** and **preview** — practice DRep registration, voting, and159 proposals there with faucet test ADA160- **SanchoNet** is the bleeding-edge governance testnet; use it only for161 features not yet on the public testnets162163#### cardano-cli governance commands164165```bash166# Register as a DRep167cardano-cli latest governance drep registration-certificate \168 --drep-verification-key-file drep.vkey \169 --key-reg-deposit-amt 500000000 \170 --out-file drep-reg.cert171172# Create a vote173cardano-cli latest governance vote create \174 --yes \175 --governance-action-tx-id <tx-id> \176 --governance-action-index 0 \177 --drep-verification-key-file drep.vkey \178 --out-file vote.json179180# Query governance state181cardano-cli latest query gov-state182cardano-cli latest query drep-state --all-dreps183```184185### Step 6: SDK integration examples186187#### Querying governance data188189```typescript190// Using Blockfrost191const proposals = await blockfrost.governanceProposals();192const dreps = await blockfrost.governanceDReps();193const votes = await blockfrost.governanceProposalVotes(proposalId);194```195196```python197# Using Koios198import requests199dreps = requests.get("https://api.koios.rest/api/v1/drep_list").json()200proposals = requests.get("https://api.koios.rest/api/v1/proposal_list").json()201```202203#### Building governance transactions204205```typescript206// Using Mesh SDK207import { MeshTxBuilder } from "@meshsdk/core";208209// DRep registration210const tx = new MeshTxBuilder({ fetcher, submitter });211tx.drepRegistrationCertificate(drepKeyHash, deposit);212// ... build, sign, submit213```214215### Step 7: Common issues216217- **Deposit requirements**: DRep registration and proposals require deposits (returned when deregistered/enacted)218- **Voting thresholds**: Different action types have different thresholds (see CIP-1694 summary)219- **Era mismatch**: Governance transactions require Conway era; ensure node and tools are up to date220- **Metadata hosting**: DRep and proposal metadata must be hosted at a stable URL with a matching hash221- **Wallet support**: Not all wallets support CIP-95 yet; check wallet compatibility222223## References224225- `skills/governance-guide/references/cip-1694-summary.md` -- CIP-1694 structure and voting thresholds226- CIP-1694: https://github.com/cardano-foundation/CIPs/tree/master/CIP-1694227- CIP-95: https://github.com/cardano-foundation/CIPs/tree/master/CIP-0095228- GovTool: https://gov.tools229- SanchoNet: https://sancho.network230- Intersect governance: https://www.intersectmbo.org