Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

networks

One networks: list feeds both embedded engines — indexer settings and relayer settings live side by side on the same entry. Optional: pure off-chain projects (cron → HTTP → notify) declare no networks and neither engine boots.

networks:
  - name: ethereum
    chain_id: 1
    rpc: [${ETH_RPC}, ${ETH_RPC_FALLBACK}]   # one url or a list of fallbacks
    ws: ${ETH_WS}                            # RESERVED - parsed but not wired yet (validate warns)
    confirmations: 12                        # relayer CONFIRMED depth (default 12)
  - name: base
    chain_id: 8453
    rpc: ${BASE_RPC}

Core fields

FieldRequiredDescription
nameYour label for the chain — referenced by contracts, triggers and steps
chain_idThe EVM chain id
rpcOne provider url or a list (fallback order)
wsReserved — not wired yet. Parsed for forward compatibility, but neither engine consumes it today (head tracking stays HTTP polling; tune block_poll_frequency instead). rflow validate warns when set
confirmationsDepth at which the relayer marks a tx CONFIRMED (default 12). Not to be confused with per-trigger confirmations
signing_providerPer-network signing provider override

rindexer passthroughs

All optional; passed verbatim to the embedded indexer (semantics documented at rindexer.xyz):

FieldWhat it controls
block_poll_frequencyHow often the indexer polls for new blocks
max_block_rangeMax block span per eth_getLogs request
compute_units_per_secondRate limiting for CU-metered providers
get_logs_settingsAdvanced log-fetch tuning
multicall3_addressOverride the Multicall3 address on exotic chains
reorg_handlingrindexer reorg detection tuning

rrelayer passthroughs

All optional; passed verbatim to the embedded relayer (semantics documented at rrelayer.xyz):

FieldWhat it controls
gas_providerGas price oracle (fallback / blocknative / infura / tenderly / etherscan / custom)
gas_bump_blocks_everyHow many blocks before a pending tx's gas is bumped
max_gas_price_multiplierCap on gas escalation
enable_sending_blobsAllow EIP-4844 blob transactions
permissionsAllowlists, disable_native_transfer, disable_transactions, ...
api_keysNetwork-scoped API keys for the (opt-in) relayer API
automatic_top_upRelayers fund each other / from a Safe when balances run low

Example top-up — the treasury relayer keeps every other relayer above 0.1 native:

networks:
  - name: ethereum
    chain_id: 1
    rpc: ${ETH_RPC}
    automatic_top_up:
      - from:
          relayer:
            address: "${{ relayers.treasury.address }}"
            internal_only: true
        relayers: "*"
        native: { min_balance: "0.1", top_up_amount: "0.2" }

rflow validates these blocks when it generates the runtime engine configs at boot (.rflow/runtime/{rindexer,rrelayer}/) — env placeholders are preserved, so secrets never land on disk.