Skip to main content

Overview

In this guide we build a simple freelance payment flow where:
  • A client locks payment in escrow
  • A freelancer delivers work
  • The client approves and funds are released
  • Either party can raise a dispute if something goes wrong
Pacta handles all the escrow logic. You only write the UI and business logic.

The Flow

Step 1 — Client Creates and Funds the Agreement

When the client posts a job and hires the freelancer:

Step 2 — Freelancer Accepts (Deposits Bond)

The freelancer deposits a small bond to signal commitment. This is optional — you can design your app to not require it by setting releaseConditions to only require the client to deposit and approve.

Step 3 — Client Approves After Delivery

Once the freelancer delivers the work and the client is satisfied:

Step 4 — Settlement

Once both parties approve, your backend bot or the client’s UI triggers settlement:

Step 5 — Each Party Claims Funds

Handling a Dispute

If the client is not satisfied with the deliverable:
Your platform arbiter reviews the evidence off-chain and rules:

Handling Cancellation

If the freelancer goes silent and the job expires:
If both parties agree to cancel before expiry:

Checking Agreement State in Your UI

What Your Platform Does NOT Need to Build

  • Fund custody logic
  • Escrow smart contracts
  • Settlement mechanics
  • Dispute state machine
Pacta handles all of that. You focus on the job posting UI, the deliverable review flow, and the arbiter dashboard.