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

Onchain workflow automation · Rust · self-hosted

Ship production onchain workflows without building the control plane.

rflow turns GitHub-Actions-shaped YAML into durable, reorg-aware automation for EVM chains. Watch events, evaluate conditions, approve and simulate transactions, and recover work from a Postgres journal—all in one self-hosted binary.

Embedded rindexerEmbedded rrelayerPostgres-backed state
rflow.yaml
workflows:
transfer-alert:
  trigger:
    event:
      contract: USDC
      name: Transfer
      network: ethereum
      where: "${{ trigger.args.value > wei('100000', 6) }}"
      confirmations: 20
  steps:
    - id: simulate
      read:
        contract: Treasury
        function: "canAccept(address,uint256)"
    - id: alert
      notify:
        channel: ops
        message: "large transfer: ${{ trigger.tx_hash }}"
Durable executionretained trigger identities dedupe runs; transaction submissions carry idempotency keys
Reorg-awarehead-speed alerts, depth-gated payments, and explicit reorg handlers
Any custodyraw keys, KMS, secret managers, Fireblocks, Turnkey, Privy, and more

What it replaces

One workflow engine instead of a pile of bots, queues, and scripts.

HTTP calls, notifications and local commands need their own idempotency when external effects can repeat after a crash. Read the execution guarantees and rehearsal limits before enabling consequential workflows.

The operating model

Declare the workflow. rflow owns the boring hard parts.

You describe what should happen. rflow handles indexing, state, idempotency, relaying, confirmations, retries, failure handling, observability, and backfill/live handoff.

  1. ObserveTail chain data, webhook payloads, schedules, or indexed SQL.
  2. DecideEvaluate strict expressions, budgets, simulations, and approvals.
  3. ActSend transactions, call HTTP services, run commands, and notify teams.
  4. RecoverHandle retries, reorgs, failures, backfills, and state repair.

Get moving

Install rflow, scaffold a workflow, and run it locally.

Install rflow