mcpField
C
cardano-protocol-params

cardano-protocol-params

github.com/flux-point-studios開発840 回インストール5 週間前に更新
リポジトリ

cardano-protocol-params について

cardano-cliを使うCardano開発者向けのプロトコルパラメータ用スキルです。対象ネットワークの最新値を取得して手数料、最小UTxO、Plutusの実行予算を確認でき、DockerでCLIを実行する方法も示します。

主な機能

  1. 01対象ネットワークのパラメータ取得
  2. 02手数料計算の入力値の説明
  3. 03最小UTxO要件の確認
  4. 04Plutus実行予算の確認
  5. 05Docker経由でのcardano-cli実行

活用シーン

  1. 01UTxO不足エラーの調査
  2. 02スクリプト実行コストの見積もり
  3. 03ネットワーク間のパラメータ比較
  4. 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.md
pparams.md
scripts/
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 をトランザクションの成果物と一緒に保管してください

参考資料

コメント