Cost model parameters

The cost model for Plutus Core scripts has a number of parameters. These are listed and briefly described below. All of these parameters are listed in the Cardano protocol parameters and can be individually adjusted.

For more details on the meaning of the parameters, consult IOHK [7].

Machine parameters

Operation

Parameter name

Note

apply

cekApplyCost-exBudgetCPU

Constant CPU cost

apply

cekApplyCost-exBudgetMemory

Constant memory cost

builtin

cekBuiltinCost-exBudgetCPU

Constant CPU cost

builtin

cekBuiltinCost-exBudgetMemory

Constant memory cost

con

cekConstCost-exBudgetCPU

Constant CPU cost

con

cekConstCost-exBudgetMemory

Constant memory cost

delay

cekDelayCost-exBudgetCPU

Constant CPU cost

delay

cekDelayCost-exBudgetMemory

Constant memory cost

force

cekForceCost-exBudgetCPU

Constant CPU cost

force

cekForceCost-exBudgetMemory

Constant memory cost

lam

cekLamCost-exBudgetCPU

Constant CPU cost

lam

cekLamCost-exBudgetMemory

Constant memory cost

startup

cekStartupCost-exBudgetCPU

Constant CPU cost

startup

cekStartupCost-exBudgetMemory

Constant memory cost

var

cekVarCost-exBudgetCPU

Constant CPU cost

var

cekVarCost-exBudgetMemory

Constant memory cost

Builtin parameters

Builtin function

Parameter name

Note

addInteger

addInteger-cpu-arguments-intercept

Linear model intercept for the CPU calculation

addInteger

addInteger-cpu-arguments-slope

Linear model coefficient for the CPU calculation

addInteger

addInteger-memory-arguments-intercept

Linear model intercept for the memory calculation

addInteger

addInteger-memory-arguments-slope

Linear model coefficient for the memory calculation

appendByteString

appendByteString-cpu-arguments-intercept

Linear model intercept for the CPU calculation

appendByteString

appendByteString-cpu-arguments-slope

Linear model coefficient for the CPU calculation

appendByteString

appendByteString-memory-arguments-intercept

Linear model intercept for the memory calculation

appendByteString

appendByteString-memory-arguments-slope

Linear model coefficient for the memory calculation

appendString

appendString-cpu-arguments-intercept

Linear model intercept for the CPU calculation

appendString

appendString-cpu-arguments-slope

Linear model coefficient for the CPU calculation

appendString

appendString-memory-arguments-intercept

Linear model intercept for the memory calculation

appendString

appendString-memory-arguments-slope

Linear model coefficient for the memory calculation

bData

bData-cpu-arguments

Constant CPU cost

bData

bData-memory-arguments

Constant CPU cost

blake2b_256

blake2b_256-cpu-arguments-intercept

Linear model intercept for the CPU calculation

blake2b_256

blake2b_256-cpu-arguments-slope

Linear model coefficient for the CPU calculation

blake2b_256

blake2b_256-memory-arguments

Constant memory cost

chooseData

chooseData-cpu-arguments

Constant CPU cost

chooseData

chooseData-memory-arguments

Constant memory cost

chooseList

chooseList-cpu-arguments

Constant CPU cost

chooseList

chooseList-memory-arguments

Constant memory cost

chooseUnit

chooseUnit-cpu-arguments

Constant CPU cost

chooseUnit

chooseUnit-memory-arguments

Constant memory cost

consByteString

consByteString-cpu-arguments-intercept

Linear model intercept for the CPU calculation

consByteString

consByteString-cpu-arguments-slope

Linear model coefficient for the CPU calculation

consByteString

consByteString-memory-arguments-intercept

Linear model intercept for the memory calculation

consByteString

consByteString-memory-arguments-slope

Linear model coefficient for the memory calculation

constrData

constrData-cpu-arguments

Constant CPU cost

constrData

constrData-memory-arguments

Constant memory cost

decodeUtf8

decodeUtf8-cpu-arguments-intercept

Linear model intercept for the CPU calculation

decodeUtf8

decodeUtf8-cpu-arguments-slope

Linear model coefficient for the CPU calculation

decodeUtf8

