cardano-protocol-params について
cardano-cliを使うCardano開発者向けのプロトコルパラメータ用スキルです。対象ネットワークの最新値を取得して手数料、最小UTxO、Plutusの実行予算を確認でき、DockerでCLIを実行する方法も示します。
主な機能
- 01対象ネットワークのパラメータ取得
- 02手数料計算の入力値の説明
- 03最小UTxO要件の確認
- 04Plutus実行予算の確認
- 05Docker経由でのcardano-cli実行
活用シーン
- 01UTxO不足エラーの調査
- 02スクリプト実行コストの見積もり
- 03ネットワーク間のパラメータ比較
- 04パラメータとトランザクション成果物の保存
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ flux-point-studios/ cardano-agent-skills --skill cardano-protocol-paramsインストール後、Claude Code で/cardano-protocol-paramsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
reference/docker-fallback.mdpparams.mdscripts/cardano-cli.sh詳細
cardano-protocol-params
使用する場面
- 最新のプロトコルパラメーターを取得する
- 手数料計算の入力値を把握する
- 最小 UTxO や実行予算に関する問題をデバッグする
- ネットワーク間でパラメーターを比較する
運用ルール(必ず守ってください)
- 対象ネットワークの最新パラメーターを必ず取得してください
- メインネットのパラメーターがテストネットにも適用されると決めつけないでください
- 再現性を確保するため、トランザクションの成果物と一緒に pparams.json を保管してください
Docker フォールバックモード
ローカルに cardano-cli がインストールされていない場合は、このスキルフォルダー内のラッパースクリプトを使用して、Docker 内で cardano-cli を実行してください(Cardano ノードのコンテナーイメージには CLI が含まれています)。
chmod +x {baseDir}/scripts/cardano-cli.sh
{baseDir}/scripts/cardano-cli.sh version
注意:
- ラッパーは現在のディレクトリを
/workとしてコンテナーにマウントするため、pparams.json、tx.body、datum.jsonなどのファイルを通常どおり使用できます。 - ローカルノードのソケットがある場合は、
queryコマンドが動作するよう、実行前にCARDANO_NODE_SOCKET_PATHを設定してください。 CARDANO_DOCKER_IMAGE=ghcr.io/intersectmbo/cardano-node:<tag>を指定してイメージを上書きできます。
主なパラメーターの説明
手数料の計算
minFeeA: 44 # lovelace per byte
minFeeB: 155381 # base fee in lovelace
計算式:fee = minFeeA * txSize + minFeeB
最小 UTxO
coinsPerUTxOByte: 4310 # lovelace per byte of UTxO
必要な最小 ADA = UTxO のサイズ(datum を含む)× coinsPerUTxOByte
実行ユニット(Plutus)
maxTxExecutionUnits:
steps: 10000000000 # CPU budget
memory: 10000000 # Memory budget
executionUnitPrices:
priceSteps: 0.0000721 # lovelace per step
priceMemory: 0.0577 # lovelace per memory unit
参照スクリプト
minFeeRefScriptCostPerByte: 15 # Cost for using reference scripts
ワークフロー
パラメーターを取得する
# Preprod
cardano-cli conway query protocol-parameters \
--testnet-magic 1 \
--out-file pparams-preprod.json
# Mainnet
cardano-cli conway query protocol-parameters \
--mainnet \
--out-file pparams-mainnet.json
主な値を抽出する
# Using jq
cat pparams.json | jq '{
minFeeA: .txFeePerByte,
minFeeB: .txFeeFixed,
coinsPerUTxOByte: .utxoCostPerByte,
maxTxSize: .maxTxSize,
maxValSize: .maxValueSize
}'
出力の最小 UTxO を計算する
# Approximate: base ~160 bytes + datum size
# For simple ADA-only output: ~1 ADA minimum
# For output with tokens: varies by token count/names
例
例:「UTxO が小さすぎます」エラーのデバッグ
問題: トランザクションが最小 UTxO エラーで失敗する
対応:
# 1. Fetch current params
cardano-cli conway query protocol-parameters \
--testnet-magic 1 \
--out-file pparams.json
# 2. Check coinsPerUTxOByte
cat pparams.json | jq .utxoCostPerByte
# Result: 4310
# 3. Estimate min-UTxO for your output
# Simple ADA output: ~160 bytes × 4310 = ~690,000 lovelace
# With inline datum: add datum size × 4310
# With tokens: add ~30 bytes per token
# 4. Solution: increase output amount above minimum
例:スクリプト実行コストを見積もる
問題: Plutus スクリプトの予算を設定する必要がある
対応:
# 1. Get execution prices
cat pparams.json | jq '{
priceSteps: .executionUnitPrices.priceSteps,
priceMemory: .executionUnitPrices.priceMemory
}'
# 2. If script uses 1M steps and 100K memory:
# Cost = (1000000 × 0.0000721) + (100000 × 0.0577)
# Cost = 72.1 + 5770 = 5842.1 lovelace (~0.006 ADA)
# 3. Add to base tx fee for total
ネットワークマジックの参照
Mainnet: (no flag, use --mainnet)
Preprod: --testnet-magic 1
Preview: --testnet-magic 2
安全性/鍵の取り扱い
- プロトコルパラメーターは公開情報であり、秘密情報は含まれません
- 意図したネットワークに問い合わせていることを必ず確認してください
- デバッグ用に、pparams をトランザクションの成果物と一緒に保管してください
参考資料
shared/PRINCIPLES.md- Cardano プロトコルパラメーター
コメント
Markdown 対応