[protocol]
version = '2.0.0'
hard_reset = false
activation_point = '${TIMESTAMP}'
[network]
name = 'casper-example'
maximum_net_message_size = 25_165_824
[core]
era_duration = '41 seconds'
minimum_era_height = 5
minimum_block_time = '4096 ms'
validator_slots = 7
finality_threshold_fraction = [1, 3]
start_protocol_version_with_strict_finality_signatures_required = '1.5.0'
legacy_required_finality = 'Strict'
auction_delay = 1
locked_funds_period = '0 days'
vesting_schedule_period = '0 weeks'
unbonding_delay = 7
round_seigniorage_rate = [1, 4_200_000_000_000_000_000]
max_associated_keys = 100
max_runtime_call_stack_height = 12
minimum_delegation_amount = 500_000_000_000
maximum_delegation_amount = 1_000_000_000_000_000_000
minimum_bid_amount = 100_000_000_000_000
prune_batch_size = 0
strict_argument_checking = false
simultaneous_peer_requests = 5
consensus_protocol = 'Zug'
max_delegators_per_validator = 1200
finders_fee = [1, 5]
finality_signature_proportion = [1, 2]
signature_rewards_max_delay = 3
allow_unrestricted_transfers = true
allow_auction_bids = true
compute_rewards = true
refund_handling = { type = 'refund', refund_ratio = [75, 100] }
fee_handling = { type = 'pay_to_proposer' }
validator_credit_cap = [1, 5]
pricing_handling = { type = 'payment_limited' }
allow_prepaid = false
gas_hold_balance_handling = { type = 'accrued' }
gas_hold_interval = '24 hours'
administrators = []
enable_addressable_entity = false
baseline_motes_amount = 2_500_000_000
trap_on_ambiguous_entity_version = false
[highway]
maximum_round_length = '17 seconds'
[transactions]
max_ttl = '2 hours'
block_max_approval_count = 2600
max_block_size = 5_242_880
block_gas_limit = 1_625_000_000_000
native_transfer_minimum_motes = 2_500_000_000
max_timestamp_leeway = '5 seconds'
[transactions.enabled_runtime]
vm_casper_v1 = true
vm_casper_v2 = false
[transactions.v1]
native_mint_lane = [0, 2048, 1024, 100_000_000, 650]
native_auction_lane = [1, 3096, 2048, 2_500_000_000, 650]
install_upgrade_lane = [2, 750_000, 2048, 1_000_000_000_000, 1]
wasm_lanes = [
[3, 262_144, 1024, 1_000_000_000_000, 1],
[4, 131_072, 1024, 100_000_000_000, 2],
[5, 65_536, 512, 5_000_000_000, 80]
]
[transactions.deploy]
max_payment_cost = '0'
payment_args_max_length = 1024
session_args_max_length = 1024
[wasm.v1]
max_memory = 64
max_stack_height = 500
[storage_costs]
gas_per_byte = 1_117_587
[wasm.v1.opcode_costs]
bit = 105
add = 105
mul = 105
div = 105
load = 105
store = 105
const = 105
local = 105
global = 105
integer_comparison = 105
conversion = 105
unreachable = 105
nop = 105
current_memory = 105
grow_memory = 900
sign = 105
[wasm.v1.opcode_costs.control_flow]
block = 255
loop = 255
if = 105
else = 105
end = 105
br = 1665
br_if = 510
return = 105
select = 105
call = 225
call_indirect = 270
drop = 105
[wasm.v1.opcode_costs.control_flow.br_table]
cost = 150
size_multiplier = 100
[wasm.v1.host_function_costs]
add = { cost = 5_800, arguments = [0, 0, 0, 0] }
add_associated_key = { cost = 1_200_000, arguments = [0, 0, 0] }
add_contract_version = { cost = 200, arguments = [0, 0, 0, 0, 120_000, 0, 0, 0, 0, 0] }
add_contract_version_with_message_topics = { cost = 200, arguments = [0, 0, 0, 0, 120_000, 0, 0, 0, 30_000, 0, 0] }
add_package_version_with_message_topics = { cost = 200, arguments = [0, 0, 0, 0, 120_000, 0, 0, 0, 30_000, 0, 0] }
blake2b = { cost = 1_200_000, arguments = [0, 120_000, 0, 0] }
call_contract = { cost = 300_000_000, arguments = [0, 0, 0, 120_000, 0, 120_000, 0] }
call_versioned_contract = { cost = 300_000_000, arguments = [0, 0, 0, 0, 0, 120_000, 0, 120_000, 0] }
create_contract_package_at_hash = { cost = 200, arguments = [0, 0] }
create_contract_user_group = { cost = 200, arguments = [0, 0, 0, 0, 0, 0, 0, 0] }
create_purse = { cost = 2_500_000_000, arguments = [0, 0] }
disable_contract_version = { cost = 200, arguments = [0, 0, 0, 0] }
get_balance = { cost = 3_000_000, arguments = [0, 0, 0] }
get_blocktime = { cost = 330, arguments = [0] }
get_caller = { cost = 380, arguments = [0] }
get_key = { cost = 2_000, arguments = [0, 440, 0, 0, 0] }
get_main_purse = { cost = 1_300, arguments = [0] }
get_named_arg = { cost = 200, arguments = [0, 120_000, 0, 120_000] }
get_named_arg_size = { cost = 200, arguments = [0, 0, 0] }
get_phase = { cost = 710, arguments = [0] }
get_system_contract = { cost = 1_100, arguments = [0, 0, 0] }
has_key = { cost = 1_500, arguments = [0, 840] }
is_valid_uref = { cost = 760, arguments = [0, 0] }
load_named_keys = { cost = 42_000, arguments = [0, 0] }
new_uref = { cost = 17_000, arguments = [0, 0, 590] }
random_bytes = { cost = 200, arguments = [0, 0] }
print = { cost = 20_000, arguments = [0, 4_600] }
provision_contract_user_group_uref = { cost = 200, arguments = [0, 0, 0, 0, 0] }
put_key = { cost = 100_000_000, arguments = [0, 120_000, 0, 120_000] }
read_host_buffer = { cost = 3_500, arguments = [0, 310, 0] }
read_value = { cost = 60_000, arguments = [0, 120_000, 0] }
dictionary_get = { cost = 5_500, arguments = [0, 590, 0] }
remove_associated_key = { cost = 4_200, arguments = [0, 0] }
remove_contract_user_group = { cost = 200, arguments = [0, 0, 0, 0] }
remove_contract_user_group_urefs = { cost = 200, arguments = [0, 0, 0, 0, 0, 120_000] }
remove_key = { cost = 61_000, arguments = [0, 3_200] }
ret = { cost = 23_000, arguments = [0, 420_000] }
revert = { cost = 500, arguments = [0] }
set_action_threshold = { cost = 74_000, arguments = [0, 0] }
transfer_from_purse_to_account = { cost = 2_500_000_000, arguments = [0, 0, 0, 0, 0, 0, 0, 0, 0] }
transfer_from_purse_to_purse = { cost = 82_000_000, arguments = [0, 0, 0, 0, 0, 0, 0, 0] }
transfer_to_account = { cost = 2_500_000_000, arguments = [0, 0, 0, 0, 0, 0, 0] }
update_associated_key = { cost = 4_200, arguments = [0, 0, 0] }
write = { cost = 14_000, arguments = [0, 0, 0, 980] }
dictionary_put = { cost = 9_500, arguments = [0, 1_800, 0, 520] }
enable_contract_version = { cost = 200, arguments = [0, 0, 0, 0] }
manage_message_topic = { cost = 200, arguments = [0, 30_000, 0, 0] }
emit_message = { cost = 200, arguments = [0, 30_000, 0, 120_000] }
generic_hash = { cost = 1_200_000, arguments = [0, 120_000, 0, 0, 0] }
cost_increase_per_message = 50
get_block_info = { cost = 330, arguments = [0, 0] }
recover_secp256k1 = { cost = 1_300_000, arguments = [0, 120_000, 0, 0, 0, 0] }
verify_signature = { cost = 1_300_000, arguments = [0, 120_000, 0, 0, 0, 0] }
call_package_version = { cost = 300_000_000, arguments = [0, 0, 0, 0, 0, 0, 0, 120_000, 0, 120_000, 0] }
[wasm.v2]
max_memory = 17
[wasm.v2.opcode_costs]
bit = 105
add = 105
mul = 105
div = 105
load = 105
store = 105
const = 105
local = 105
global = 105
integer_comparison = 105
conversion = 105
unreachable = 105
nop = 105
current_memory = 105
grow_memory = 900
sign = 105
[wasm.v2.opcode_costs.control_flow]
block = 255
loop = 255
if = 105
else = 105
end = 105
br = 1665
br_if = 510
return = 105
select = 105
call = 225
call_indirect = 270
drop = 105
[wasm.v2.opcode_costs.control_flow.br_table]
cost = 150
size_multiplier = 100
[wasm.v2.host_function_costs]
read = { cost = 0, arguments = [0, 0, 0, 0, 0, 0] }
write = { cost = 0, arguments = [0, 0, 0, 0, 0] }
remove = { cost = 0, arguments = [0, 0, 0] }
copy_input = { cost = 0, arguments = [0, 0] }
ret = { cost = 0, arguments = [0, 0] }
create = { cost = 0, arguments = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }
transfer = { cost = 0, arguments = [0, 0, 0] }
env_balance = { cost = 0, arguments = [0, 0, 0, 0] }
upgrade = { cost = 0, arguments = [0, 0, 0, 0, 0, 0] }
call = { cost = 0, arguments = [0, 0, 0, 0, 0, 0, 0, 0, 0] }
print = { cost = 0, arguments = [0, 0] }
emit = { cost = 0, arguments = [0, 0, 0, 0] }
env_info = { cost = 0, arguments = [0, 0] }
[wasm.messages_limits]
max_topic_name_size = 256
max_topics_per_contract = 128
max_message_size = 1_024
[system_costs]
no_such_entrypoint = 2_500_000_000
[system_costs.auction_costs]
get_era_validators = 2_500_000_000
read_seigniorage_recipients = 5_000_000_000
add_bid = 2_500_000_000
withdraw_bid = 2_500_000_000
delegate = 2_500_000_000
undelegate = 2_500_000_000
run_auction = 2_500_000_000
slash = 2_500_000_000
distribute = 2_500_000_000
withdraw_delegator_reward = 5_000_000_000
withdraw_validator_reward = 5_000_000_000
read_era_id = 2_500_000_000
activate_bid = 2_500_000_000
redelegate = 2_500_000_000
change_bid_public_key = 5_000_000_000
add_reservations = 2_500_000_000
cancel_reservations = 2_500_000_000
[system_costs.mint_costs]
mint = 2_500_000_000
reduce_total_supply = 2_500_000_000
create = 2_500_000_000
balance = 100_000_000
burn = 100_000_000
transfer = 100_000_000
read_base_round_reward = 2_500_000_000
mint_into_existing_purse = 2_500_000_000
[system_costs.handle_payment_costs]
get_payment_purse = 10_000
set_refund_purse = 10_000
get_refund_purse = 10_000
finalize_payment = 2_500_000_000
[system_costs.standard_payment_costs]
pay = 10_000
[vacancy]
upper_threshold = 90
lower_threshold = 50
max_gas_price = 3
min_gas_price = 1