コンテンツにスキップ

委任代表者(DRep)への委任

Cardanoエコシステムでは、委任代表者(DRep)が、ADA保有者に代わってガバナンスアクションへの投票を行います。

投票権をDRepに委任するには、投票委任証明書を作成し、ブロックチェーンに送信します。

投票権の委任先

  • Registered DReps(登録されたDRep)
    登録されたDRepに投票権を委任します。
  • Always Abstain(常に棄権)
    すべてのガバナンスアクションに対して棄権します。
  • Always No Confidence(常に不信任)
    すべてのガバナンスアクションに対して不信任を表明します。

投票権を委任するには、ステーク鍵を使用して投票委任証明書(vote-deleg.cert)を作成します。

governanceディレクトリの作成

mkdir -p $NODE_HOME/governance

変数drep_idに代入
投票権を委任したい DRep ID を代入します。

Explorerに表示される HEX(例: 22...)をコピーして代入してください。

drep_id=

委任するDRepを検索:
adastat.net

drep.idファイルの作成

cat > $NODE_HOME/governance/drep.id << EOF
${drep_id}
EOF

vote-deleg.certファイルの作成

cd $NODE_HOME
cardano-cli latest stake-address vote-delegation-certificate \
  --stake-verification-key-file stake.vkey \
  --drep-key-hash $(sed 's/^..//' $NODE_HOME/governance/drep.id) \
  --out-file $NODE_HOME/governance/vote-deleg.cert
棄権または不信任を表明したい場合

ガバナンスプロセスを棄権するには、次のように入力します。

cd $NODE_HOME
cardano-cli latest stake-address vote-delegation-certificate \
  --stake-verification-key-file stake.vkey \
  --always-abstain \
  --out-file $NODE_HOME/governance/vote-deleg.cert

常に不信任を表明するには、次のように入力します。

cd $NODE_HOME
cardano-cli latest stake-address vote-delegation-certificate \
  --stake-verification-key-file stake.vkey \
  --always-no-confidence \
  --out-file $NODE_HOME/governance/vote-deleg.cert

Tip

BPで事前に governance ディレクトリを作成しておきます。

mkdir -p $NODE_HOME/governance

ファイル転送

エアギャップの $NODE_HOME/governance/vote-deleg.cert を、BP の $NODE_HOME/governance ディレクトリにコピーします。

手数料支払い用UTxOの選択

トランザクション手数料はpayment.addrから引き落とされますので誓約(Pledge)を下回らないようご注意ください。

tx_in=$(
  cardano-cli latest query utxo \
    --address "$(cat $NODE_HOME/payment.addr)" \
    ${NODE_NETWORK} \
    --output-json \
  | jq -r '
    to_entries
    | map(
        select((.value.referenceScript // null) == null)
        | select((.value.datum // null) == null)
        | select((.value.inlineDatum // null) == null)
        | select((.value.inlineDatumRaw // null) == null)
        | select((.value.datumhash // null) == null)
      )
    | sort_by(.value.value.lovelace) | reverse
    | if length > 0 then .[0].key else empty end
  '
)

if [ -z "${tx_in}" ]; then
  echo "WARNING: 使用可能なUTxOが見つかりません。"
  echo "payment.addr のUTxOを確認してください。"
else
  echo "tx_in: ${tx_in}"
fi

投票委任証明書を含むトランザクションのビルド

cardano-cli latest transaction build \
  ${NODE_NETWORK} \
  --tx-in "${tx_in}" \
  --change-address "$(cat $NODE_HOME/payment.addr)" \
  --certificate-file $NODE_HOME/governance/vote-deleg.cert \
  --witness-override 2 \
  --out-file $NODE_HOME/governance/tx.raw

ファイル転送

BP の $NODE_HOME/governance/tx.raw を、エアギャップの $NODE_HOME/governance ディレクトリにコピーします。

トランザクションに署名

cd $NODE_HOME
cardano-cli latest transaction sign \
  --tx-body-file $NODE_HOME/governance/tx.raw \
  --signing-key-file payment.skey \
  --signing-key-file stake.skey \
  ${NODE_NETWORK} \
  --out-file $NODE_HOME/governance/tx.signed

ファイル転送

エアギャップの $NODE_HOME/governance/tx.signed を、BP の $NODE_HOME/governance ディレクトリにコピーします。

署名されたトランザクションの送信

cardano-cli latest transaction submit \
    --tx-file $NODE_HOME/governance/tx.signed \
    ${NODE_NETWORK}

Transaction successfully submitted. Transaction hash is:
{"txhash":"**********"}