rflow.yaml
One file defines the whole project. Everything below rflow_version, name,
config and workflows is optional — no signer is needed to monitor, no networks
are needed for cron + HTTP automations.
rflow_version: 1 # config language version — only 1 is valid today
name: my-project
config: { ... } # engine settings: port, db_connection, concurrency, HA
networks: [ ... ] # one list feeds BOTH embedded engines
signer: { ... } # global signing provider (rrelayer schema, 9 providers)
relayers: { ... } # named wallets, created + cloned automatically
contracts: { ... } # global ABI/address registry
constants: { ... } # static values for expressions
secrets: { ... } # log-redacted values for expressions
lists: { ... } # runtime-mutable watchlists (Postgres-backed)
notifications: { ... } # named channels (telegram/slack/discord/pagerduty/opsgenie/twilio)
workflows: { ... } # the automations themselves
profiles: { ... } # per-environment overlays (--profile <name>)Rules
- Maps are keyed by name —
workflows,relayers,contracts,listsand notification channels are maps, and the key is the identity. - Strict validation — an unknown key anywhere is a hard error.
rflow validatecollects all errors before reporting instead of stopping at the first. - Definition vs state — the YAML is the definition; runtime state (pause flags, cursors, run history) lives in Postgres and survives edits and restarts.
- Environment substitution —
${VAR}anywhere in the file is replaced from the environment (a.envin the project directory is loaded automatically). Secrets are never written to disk by rflow. - One expression language everywhere —
${{ ... }}works in conditions and values alike. See Expressions.
Pages
- config — port, db_connection, max_concurrent_runs, relayer_api, ha
- networks — chains + every indexer/relayer passthrough
- signer — the 9 signing providers, per-network overrides
- relayers — named wallets, lifecycle, per-relayer policies
- contracts — registry, addresses, factory tracking
- constants, secrets & lists — including http/sql/file list sources
- notifications — telegram, slack, discord, pagerduty, opsgenie, twilio
- profiles & editor setup — per-environment overrides, JSON Schema autocomplete
- workflows — triggers, steps, control flow, expressions