Skip to content

Cert Command Line Guide

Bursa can be used to create certificates for stake pool operations, stake delegation, and Conway era governance.

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-vkey       KES verification key file (bech32 or hex format)
--cold-skey     Pool cold signing key file (bech32 or hex format)
--counter        Certificate sequence number (must increment with each new cert)
--kes-period   KES 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.cert

The pool registration certificate registers a new stake pool or updates an existing registration on the Cardano blockchain.

Required inputs:

  • --cold-vkey Pool cold verification key file
  • --vrf-vkey VRF verification key file
  • --pledge Pledge amount in lovelace
  • --cost Fixed cost per epoch in lovelace
  • --margin Pool margin (0.0 to 1.0)
  • --reward-account Reward account address (bech32 stake address)

Optional inputs:

  • --metadata-url Pool metadata URL
  • --metadata-hash Pool 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.cert

The pool retirement certificate signals that a stake pool will retire at the specified epoch boundary.

Required inputs:

  • --cold-vkey Pool cold verification key file
  • --epoch Retirement 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.cert

Create 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.cert

Create 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.cert

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.cert

Create 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.cert

Create 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.cert

Create 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.

./bursa cert vote-delegation \
--stake-vkey /path/stake.vkey \
--drep-id drep1... \
--out vote-deleg.cert
./bursa cert vote-delegation \
--stake-vkey /path/stake.vkey \
--always-abstain \
--out vote-deleg.cert

Create 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.cert

Create 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.

./bursa cert committee-cold-resign \
--cold-vkey /path/cc-cold.vkey \
--out cc-resign.cert
./bursa cert committee-cold-resign \
--cold-vkey /path/cc-cold.vkey \
--anchor-url https://example.com/resign.json \
--anchor-hash abc123... \
--out cc-resign.cert

Explore other Bursa Commands

Bursa Command Categories

  1. wallet   - Commands for generating wallet and the files needed to manage a Cardano wallet
  2. api     - Commands for running API
  3. cert    - Commands for generating various Cardano certificates
  4. hash     - Commands for generating cryptographic hashes used in Cardano
  5. script    - Commands for multi-signature operations
  6. address - Commands for working with Cardano addresses
  7. key     - Commands for deriving individual keys from a mnemonic