Staking guidance: registration, delegation, rewards. Provides templates (no execution). Use operator skill to execute.
This is a guidance skill. Provides templates and explanations. For execution, use
cardano-cli-staking-operator.
# Derive stake address
cardano-cli conway stake-address build \
--stake-verification-key-file stake.vkey \
--testnet-magic 1 \
--out-file stake.addr
# Query status
cardano-cli conway query stake-address-info \
--testnet-magic 1 \
--address $(cat stake.addr)
# 1. Create registration certificate
cardano-cli conway stake-address registration-certificate \
--stake-verification-key-file stake.vkey \
--out-file stake-reg.cert
# 2. Build transaction with certificate
cardano-cli conway transaction build \
--testnet-magic 1 \
--tx-in <utxo>#<index> \
--change-address <payment-addr> \
--certificate-file stake-reg.cert \
--out-file tx.unsigned
# 3. Sign with BOTH keys
cardano-cli conway transaction sign \
--tx-file tx.unsigned \
--signing-key-file payment.skey \
--signing-key-file stake.skey \
--testnet-magic 1 \
--out-file tx.signed
# 4. Submit
cardano-cli conway transaction submit \
--testnet-magic 1 \
--tx-file tx.signed
# 1. Create delegation certificate
cardano-cli conway stake-address stake-delegation-certificate \
--stake-verification-key-file stake.vkey \
--stake-pool-id pool1... \
--out-file delegation.cert
# 2. Build, sign (both keys), submit
# Same pattern as registration
# 1. Check rewards balance
cardano-cli conway query stake-address-info \
--testnet-magic 1 \
--address $(cat stake.addr)
# 2. Build withdrawal tx
cardano-cli conway transaction build \
--testnet-magic 1 \
--tx-in <utxo>#<index> \
--withdrawal $(cat stake.addr)+<reward-lovelace> \
--change-address <payment-addr> \
--out-file tx.unsigned
# 3. Sign with BOTH keys, submit
cardano-cli conway stake-address deregistration-certificate \
--stake-verification-key-file stake.vkey \
--out-file stake-dereg.cert
# Build tx with certificate, sign, submit
User request: "Delegate my stake to pool1abc..."
Response:
# === Delegate to Pool ===
POOL_ID="pool1abc..."
STAKE_VKEY="stake.vkey"
PAYMENT_ADDR=$(cat base.addr)
# 1. Verify pool exists
cardano-cli conway query stake-pools --testnet-magic 1 | grep $POOL_ID
# 2. Create delegation certificate
cardano-cli conway stake-address stake-delegation-certificate \
--stake-verification-key-file $STAKE_VKEY \
--stake-pool-id $POOL_ID \
--out-file delegation.cert
# 3. Build transaction
cardano-cli conway transaction build \
--testnet-magic 1 \
--tx-in <your-utxo>#0 \
--change-address $PAYMENT_ADDR \
--certificate-file delegation.cert \
--out-file tx.unsigned
# 4. Sign with both keys
cardano-cli conway transaction sign \
--tx-file tx.unsigned \
--signing-key-file payment.skey \
--signing-key-file stake.skey \
--testnet-magic 1 \
--out-file tx.signed
# 5. Submit (use operator skill)
# Delegation takes effect at next epoch boundary
shared/PRINCIPLES.mdcardano-cli-staking-operator (for execution)