Protocol parameters: fetch pparams, understand fees, min-UTxO, execution budgets. Read-only diagnostics.
minFeeA: 44 # lovelace per byte
minFeeB: 155381 # base fee in lovelace
Formula: fee = minFeeA * txSize + minFeeB
coinsPerUTxOByte: 4310 # lovelace per byte of UTxO
Minimum ADA required = size of UTxO (including datum) ร coinsPerUTxOByte
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
}'
# Approximate: base ~160 bytes + datum size
# For simple ADA-only output: ~1 ADA minimum
# For output with tokens: varies by token count/names
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
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
Mainnet: (no flag, use --mainnet)
Preprod: --testnet-magic 1
Preview: --testnet-magic 2
shared/PRINCIPLES.md