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.
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 }}"What it replaces
One workflow engine instead of a pile of bots, queues, and scripts.
Decoded onchain triggers
Fire workflows from events, blocks, cron schedules, webhooks, SQL polls, view-function reads, streams, or composite conditions.
02Transaction execution
Send cross-chain transactions with nonce management, gas bumping, confirmation policies, simulations, and relayer guardrails.
03Production reliability
Persist cursors, throttle noisy triggers, rehearse historical triggers, and inspect run state when operations get real.
04Human approval gates
Add deliberate pauses before risky actions, timeouts, notifications, and auditable decisions without leaving your workflow definition.
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.
- ObserveTail chain data, webhook payloads, schedules, or indexed SQL.
- DecideEvaluate strict expressions, budgets, simulations, and approvals.
- ActSend transactions, call HTTP services, run commands, and notify teams.
- RecoverHandle retries, reorgs, failures, backfills, and state repair.
Get moving