Skip to content
Open app

Solver configuration

AI-generated

These tables cover all 64 fields in the pinned example, not every parser default. Replace placeholders before use. Unknown fields are rejected; relative paths use the process working directory.

Token amounts are quoted nominal decimals: ETH/PROVE allow 18 fractional digits, XMR 12, and gwei nine. One ETH or PROVE is 10^18 base units; one XMR is 10^12 piconero; one gwei is 10^9 wei. The per-billion-PGU price has at most nine decimal places so each PGU resolves to whole base units.

Validate with check-config, and separately qualify RPC behavior.

Field Checked-in example Meaning
level "debug" Most verbose solver-owned level: error, warn, info, debug, or trace.
format "json" JSON structured events or compact text.
redact_urls false Remove complete HTTP(S) locators from diagnostics; not all possible secrets.
stderr true Write events synchronously to standard error.
file "state/solver.log" Optional private regular append-mode log file; rotate externally and restart.
Field Checked-in example Meaning
rpc_url Placeholder endpoint; replace Primary mainnet read endpoint; remote services require HTTPS.
secondary_rpc_urls 1 entries; see source example At least one secondary with exact EIP-1898 block-hash reads.
submission_rpc_urls 2 entries; see source example At least two explicit private writers; one must overlap the read list; must include reverting transactions.
rpc_timeout_seconds 10 Per-endpoint request deadline; provider probes are concurrent.
maximum_block_age_seconds 60 Reject a latest block this far behind the host UTC clock.
maximum_block_future_seconds 15 Maximum allowed future timestamp skew.
maximum_provider_block_skew 2 Admission-only height spread; allowed range 1–4; same-height disagreement also stops new bids.
contract_address Placeholder; replace Replace placeholder with the reviewed deployment address.
contract_code_keccak Placeholder; replace Replace placeholder with the deployed runtime hash including immutables.
signer_key_file "state/ethereum.key" Dedicated raw 32-byte secp256k1 key as one line of hex, optionally prefixed 0x; private regular file.
confirmations 2 Inclusion counts as one; minimum two; this is not Ethereum consensus finality.
bid_gas_limit 300000 Bid transaction gas limit and reserve; minimum 150,000.
settle_gas_limit 500000 Settlement gas limit and reserve; minimum 500,000.
max_fee_per_gas_gwei "10" Exact total EIP-1559 cap in gwei; must cover base fee plus configured tip before signing.
max_priority_fee_per_gas_gwei "0.1" Exact gwei tip, no greater than total cap.
receipt_timeout_seconds 120 Complete receipt-depth wait; timeout triggers exact-transaction recovery, not replacement.
deployment_block 1 First possible deployment log block; replace the example lower bound.
Field Checked-in example Meaning
daemon_url Placeholder endpoint; replace Sole trusted synchronized mainnet chain-data daemon; HTTPS remotely, HTTP only on loopback.
rebroadcast_daemon_urls 2 entries; see source example At least two distinct fallback propagation hosts; not trusted witness sources.
maximum_tip_skew_blocks 3 Admission height tolerance across Monero daemon observations.
wallet_rpc_url Placeholder endpoint; replace Dedicated authenticated loopback wallet RPC; account 0.
wallet_rpc_username "chainjump" Wallet RPC authentication username.
wallet_rpc_password_file "state/wallet-rpc.password" Optional private regular file containing the wallet RPC password.
transfer_priority 2 Wallet transfer priority passed to Monero RPC.
fee_reserve_xmr "0.001" Additional nominal XMR reserved for payment fees.
output_target_count 100 Confirmed unspent output target, 1–120; maintenance splits produce 16 outputs.
payment_poll_seconds 15 Payment observation polling interval.
Field Checked-in example Meaning
poll_seconds 5 Healthy market refresh and candidate polling cadence.
request_timeout_seconds 10 Market HTTP request timeout.
bid_price_multiplier "0.99" Exact multiplier applied to the weighted ETH/XMR ratio.
bid_fixed_subtraction_xmr "0.003" Nominal XMR deduction after the final piconero floor; not a protocol fee.
Field Checked-in example Meaning
maximum_concurrent_swaps 4 Simultaneous obligations; hard maximum 16; affects timing and funds reserves.
maximum_xmr "5" Maximum nominal XMR per admitted swap.
maximum_bond_eth "0.1" Maximum nominal ETH bond per admitted swap.
enable_eth_profitability_check false Enable the optional estimated ETH profit gate; mandatory caps remain active regardless.
minimum_profit_eth "0" Required estimated ETH profit when the optional gate is enabled.
estimated_proof_cost_eth "0.01" Estimated proof expense in ETH for the optional profitability gate.
estimated_evm_cost_eth "0.008" Estimated EVM expense in ETH for the optional profitability gate.
maximum_min_height_lag_blocks 20 Maximum permitted lag of the requested minimum payment height behind the observed chain.
minimum_settlement_window_seconds 7200 Minimum admitted window; must cover all configured reserves.
maximum_difficulty_multiplier 5 Maximum requested difficulty relative to observed network difficulty.
minimum_qualification_probability_ppm 999000 Minimum modeled probability in parts per million; not a liveness guarantee.
proof_latency_seconds 1860 Budget for a proof path, covering three request lifetimes plus at least 60 seconds local overhead.
evm_submission_seconds 120 Per-swap EVM budget multiplied by concurrency in the settlement reserve.
timing_safety_margin_seconds 600 Additional common timing margin.
minimum_seconds_before_payment 600 Minimum time remaining to begin first relay; does not authorize abandoning an already-possible relay.
Field Checked-in example Meaning
elf_path "../chainjump/artifacts/chainjump-program" Exact reviewed Chainjump parent ELF; keep outside the managed artifact directory.
requester_key_file "state/prover.key" Separate dedicated SP1 requester private key file.
network_rpc_url "https://rpc.mainnet.succinct.xyz" Succinct network endpoint; release operation uses mainnet.
prover_whitelist 6 entries; see source example Nonempty reviewed, duplicate-free, nonzero prover addresses; existing requests keep their signed list.
request_timeout_seconds 600 Paid request lifetime, at least 60 seconds; all three attempts must fit the proof budget.
auction_timeout_seconds 180 Maximum viable unassigned-auction wait, at least 60 seconds and no greater than request lifetime.
minimum_auction_period_seconds 15 Positive auction duration encoded in each signed request, no greater than auction timeout.
maximum_market_price_age_seconds 120 Age for an advisory market-price warning; accepted range 1–600.
maximum_price_per_billion_pgu_prove "1" Nominal PROVE per billion PGU cap; must resolve to integer base units per PGU and align to the tick.
maximum_total_cost_prove "12" Hard worst-case charge cap per request, including base fee and full PGU limit.
requester_balance_cushion_prove "12" Unallocated requester balance cushion; at least one maximum-cost request.
Field Checked-in example Meaning
state_file "state/solver-state.json" Durable JSON state; sibling .artifacts directory is reserved for managed recovery files.
maximum_artifact_storage_mib 1024 Fresh-bid admission threshold in MiB; reaching it does not stop recovery or delete unknown files.

One MiB is 1,048,576 bytes. Keep managed artifacts separate from secrets, configuration, logs, and the guest ELF.

Stop the runner before edits; signed transactions and proof requests keep their original terms. Follow upgrade requirements and recheck timing reserves when changing confirmations, concurrency, or proof lifetimes. Review whitelist membership before operating; its six example entries reflect a review ending 2026-08-20.