locked0 usdcopen0working0settlementusdc · 6decchainbasecustodycontract onlyreleaseper milestonecategories0
locked0 usdcopen0working0settlementusdc · 6decchainbasecustodycontract onlyreleaseper milestonecategories0
locked0 usdcopen0working0settlementusdc · 6decchainbasecustodycontract onlyreleaseper milestonecategories0
locked0 usdcopen0working0settlementusdc · 6decchainbasecustodycontract onlyreleaseper milestonecategories0

chainwork:~$escrow --status funded

The money is
alreadylocked

Freelance work where the client funds every milestone in USDC before you start, into a contract neither side controls. Each approval releases one milestone. If the client goes quiet, the timeout pays you anyway.

held by
the contract
currency
usdc on base
release unit
one milestone
escrow_latticelive
releasedlocked in escrow

Three transactions, and nobody has to trust anybody

The sequence is fixed by the contract, so the same rules apply to every job on the marketplace.

clientfunds every milestone up front
escrowholds usdc, releases per approval
freelancerwithdraws each released milestone
01createJob()

client funds the whole job

Every milestone amount moves into the escrow contract at creation. An open job here is proof of funds, not an intention.

02submitMilestone()

freelancer delivers a chunk

The deliverable is hashed on-chain and linked off-chain. Submitting starts the client's approval window.

03approveMilestone()

approval releases payment

The freelancer is credited, the fee splits to the treasury, and the money waits in a balance only they can withdraw.

Open orders

in escrow0usdcacross 0 jobs

all jobs

No jobs posted yet. Be the first — the escrow is waiting.

Both sides give up the same thing: the ability to cheat

freelancer terms

  • funds verified before line oneThe locked figure on a job is the contract's balance. Anyone can read it.
  • a deadline on the client's silenceAfter the approval window, claimTimeout releases the milestone to you.
  • payment you pull yourselfReleased funds sit in your balance until you withdraw. No payout schedule.

client terms

  • released in chunks, never up frontEach milestone is approved on its own. Unreleased amounts stay in escrow.
  • a dispute path with a decisionDispute before the window closes; an arbiter releases or refunds that milestone.
  • a clean exit while openCancel before assigning anyone and the contract refunds the full amount.

The questions that decide whether you trust this

Post a job, or take one that is already funded

Connect a wallet to start. Posting takes two transactions: approve the USDC, then create the job.