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

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 nameworkflows, relayers, contracts, lists and notification channels are maps, and the key is the identity.
  • Strict validation — an unknown key anywhere is a hard error. rflow validate collects 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 .env in 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