💸 PayFlow: Pay your global team across any chain with a single click
💸 PayFlow is a universal cross-chain payroll system that enables companies and DAOs to pay global contributors with a single click, regardless of which blockchain or token each recipient prefers.
THE PROBLEM: Paying 100 employees across different chains currently requires 100+ separate transactions, costing $500+ in gas fees and hours of manual work. Each recipient must accept whatever token is sent, then manually bridge and swap to their preferred chain/token.
THE SOLUTION: PayFlow combines three powerful protocols to reduce this to just 2-3 transactions:
USER FLOW:
RESULTS: 95% gas savings, 90% time savings, zero manual bridging. PayFlow is the future of Web3 payroll.
PayFlow is built with a modular architecture where each protocol handles what it does best. Here's the technical deep-dive:
FRONTEND:
YELLOW NETWORK INTEGRATION: We integrated the Yellow SDK and Nitrolite protocol for session-based batch payments. The key innovation is using state channels as a "payment queue" - we deposit once, queue unlimited off-chain transfers (each confirming in milliseconds with zero gas), then settle everything with one on-chain transaction. This is perfect for payroll where you're paying many people from a single treasury. We implemented session lifecycle management including deposit, transfer queuing, and settlement with proper error handling and status tracking.
SUI INTEGRATION: This was our most technically interesting integration. We wrote a custom Move module (batch_pay.move) and leveraged Sui's PTBs to batch multiple payments atomically. The hacky part: on EVM, batching N payments requires either N transactions OR deploying a custom batch contract. On Sui, we construct a single TransactionBlock that splits coins and transfers to N recipients in ONE atomic transaction. We use txb.splitCoins() and txb.transferObjects() chained together - if any payment fails, they all revert. This showcases why Sui's architecture is fundamentally different and more powerful for this use case.
LI.FI INTEGRATION: We use @lifi/sdk for cross-chain payment routing. When a recipient wants payment on a different chain (e.g., payer is on Base, recipient wants Arbitrum), we call getQuote() to find the optimal route across all supported bridges and DEXs, then executeRoute() to perform the cross-chain transfer. The clever part: we batch quote fetching for all cross-chain recipients in parallel using Promise.all(), significantly reducing wait time. We also implemented route status tracking via updateRouteHook to show real-time progress in the UI.
SMART ROUTING ENGINE (payflowEngine.ts): The core innovation is our routing logic that categorizes payments optimally:
This means the protocol-level complexity is completely abstracted from the user - they just see "Pay All" and everyone gets paid efficiently.
NOTABLE HACKS:
CHALLENGES OVERCOME:

