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
| Field | Required | Description |
|---|---|---|
name | ✅ | Your label for the chain — referenced by contracts, triggers and steps |
chain_id | ✅ | The EVM chain id |
rpc | ✅ | One provider url or a list (fallback order) |
ws | Reserved — 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 | |
confirmations | Depth at which the relayer marks a tx CONFIRMED (default 12). Not to be confused with per-trigger confirmations | |
signing_provider | Per-network signing provider override |
rindexer passthroughs
All optional; passed verbatim to the embedded indexer (semantics documented at rindexer.xyz):
| Field | What it controls |
|---|---|
block_poll_frequency | How often the indexer polls for new blocks |
max_block_range | Max block span per eth_getLogs request |
compute_units_per_second | Rate limiting for CU-metered providers |
get_logs_settings | Advanced log-fetch tuning |
multicall3_address | Override the Multicall3 address on exotic chains |
reorg_handling | rindexer reorg detection tuning |
rrelayer passthroughs
All optional; passed verbatim to the embedded relayer (semantics documented at rrelayer.xyz):
| Field | What it controls |
|---|---|
gas_provider | Gas price oracle (fallback / blocknative / infura / tenderly / etherscan / custom) |
gas_bump_blocks_every | How many blocks before a pending tx's gas is bumped |
max_gas_price_multiplier | Cap on gas escalation |
enable_sending_blobs | Allow EIP-4844 blob transactions |
permissions | Allowlists, disable_native_transfer, disable_transactions, ... |
api_keys | Network-scoped API keys for the (opt-in) relayer API |
automatic_top_up | Relayers 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.