FlowForge

Agentic workflow automation platform: 1 place to build, deploy, & run automation workflows.

FlowForge

Created At

HackMoney 2026

Project Description

FlowForge is a no-code DeFi automation platform where users build visual workflows that execute on-chain and off-chain actions. Users design flows on a React Flow canvas by connecting blocks: triggers (e.g. Start), DeFi (Uniswap v4, LI.FI, Aave, Compound), notifications (Telegram, Slack, Email), conditions (If, Switch), oracles (Chainlink, Pyth), and AI (ChatGPT, Qwen, etc.). Workflows run in a backend execution engine that processes nodes in order (with branching), runs swap/lending via provider services, and can execute transactions on the user’s Safe wallet via a relayer. Each user gets a Safe (Gnosis Safe) per chain, created by a custom FlowForge Safe Factory and controlled by a Safe Module so the backend can act as a trusted executor (e.g. run swaps or other calls from the user’s Safe). ENS is central to the product: users can register subdomains (e.g. alice.flowforge.eth) via custom Solidity contracts (FlowForgeSubdomainRegistry + FlowForgeEthUsdcPricer on Ethereum L1); registering or renewing grants a sponsored-transaction allowance stored in the backend, so gas can be paid for the user on mainnet. The frontend uses Privy for embedded wallets and Safe (protocol-kit) for Safe creation and module enablement; an AI Workflow Assistant turns natural language into workflow steps (OpenRouter). FlowForge ties together agent-driven execution (Uniswap v4, LI.FI), programmable Safe wallets, and ENS-based identity with gas sponsorship in one automation product.

How it's Made

Tech stack: Frontend: Next.js 16 (App Router), React 19, React Flow for the canvas, Tailwind v4, Radix UI, Privy (auth + embedded wallet), Safe protocol-kit/api-kit, viem/ethers. Backend: Node/Express, TypeScript, PostgreSQL (workflows, nodes, edges, executions, users, ENS subdomains, swap/lending executions), Redis + BullMQ for workflow and execution queues so runs are async and reliable. Contracts: Foundry (Solidity); FlowForgeSafeFactory (CREATE3-deployed, relayer as owner) creates Safe proxies via Safe’s official factory/singleton; FlowForgeSafeModule (onlyExecutor) calls execTransactionFromModule so the backend relayer can execute arbitrary calls from the user’s Safe. Uniswap v4: Backend uses the V4 Quoter for quotes and the Universal Router + Permit2 for execution; frontend does a one-time token→Permit2 approval, then Permit2 approves the Universal Router so the relayer can execute swaps from the user’s Safe. LI.FI: Backend has a dedicated LiFiProvider that calls the LI.FI API for quotes and transaction payloads; supports cross-chain swap/bridge in one workflow step; frontend has a LI.FI block and backend maps it to the LIFI swap provider. ENS: Subdomain registry and pricer live on Ethereum mainnet only (ENS is L1); pricer uses Chainlink ETH/USD for ETH or USDC pricing; registry supports pay-in-ETH or pay-in-USDC and a “treasury” mode (deposit USDC/ETH, then register/renew from balance so the user only pays gas). Backend records subdomain registration via /ens/subdomain-registered, computes sponsorship (e.g. 3 sponsored txs per 0.5 USDC per week) and updates users.remaining_sponsored_txs; relayer and swap execution consume one sponsored tx per mainnet action (testnet is unlimited). Notable/hacky details: (1) CREATE3 deployment: factory/module use Solady’s CREATE3 so addresses are deterministic across chains; because msg.sender in the constructor is the CREATE3 proxy, the deploy script passes RELAYER_ADDRESS as the factory’s initial owner so the relayer EOA can call createSafeWallet. (2) Safe execution path: relayer doesn’t call the Safe directly; it calls the FlowForgeSafeModule’s execTask(safe, to, value, data, operation), and the module calls safe.execTransactionFromModule(...), so the Safe only trusts the module. (3) Workflow engine does graph traversal from the trigger node, follows edges, and uses a NodeProcessorFactory to dispatch to the correct processor (Swap, Lending, Email, Slack, If, Switch, LlmTransform, etc.); swap execution chooses Uniswap V4 vs LI.FI vs others by provider, builds and signs (or relay-executes) the tx. (4) AI workflow generation: Next.js API route calls OpenRouter with a system prompt that lists block IDs and returns a JSON { workflowName, steps: [{ blockId }] }; frontend maps block IDs to definitions and creates nodes/edges. (5) Multi-chain: factory/module are deployed per chain (e.g. Arbitrum Sepolia, Arbitrum One); ENS registry + pricer are Ethereum-only; backend chain config holds RPC URLs, Safe factory/module addresses, Uniswap/LI.FI contract addresses per chain.

background image mobile

Join the mailing list

Get the latest news and updates