mcpField
C
cardano-protocol-params

cardano-protocol-params

github.com/flux-point-studiosDevelopment840 installsUpdated 5w ago
Repository

About cardano-protocol-params

A Cardano protocol-parameter skill for developers using cardano-cli. It guides fresh, network-specific parameter retrieval and interpretation for fees, minimum UTxO, and Plutus execution budgets, with a Docker fallback for the CLI.

Key features

  1. 01Fetch parameters for the target network
  2. 02Explain fee calculation inputs
  3. 03Inspect minimum UTxO requirements
  4. 04Review Plutus execution budgets
  5. 05Run cardano-cli through Docker

Use cases

  1. 01Debug a UTxO-too-small transaction error
  2. 02Estimate script execution costs
  3. 03Compare parameters across networks
  4. 04Save parameters with transaction artifacts

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/flux-point-studios/cardano-agent-skills --skill cardano-protocol-params

After installing, type/cardano-protocol-paramsin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

reference/
docker-fallback.md
pparams.md
scripts/
cardano-cli.sh

Details

From the project README

cardano-protocol-params

When to use

  • Fetching fresh protocol parameters
  • Understanding fee calculation inputs
  • Debugging min-UTxO or execution budget issues
  • Comparing params across networks

Operating rules (must follow)

  • Always fetch fresh params for the target network
  • Never assume mainnet params apply to testnets
  • Keep pparams.json with tx artifacts for reproducibility

Docker fallback mode

If cardano-cli is not installed locally, use the wrapper script in this skill folder to run cardano-cli inside Docker (the Cardano node container images include the CLI).

chmod +x {baseDir}/scripts/cardano-cli.sh
{baseDir}/scripts/cardano-cli.sh version

Notes:

  • The wrapper mounts your current directory into the container as /work so files like pparams.json, tx.body, datum.json work normally.
  • If you have a local node socket, set CARDANO_NODE_SOCKET_PATH before running so query commands work.
  • Override the image with CARDANO_DOCKER_IMAGE=ghcr.io/intersectmbo/cardano-node:<tag>.

Key parameters explained

Fee calculation
minFeeA: 44           # lovelace per byte
minFeeB: 155381       # base fee in lovelace

Formula: fee = minFeeA * txSize + minFeeB

Min UTxO
coinsPerUTxOByte: 4310   # lovelace per byte of UTxO

Minimum ADA required = size of UTxO (including datum) × coinsPerUTxOByte

Execution units (Plutus)
maxTxExecutionUnits:
  steps: 10000000000     # CPU budget
  memory: 10000000       # Memory budget
executionUnitPrices:
  priceSteps: 0.0000721  # lovelace per step
  priceMemory: 0.0577    # lovelace per memory unit
Reference scripts
minFeeRefScriptCostPerByte: 15  # Cost for using reference scripts

Workflow

Fetch parameters
# 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
Extract key values
# Using jq
cat pparams.json | jq '{
  minFeeA: .txFeePerByte,
  minFeeB: .txFeeFixed,
  coinsPerUTxOByte: .utxoCostPerByte,
  maxTxSize: .maxTxSize,
  maxValSize: .maxValueSize
}'
Calculate min-UTxO for output
# Approximate: base ~160 bytes + datum size
# For simple ADA-only output: ~1 ADA minimum
# For output with tokens: varies by token count/names

Examples

Example: Debug "UTxO too small" error

Problem: Transaction fails with min-UTxO error

Response:

# 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
Example: Estimate script execution cost

Problem: Need to budget for Plutus script

Response:

# 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

Network magic reference

Mainnet:  (no flag, use --mainnet)
Preprod:  --testnet-magic 1
Preview:  --testnet-magic 2

Safety / key handling

  • Protocol params are public, no secrets involved
  • Always verify you're querying the intended network
  • Store pparams with tx artifacts for debugging

References

Comments

Markdown supported