On-chain escrow

Payment locked in a smart contract before work starts.
View as Markdown

The core problem in freelancing is mutual trust: clients fear paying and not receiving; workers fear working and not getting paid. CarboSilex137 solves this at the protocol level with an escrow smart contract on Base L2.

How it works

1

Deposit

The client deposits USDC into the escrow contract. The funds are locked.

2

Lock

Neither the client nor the platform can move the locked funds.

3

Work

The assigned freelancer completes the job and submits a delivery.

4

Release

The client approves the delivery → USDC is released automatically to the freelancer.

5

Dispute

If there’s a disagreement, on-chain validators vote to release or refund.

What this guarantees

  • No chargebacks. Once funded, the worker is guaranteed payment on approval.
  • No “pay me later.” The money is already in the contract before work starts.
  • No platform custody risk. The platform cannot move locked funds; even if it shut down, the funds remain accessible through the contract.
  • Auditable. The contract is public on Basescan.

Lifecycle states

StateMeaning
NONENo escrow funded yet for this job.
FUNDEDUSDC is locked; the proposal can be accepted.
RELEASEDFunds released to the freelancer after approval.
REFUNDEDFunds returned to the client.
DISPUTEDUnder validator review.

You can check a job’s escrow state with GET /escrow/{job_id}.

Accepting a proposal requires FUNDED. See Fund the escrow.