Cert Command Line Guide
Bursa can be used to create certificates for stake pool operations, stake delegation, and Conway era governance.
Using Bursa to Create Certificates
Section titled “Using Bursa to Create Certificates”These Bursa commands can be used for generating various Cardano certificates.
| Certificate types: | |
|---|---|
| op-cert | - Operational certificate for block production |
| pool-registration | - Pool registration certificate |
| pool-retirement | - Pool retirement certificate |
| stake-registration | - Stake address registration |
| stake-deregistration | - Stake address deregistration |
| stake-delegation | - Stake delegation to a pool |
| drep-registration | - DRep registration (Conway) |
| drep-deregistration | - DRep deregistration (Conway) |
| vote-delegation | - Vote delegation (Conway) |
| committee-hot-auth | - Committee hot key auth (Conway) |
| committee-cold-resign | - Committee cold key resign (Conway) |
Create Certificates for Stake Pool Operation
Section titled “Create Certificates for Stake Pool Operation”The op-cert command can be used to generate an operational certificate, aka node.cert, linking a KES key to a pool cold key. Stake Pools need to create a new node.cert when rotating their KES key. So SPOs can use Bursa to create a new node.cert with their new kes.vkey, cold key and kes period.
🔁 Output format is compatible with cardano-cli operational certificates.
Required inputs:
--kes-vkeyKES verification key file (bech32 or hex format)
--cold-skeyPool cold signing key file (bech32 or hex format)
--counterCertificate sequence number (must increment with each new cert)
--kes-periodKES period at certificate creation time
✅ The counter value must be incremented each time a new operational certificate is created, if and only if, you minted a block with old KES key. The KES period is the current slot divided by the slots per KES period (typically 129600 slots = ~36 hours on mainnet).
Output format of node.cert is compatible with cardano-cli operational certificates.
To create node.cert we can run the following command.
⚠️ Please adjust the paths to your kes and cold key. Also please adjust your counter and kes period below.
./bursa cert opcert --kes-vkey /path/kes.vkey --cold-skey /path/cold.skey --counter 0 --kes-period 200 --out node.certGenerate a Pool Registration Certificate
Section titled “Generate a Pool Registration Certificate”The pool registration certificate registers a new stake pool or updates an existing registration on the Cardano blockchain.
Required inputs:
--cold-vkeyPool cold verification key file--vrf-vkeyVRF verification key file--pledgePledge amount in lovelace--costFixed cost per epoch in lovelace--marginPool margin (0.0 to 1.0)--reward-accountReward account address (bech32 stake address)
Optional inputs:
--metadata-urlPool metadata URL--metadata-hashPool metadata hash (hex)
Output format is compatible with cardano-cli certificates.
⚠️ Please adjust paths below.
./bursa cert pool-registration \ --cold-vkey /path/cold.vkey --vrf-vkey /path/vrf.vkey \ --pledge 1000000000 --cost 340000000 --margin 0.01 \ --reward-account stake1... \ --metadata-url "https://example.com/pool.json" \ --metadata-hash "abc123..." --out pool-reg.certGenerate a Pool Retirement Certificate
Section titled “Generate a Pool Retirement Certificate”The pool retirement certificate signals that a stake pool will retire at the specified epoch boundary.
Required inputs:
--cold-vkeyPool cold verification key file--epochRetirement epoch
Output format is compatible with cardano-cli certificates.
⚠️ Please adjust the paths to your cold key.
./bursa cert pool-retirement --cold-vkey /path/cold.vkey \ --epoch 300 --out pool-retire.certCreate a Stake Address Registration Certificate
Section titled “Create a Stake Address Registration Certificate”This certificate registers a stake address on-chain, which is required before the stake key can be used for delegation or reward withdrawal.
Output format is a cardano-cli compatible JSON text envelope.
⚠️ Please adjust path below.
./bursa cert stake-registration \ --stake-vkey /path/stake.vkey --out stake-reg.certCreate a Stake Address Deregistration Certificate
Section titled “Create a Stake Address Deregistration Certificate”This certificate deregisters a stake address, returning the deposit and removing the stake key from on-chain registration.
Output format is a cardano-cli compatible JSON text envelope.
⚠️ Please adjust path below.
./bursa cert stake-deregistration \ --stake-vkey /path/stake.vkey --out stake-dereg.certCreate a Stake Delegation Certificate
Section titled “Create a Stake Delegation Certificate”This certificate delegates stake from a stake key to a specific stake pool identified by its pool ID (bech32 or hex format).
Output format is a cardano-cli compatible JSON text envelope.
⚠️ Please adjust path below.
./bursa cert stake-delegation \ --stake-vkey /path/stake.vkey \ --pool-id pool1... \ --out stake-deleg.certCreate a DRep Registration Certificate (Conway)
Section titled “Create a DRep Registration Certificate (Conway)”This certificate registers a Delegated Representative (DRep) on-chain, which allows the DRep to receive vote delegations and participate in governance actions.
A deposit amount in lovelace is required. An optional anchor URL and hash can be provided for DRep metadata.
Output format is a cardano-cli compatible JSON text envelope.
Register DRep with Anchor Metadata Example
⚠️ Please adjust path below.
./bursa cert drep-registration \ --drep-vkey /path/drep.vkey \ --deposit 500000000 \ --anchor-url https://example.com/drep.json \ --anchor-hash abc123... \ --out drep-reg.certCreate a DRep Deregistration Certificate (Conway)
Section titled “Create a DRep Deregistration Certificate (Conway)”This certificate deregisters a DRep from on-chain governance, returning the deposit refund amount.
Output format is a cardano-cli compatible JSON text envelope.
⚠️ Please adjust path below.
./bursa cert drep-deregistration \ --drep-vkey /path/drep.vkey \ --deposit-refund 500000000 \ --out drep-dereg.certCreate a Vote Delegation Certificate (Conway)
Section titled “Create a Vote Delegation Certificate (Conway)”This certificate delegates voting power from a stake key to a DRep, or to special voting options (always-abstain or always-no-confidence).
| Exactly one delegation target must be specified: | |
|---|---|
| --drep-vkey-hash | Delegate to a DRep by key hash (hex) |
| --drep-id | Delegate to a DRep by ID (bech32 or hex) |
| --always-abstain | Always abstain from voting |
| --always-no-confidence | Always vote no confidence |
Output format is a cardano-cli compatible JSON text envelope.
⚠️ Please adjust path below.
Delegate to a specific DRep
Section titled “Delegate to a specific DRep” ./bursa cert vote-delegation \ --stake-vkey /path/stake.vkey \ --drep-id drep1... \ --out vote-deleg.certAlways abstain
Section titled “Always abstain” ./bursa cert vote-delegation \ --stake-vkey /path/stake.vkey \ --always-abstain \ --out vote-deleg.certCreate a Committee Hot Key Authorization Certificate (Conway)
Section titled “Create a Committee Hot Key Authorization Certificate (Conway)”This certificate authorizes a hot key to act on behalf of a committee cold key for governance voting. The cold key remains offline while the hot key participates in governance.
Output format is a cardano-cli compatible JSON text envelope.
⚠️ Please adjust paths below.
./bursa cert committee-hot-auth \ --cold-vkey /path/cc-cold.vkey \ --hot-vkey /path/cc-hot.vkey \ --out cc-hot-auth.certCreate a Committee Cold Key Resignation Certificate (Conway)
Section titled “Create a Committee Cold Key Resignation Certificate (Conway)”This certificate resigns a committee member by their cold key. An optional anchor URL and hash can be provided to reference a rationale document.
Output format is a cardano-cli compatible JSON text envelope.
⚠️ Please adjust paths below.
Resign Without Anchor
Section titled “Resign Without Anchor” ./bursa cert committee-cold-resign \ --cold-vkey /path/cc-cold.vkey \ --out cc-resign.certResign with Anchor Rationale
Section titled “Resign with Anchor Rationale” ./bursa cert committee-cold-resign \ --cold-vkey /path/cc-cold.vkey \ --anchor-url https://example.com/resign.json \ --anchor-hash abc123... \ --out cc-resign.certExplore other Bursa Commands
Bursa Command Categories
- wallet - Commands for generating wallet and the files needed to manage a Cardano wallet
- api - Commands for running API
- cert - Commands for generating various Cardano certificates
- hash - Commands for generating cryptographic hashes used in Cardano
- script - Commands for multi-signature operations
- address - Commands for working with Cardano addresses
- key - Commands for deriving individual keys from a mnemonic