decodeUtf8-memory-arguments-intercept

Linear model intercept for the memory calculation

decodeUtf8

decodeUtf8-memory-arguments-slope

Linear model coefficient for the memory calculation

divideInteger

divideInteger-cpu-arguments-constant

Constant CPU cost (argument sizes above diagonal)

divideInteger

divideInteger-cpu-arguments-model-arguments-intercept

Linear model intercept for the CPU calculation (argument sizes on or below diagonal)

divideInteger

divideInteger-cpu-arguments-model-arguments-slope

Linear model coefficient for the CPU calculation (argument sizes on or below diagonal)

divideInteger

divideInteger-memory-arguments-intercept

Linear model intercept for the memory calculation (argument sizes on or below diagonal)

divideInteger

divideInteger-memory-arguments-minimum

Constant memory cost (argument sizes above diagonal)

divideInteger

divideInteger-memory-arguments-slope

Linear model coefficient for the memory calculation (argument sizes on or below diagonal)

encodeUtf8

encodeUtf8-cpu-arguments-intercept

Linear model intercept for the CPU calculation below diagonal

encodeUtf8

encodeUtf8-cpu-arguments-slope

Linear model coefficient for the CPU calculation

encodeUtf8

encodeUtf8-memory-arguments-intercept

Linear model intercept for the memory calculation

encodeUtf8

encodeUtf8-memory-arguments-slope

Linear model coefficient for the memory calculation

equalsByteString

equalsByteString-cpu-arguments-constant

Constant CPU cost (arguments different sizes)

equalsByteString

equalsByteString-cpu-arguments-intercept

Linear model intercept for the CPU calculation (arguments same size)

equalsByteString

equalsByteString-cpu-arguments-slope

Linear model coefficient for the CPU calculation (arguments same size)

equalsByteString

equalsByteString-memory-arguments

Constant memory

equalsData

equalsData-cpu-arguments-intercept

Linear model intercept for the CPU calculation

equalsData

equalsData-cpu-arguments-slope

Linear model coefficient for the CPU calculation

equalsData

equalsData-memory-arguments

Constant memory cost

equalsInteger

equalsInteger-cpu-arguments-intercept

Linear model intercept for the CPU calculation

equalsInteger

equalsInteger-cpu-arguments-slope

Linear model coefficient for the memory calculation

equalsInteger

equalsInteger-memory-arguments

Constant memory cost

equalsString

equalsString-cpu-arguments-constant

Constant CPU cost (arguments different sizes)

equalsString

equalsString-cpu-arguments-intercept

Linear model intercept for the CPU calculation (arguments same size)

equalsString

equalsString-cpu-arguments-slope

Linear model coefficient for the CPU calculation (arguments same size)

equalsString

equalsString-memory-arguments

Constant memory cost

fstPair

fstPair-cpu-arguments

Constant CPU cost

fstPair

fstPair-memory-arguments

Constant memory cost

headList

headList-cpu-arguments

Constant CPU cost

headList

headList-memory-arguments

Constant memory cost

iData

iData-cpu-arguments

Constant CPU cost

iData

iData-memory-arguments

Constant memory cost

ifThenElse

ifThenElse-cpu-arguments

Constant CPU cost

ifThenElse

ifThenElse-memory-arguments

Constant memory cost

indexByteString

indexByteString-cpu-arguments

Constant CPU cost

indexByteString

indexByteString-memory-arguments

Constant memory cost

lengthOfByteString

lengthOfByteString-cpu-arguments

Constant CPU cost

lengthOfByteString

lengthOfByteString-memory-arguments

Constant memory cost

lessThanByteString

lessThanByteString-cpu-arguments-intercept

Linear model intercept for the CPU calculation

lessThanByteString

lessThanByteString-cpu-arguments-slope

Linear model coefficient for the CPU calculation

lessThanByteString

lessThanByteString-memory-arguments

Constant memory cost

lessThanEqualsByteString

lessThanEqualsByteString-cpu-arguments-intercept

Linear model intercept for the CPU calculation

lessThanEqualsByteString

lessThanEqualsByteString-cpu-arguments-slope

Linear model coefficient for the CPU calculation

lessThanEqualsByteString

lessThanEqualsByteString-memory-arguments

Constant memory cost

lessThanEqualsInteger

lessThanEqualsInteger-cpu-arguments-intercept

Linear model intercept for the CPU calculation

lessThanEqualsInteger

lessThanEqualsInteger-cpu-arguments-slope

Linear model coefficient for the CPU calculation

lessThanEqualsInteger

lessThanEqualsInteger-memory-arguments

Constant memory cost

lessThanInteger

lessThanInteger-cpu-arguments-intercept

Linear model intercept for the CPU calculation

lessThanInteger

lessThanInteger-cpu-arguments-slope

Linear model coefficient for the CPU calculation

lessThanInteger

lessThanInteger-memory-arguments

Constant memory cost

listData

listData-cpu-arguments

Constant CPU cost

listData

listData-memory-arguments

Constant memory cost

mapData

mapData-cpu-arguments

Constant CPU cost

mapData

mapData-memory-arguments

Constant memory cost

mkCons

mkCons-cpu-arguments

Constant CPU cost

mkCons

mkCons-memory-arguments

Constant memory cost

mkNilData

mkNilData-cpu-arguments

Constant CPU cost

mkNilData

mkNilData-memory-arguments

Constant memory cost

mkNilPairData

mkNilPairData-cpu-arguments

Constant CPU cost

mkNilPairData

mkNilPairData-memory-arguments

Constant memory cost

mkPairData

mkPairData-cpu-arguments

Constant CPU cost

mkPairData

mkPairData-memory-arguments

Constant memory cost

modInteger

modInteger-cpu-arguments-constant

Constant CPU cost (argument sizes above diagonal)

modInteger

modInteger-cpu-arguments-model-arguments-intercept

Linear model intercept for the CPU calculation (argument sizes on or below diagonal)

modInteger

modInteger-cpu-arguments-model-arguments-slope

Linear model coefficient for the CPU calculation (argument sizes above diagonal)

modInteger

modInteger-memory-arguments-intercept

Linear model intercept for the memory calculation

modInteger

modInteger-memory-arguments-minimum

Constant memory cost (argument sizes above diagonal)

modInteger

modInteger-memory-arguments-slope

Linear model coefficient for the memory calculation (argument sizes on or below diagonal)

multiplyInteger

multiplyInteger-cpu-arguments-intercept

Linear model intercept for the CPU calculation

multiplyInteger

multiplyInteger-cpu-arguments-slope

Linear model coefficient for the CPU calculation

multiplyInteger

multiplyInteger-memory-arguments-intercept

Linear model intercept for the memory calculation

multiplyInteger

multiplyInteger-memory-arguments-slope

Linear model coefficient for the memory calculation

nullList

nullList-cpu-arguments

Constant CPU cost

nullList

nullList-memory-arguments

Constant memory cost

quotientInteger

quotientInteger-cpu-arguments-constant

Constant CPU cost (argument sizes above diagonal)

quotientInteger

quotientInteger-cpu-arguments-model-arguments-intercept

Linear model intercept for the CPU calculation (argument sizes on or below diagonal)

quotientInteger

quotientInteger-cpu-arguments-model-arguments-slope

Linear model coefficient for the CPU calculation (argument sizes on or below diagonal)

quotientInteger

quotientInteger-memory-arguments-intercept

Linear model intercept for the CPU calculation (argument sizes on or below diagonal)

quotientInteger

quotientInteger-memory-arguments-minimum

Constant memory cost (argument sizes above diagonal)

quotientInteger

quotientInteger-memory-arguments-slope

Linear model coefficient for the memory calculation (argument sizes on or below diagonal)

remainderInteger

remainderInteger-cpu-arguments-constant

Constant CPU cost (argument sizes above diagonal)

remainderInteger

remainderInteger-cpu-arguments-model-arguments-intercept

Linear model intercept for the CPU calculation (argument sizes on or below diagonal)

remainderInteger

remainderInteger-cpu-arguments-model-arguments-slope

Linear model coefficient for the CPU calculation (argument sizes on or below diagonal)

remainderInteger

remainderInteger-memory-arguments-intercept

