Freelance Pay

Instant, gasless payments for freelancers via state channels. Pay by ENS, settle on any chain.

Freelance Pay

Created At

HackMoney 2026

Winner of

ENS

ENS - Integrate ENS

Prize Pool

Project Description

FreelancePay solves the broken payment experience for freelancers. Traditional payment methods charge 3-8% in fees and take 3-7 days to settle. FreelancePay uses Yellow Network state channels to enable instant, gasless payments denominated in USDC.

How it works:

  1. Freelancers register an ENS name and store their rate, services, and preferred settlement chain as ENS text records — creating a portable, decentralized professional profile.
  2. Clients search for a freelancer by their ENS name (e.g., robertofreelance.eth), which is resolved on-chain using custom wagmi hooks.
  3. The client opens a payment session by depositing USDC into a Yellow Network state channel using the Nitrolite SDK (ERC-7824).
  4. Multiple payments are sent instantly and gaslessly within the state channel — each confirmed in under 100ms with zero gas costs.
  5. When the session closes, the final balance is settled on-chain, and Circle Arc bridges the USDC to the freelancer's preferred chain.

The result: only 2 on-chain transactions (deposit + settlement) instead of one per payment, saving freelancers significant time and money.

Tech stack: Next.js 14, TypeScript, wagmi, RainbowKit, @erc7824/nitrolite SDK, ENS text records, Circle CCTP, Tailwind CSS. Deployed on Ethereum Sepolia testnet.

How it's Made

FreelancePay is built with Next.js 14 and TypeScript as the frontend framework, using wagmi v2 and RainbowKit for wallet connectivity. Yellow Network Integration: We use the @erc7824/nitrolite SDK to create state channels for instant off-chain payments. The SDK's createAppSessionMessage and createCloseAppSessionMessage functions handle session lifecycle, while payments are processed as signed state updates over WebSocket connections to Yellow's ClearNode. ENS Integration: We wrote custom hooks (useENSProfile, useEnsAddress with chainId for Sepolia) beyond RainbowKit's default ENS support. Freelancer profiles (rate, services, preferred chain, availability) are stored as custom ENS text records with the com.freelancepay prefix. Name resolution works on Sepolia testnet. Circle Arc Integration: USDC settlement uses Circle's CCTP for crosschain bridging. When a payment session closes, funds are bridged from the state channel to the freelancer's preferred chain (Ethereum, Polygon, Arbitrum, Base, or Arc). The architecture separates concerns into three layers: Identity (ENS), Payments (Yellow Network state channels), and Settlement (Circle Arc). This modular approach allows each component to be upgraded independently.

background image mobile

Join the mailing list

Get the latest news and updates