Skip to content

Configuration fields

This inventory is generated from config/schema-v1.json. “Required here” means required by the immediate containing object; optional objects can still contain required members when present.

config_version

FieldType / valuesRequired hereConstraints
config_version1yes

network

FieldType / valuesRequired hereConstraints
network"ethereum-mainnet"yes

data_dir

FieldType / valuesRequired hereConstraints
data_dirstringyes{"default":"./data","minLength":1}

finality

FieldType / valuesRequired hereConstraints
finalitystarterFinalityyes
finality.checkpointstringyes{"pattern":"^0x[0-9a-fA-F]{64}$"}
finality.checkpoint_slotpositiveIntegeryes{"minimum":1}
finality.endpointsarray<string>yes{"minItems":1}
finality.kindbeacon_api | consensus_p2p | disabledyes
finality.minimum_agreementpositiveIntegerno{"minimum":1}
finality.bootnodesarray<string>no
finality.minimum_peersnonNegativeIntegerno{"minimum":0}
finality.discovery_portintegerno{"minimum":0,"maximum":65535}

blocks

FieldType / valuesRequired hereConstraints
blocksstarterBlocksno

uniswap

FieldType / valuesRequired hereConstraints
uniswapstarterUniswapno
uniswap.marketsarray<ETH/USDC | ETH/USDT | WBTC/ETH>yes{"minItems":1}

api

FieldType / valuesRequired hereConstraints
apistarterApiyes
api.bindsocketAddressIPv4 or bracketed IPv6 socket address with portyes{"default":"127.0.0.1:18080"}
api.bearer_token_envstringno{"minLength":1}
api.deliveryobjectno
api.delivery.history_batchesdeliveryBatchno
api.delivery.history_batches.target_encoded_byteshumanBytesyes
api.delivery.history_batches.maximum_encoded_byteshumanBytesyes
api.delivery.history_batches.maximum_eventspositiveIntegeryes{"minimum":1}
api.delivery.history_batches.maximum_processed_blockspositiveIntegeryes{"minimum":1}
api.delivery.history_batches.maximum_delayhumanMillisecondsyes
api.delivery.history_batches.maximum_buffered_batchespositiveIntegeryes{"minimum":1}
api.delivery.history_batches.maximum_buffered_byteshumanBytesyes
api.delivery.history_batches.compressionnone | gzipno
api.delivery.live_batchesdeliveryBatchno
api.delivery.live_batches.target_encoded_byteshumanBytesyes
api.delivery.live_batches.maximum_encoded_byteshumanBytesyes
api.delivery.live_batches.maximum_eventspositiveIntegeryes{"minimum":1}
api.delivery.live_batches.maximum_processed_blockspositiveIntegeryes{"minimum":1}
api.delivery.live_batches.maximum_delayhumanMillisecondsyes
api.delivery.live_batches.maximum_buffered_batchespositiveIntegeryes{"minimum":1}
api.delivery.live_batches.maximum_buffered_byteshumanBytesyes
api.delivery.live_batches.compressionnone | gzipno

chain

FieldType / valuesRequired hereConstraints
chainchainyes
chain.namestringyes{"minLength":1}
chain.chain_idpositiveIntegeryes{"minimum":1}
chain.merge_blocknonNegativeIntegerno{"minimum":0}

raw_history

FieldType / valuesRequired hereConstraints
raw_historyrawHistoryno
raw_history.enabledbooleanno
raw_history.maximum_logical_byteshumanBytesno
raw_history.maximum_physical_byteshumanBytesno
raw_history.maximum_frame_logical_byteshumanBytesno
raw_history.maximum_segment_logical_byteshumanBytesno
raw_history.maximum_segment_physical_byteshumanBytesno
raw_history.reader_connectionspositiveIntegerno{"minimum":1}
raw_history.maximum_source_framespositiveIntegerno{"minimum":1}
raw_history.maximum_buffered_framespositiveIntegerno{"minimum":1}

artifact_storage

FieldType / valuesRequired hereConstraints
artifact_storageartifactStorageno
artifact_storage.backendsqlite | tiered_segmentsno
artifact_storage.segment_target_blockspositiveIntegerno{"minimum":1}
artifact_storage.compressionnone | snappy | deflateno
artifact_storage.maximum_artifact_logical_byteshumanBytesno
artifact_storage.maximum_segment_logical_byteshumanBytesno
artifact_storage.maximum_segment_physical_byteshumanBytesno
artifact_storage.compaction_intervalhumanMillisecondsno
artifact_storage.maximum_segments_per_cyclepositiveIntegerno{"minimum":1}

budgets

FieldType / valuesRequired hereConstraints
budgetsbudgetsyes
budgets.memory_bytespositiveIntegeryes{"minimum":1}
budgets.temporary_disk_bytespositiveIntegeryes{"minimum":1}
budgets.pending_delta_bytespositiveIntegeryes{"minimum":1}
budgets.recent_raw_soft_bytespositiveIntegeryes{"minimum":1}
budgets.recent_raw_hard_bytespositiveIntegeryes{"minimum":1}
budgets.source_concurrencypositiveIntegeryes{"minimum":1}
budgets.mapper_concurrencypositiveIntegeryes{"minimum":1}
budgets.history_materialhistoryMaterialBudgetno
budgets.history_material.modedisabled | observe | enabledno
budgets.history_material.memory_byteshumanBytesno
budgets.history_material.maximum_buffered_frames_per_acquisitionpositiveIntegerno{"minimum":1}
budgets.history_material.minimum_physical_chunk_blockspositiveIntegerno{"minimum":1}
budgets.history_material.maximum_overfetch_rationumberno{"minimum":1}
budgets.history_pipelinehistoryPipelineBudgetno
budgets.history_pipeline.maximum_active_chunkspositiveIntegerno{"minimum":1}
budgets.history_pipeline.maximum_mapped_byteshumanBytesno
budgets.history_pipeline.commithistoryCommitBudgetno
budgets.history_pipeline.commit.maximum_blockspositiveIntegerno{"minimum":1}
budgets.history_pipeline.commit.maximum_changespositiveIntegerno{"minimum":1}
budgets.history_pipeline.commit.maximum_encoded_byteshumanBytesno
budgets.history_pipeline.commit.maximum_delayhumanMillisecondsno
budgets.history_pipeline.commit.target_writer_holdhumanMillisecondsno
budgets.storestoreBudgetno
budgets.store.maximum_physical_byteshumanBytesno
budgets.artifactsartifactBudgetno
budgets.artifacts.maximum_retained_byteshumanBytesno
budgets.artifacts.maximum_pending_byteshumanBytesno
budgets.deliverydeliveryBudgetno
budgets.delivery.maximum_retained_byteshumanBytesno
budgets.delivery.maximum_history_retained_byteshumanBytesno

sources

FieldType / valuesRequired hereConstraints
sourcessourcesyes
sources.historyarray<historySource>yes{"minItems":1}
sources.history[].idstringyes{"minLength":1}
sources.history[].kindxatu | era_e | parquet | archiveyes
sources.history[].priorityintegeryes{"minimum":0,"maximum":65535}
sources.history[].trusttrusted_dataset | verified_materialyes
sources.history[].manifeststringno
sources.history[].endpointstringno{"format":"uri"}
sources.liveliveSourceyes
sources.live.kindp2p | disabledyes
sources.live.minimum_peersnonNegativeIntegeryes{"minimum":0}
sources.live.body_serving_peer_targetnonNegativeIntegerno{"minimum":0}
sources.live.preferred_peersnonNegativeIntegerno{"minimum":0}
sources.live.max_outbound_peersnonNegativeIntegerno{"minimum":0}
sources.live.max_concurrent_dialsnonNegativeIntegerno{"minimum":0}
sources.live.listener_portintegerno{"minimum":0,"maximum":65535}
sources.live.discovery_portintegerno{"minimum":0,"maximum":65535}
sources.live.discv5_portintegerno{"minimum":0,"maximum":65535}
sources.live.enable_discv5booleanno
sources.live.natstringno
sources.live.trusted_peersarray<string>no
sources.live.bootstrap_dns_treestringOptional authenticated EIP-1459 execution peer-hint tree. It affects discovery only; execution material remains protocol-verified locally.no{"pattern":"^enrtree://"}
sources.live.peer_refill_interval_mspositiveIntegerno{"minimum":1}
sources.live.peer_recovery_timeout_secondspositiveIntegerno{"minimum":1}
sources.live.material_request_concurrencypositiveIntegerno{"minimum":1}
sources.live.material_request_blocksintegerno{"minimum":1,"maximum":16}
sources.live.request_timeout_secondspositiveIntegerno{"minimum":1}
sources.live.request_retriespositiveIntegerno{"minimum":1}
sources.live.request_retry_backoff_mspositiveIntegerno{"minimum":1}
sources.live.history_header_request_concurrencypositiveIntegerno{"minimum":1}
sources.live.history_header_request_blockspositiveIntegerno{"minimum":1}
sources.live.persistent_retriesbooleanno
sources.live.retry_backoff_max_secondspositiveIntegerno{"minimum":1}
sources.live.peer_store_flush_secondspositiveIntegerno{"minimum":1}
sources.live.peer_store_max_entriespositiveIntegerno{"minimum":1}
sources.live.archive_reconciliation_blockspositiveIntegerno{"minimum":1}
sources.live.archive_reconciliation_interval_secondspositiveIntegerno{"minimum":1}
sources.live.history_fallback_blockspositiveIntegerOptional maximum finalized suffix eligible for execution-P2P history fallback. When omitted, every gap at or after the processor start block is eligible.no{"minimum":1}
sources.live.handoff_overlap_blockspositiveIntegerno{"minimum":1}

processors

FieldType / valuesRequired hereConstraints
processorsarray<processor>yes{"minItems":1}
processors[].idstringyes{"minLength":1}
processors[].instancestringyes{"minLength":1}
processors[].versionstringyes{"minLength":1}
processors[].history_controlnode_owned | application_subscriptionsno
processors[].history_modeautomatic | on_demandno
processors[].require_retained_inputbooleanno
processors[].start_blocknonNegativeIntegeryes{"minimum":0}
processors[].publishincluded_and_finalized | finalized_only | terminal_onlyyes
processors[].statestatePolicyyes
processors[].state.modeephemeral | durable | checkpointedyes
processors[].outputoutputPolicyyes
processors[].output.modenone | latest | window | fullyes
processors[].output.windowoutputWindowno
processors[].output.window.max_blockspositiveIntegerno{"minimum":1}
processors[].output.window.max_agehumanDurationno
processors[].output.window.max_rowspositiveIntegerno{"minimum":1}
processors[].output.window.max_byteshumanBytesno
processors[].output.finalized_onlybooleanno
processors[].deliverydeliveryPolicyyes
processors[].delivery.modenone | best_effort | window | until_acknowledgedyes
processors[].delivery.max_byteshumanBytesno
processors[].delivery.max_agehumanDurationno
processors[].delivery.on_limitpause | fail | expire_and_resetno
processors[].delivery.pruningdeliveryPruningno
processors[].delivery.pruning.intervalhumanDurationyes
processors[].delivery.pruning.minimum_batch_blockspositiveIntegeryes{"minimum":1}
processors[].delivery.pruning.minimum_batch_changespositiveIntegeryes{"minimum":1}
processors[].delivery.pruning.maximum_delete_changespositiveIntegeryes{"minimum":1}
processors[].delivery.pruning.retain_finalized_blockspositiveIntegeryes{"minimum":1}
processors[].delivery.pruning.retain_acknowledged_agehumanDurationyes
processors[].delivery.consumersarray<consumer>no
processors[].delivery.consumers[].idstringyes{"minLength":1,"maxLength":128}
processors[].delivery.consumers[].requiredbooleanyes
processors[].delivery.consumers[].lease_ttlhumanDurationyes
processors[].checkpointcheckpointPolicyyes
processors[].checkpoint.modenone | automaticyes
processors[].checkpoint.keepnonNegativeIntegeryes{"minimum":0}
processors[].undoundoPolicyyes
processors[].undo.modenone | unfinalizedyes
processors[].undo.safety_blocksnonNegativeIntegeryes{"minimum":0}
processors[].coverageprocessorCoverageno
processors[].coverage.verification_segment_blockspositiveIntegerno{"minimum":1}
processors[].settingsobjectStrictly decoded by the selected processor factoryno

rpc

FieldType / valuesRequired hereConstraints
rpcrpcyes
rpc.http_bindsocketAddressIPv4 or bracketed IPv6 socket address with portyes
rpc.ws_bindsocketAddressIPv4 or bracketed IPv6 socket address with portyes
rpc.historical_modeon_demand | disabledyes
rpc.transaction_locatorbooleanyes
rpc.minimum_recent_blockspositiveIntegeryes{"minimum":1}