Linear model intercept for the memory calculation (argument sizes on or below diagonal)

remainderInteger

remainderInteger-memory-arguments-minimum

Constant memory cost (argument sizes above diagonal)

remainderInteger

remainderInteger-memory-arguments-slope

Linear model coefficient for the memory calculation (argument sizes on or below diagonal)

serialiseData

serialiseData-cpu-arguments-intercept

Linear model intercept for the CPU calculation

serialiseData

serialiseData-cpu-arguments-slope

Linear model coefficient for the CPU calculation

serialiseData

serialiseData-memory-arguments-intercept

Linear model intercept for the memory calculation

serialiseData

serialiseData-memory-arguments-slope

Linear model coefficient for the memory calculation

sha2_256

sha2_256-cpu-arguments-intercept

Linear model intercept for the CPU calculation

sha2_256

sha2_256-cpu-arguments-slope

Linear model coefficient for the CPU calculation

sha2_256

sha2_256-memory-arguments

Constant memory cost

sha3_256

sha3_256-cpu-arguments-intercept

Linear model intercept for the CPU calculation

sha3_256

sha3_256-cpu-arguments-slope

Linear model coefficient for the CPU calculation

sha3_256

sha3_256-memory-arguments

Constant memory cost

sliceByteString

sliceByteString-cpu-arguments-intercept

Linear model intercept for the CPU calculation

sliceByteString

sliceByteString-cpu-arguments-slope

Linear model coefficient for the CPU calculation

sliceByteString

sliceByteString-memory-arguments-intercept

Linear model intercept for the memory calculation

sliceByteString

sliceByteString-memory-arguments-slope

Linear model coefficient for the memory calculation

sndPair

sndPair-cpu-arguments

Constant CPU cost

sndPair

sndPair-memory-arguments

Constant memory cost

subtractInteger

subtractInteger-cpu-arguments-intercept

Linear model intercept for the CPU calculation

subtractInteger

subtractInteger-cpu-arguments-slope

Linear model coefficient for the CPU calculation

subtractInteger

subtractInteger-memory-arguments-intercept

Linear model intercept for the memory calculation

subtractInteger

subtractInteger-memory-arguments-slope

Linear model coefficient for the memory calculation

tailList

tailList-cpu-arguments

Constant CPU cost

tailList

tailList-memory-arguments

Constant memory cost

trace

trace-cpu-arguments

Constant CPU cost

trace

trace-memory-arguments

Constant memory cost

unBData

unBData-cpu-arguments

Constant CPU cost

unBData

unBData-memory-arguments

Constant memory cost

unConstrData

unConstrData-cpu-arguments

Constant CPU cost

unConstrData

unConstrData-memory-arguments

Constant memory cost

unIData

unIData-cpu-arguments

Constant CPU cost

unIData

unIData-memory-arguments

Constant memory cost

unListData

unListData-cpu-arguments

Constant CPU cost

unListData

unListData-memory-arguments

Constant memory cost

unMapData

unMapData-cpu-arguments

Constant CPU cost

unMapData

unMapData-memory-arguments

Constant memory cost

verifyEcdsaSecp256k1Signature

verifyEcdsaSecp256k1Signature-cpu-arguments

Constant CPU cost

verifyEcdsaSecp256k1Signature

verifyEcdsaSecp256k1Signature-memory-arguments

Constant memory cost

verifyEd25519Signature

verifyEd25519Signature-cpu-arguments-intercept

Linear model intercept for the CPU calculation

verifyEd25519Signature

verifyEd25519Signature-cpu-arguments-slope

Linear model coefficient for the CPU calculation

verifyEd25519Signature

verifyEd25519Signature-memory-arguments

Constant memory cost

verifySchnorrSecp256k1Signature

verifySchnorrSecp256k1Signature-cpu-arguments-intercept

Linear model intercept for the CPU calculation

verifySchnorrSecp256k1Signature

verifySchnorrSecp256k1Signature-cpu-arguments-slope

Linear model coefficient for the CPU calculation

verifySchnorrSecp256k1Signature

verifySchnorrSecp256k1Signature-memory-arguments

Constant memory cost