⚒️Escrow Design
We don’t hold your money—we hold the logic.
Every escrow on Trustless Work is just a structured contract: a set of keys and values that define who does what, when funds move, and under which conditions.
This page gives you the mental model for designing escrows before you ever touch code. The schema defines the shape of an escrow; you decide the logic.
Escrow structure
An escrow is a JSON body with these core parts:
Escrow ID: On-chain identifier of the contract. Deposit Address.
Engagement ID & Title → configurable strongs, help identify the contract.
Roles → who marks, approves, releases, resolves, and receives
Description → why the escrow exists
Milestones → what must be completed to unlock funds
Amount & Fees → how much is locked, how much the platform earns
Trustline → which asset is used (USDC, or any Stellar-issued token)
Flags → state indicators (disputed, released, resolved)
Two Escrow Types
Trustless Work supports two escrow types:
Single-Release Escrow Multiple milestones, one payout. Useful for deposits, one-off jobs, or simple deliveries.
Multi-Release Escrow Multiple milestones, multiple payouts (one per milestone). Perfect for projects, grants, or milestone-based funding.
Roles in Context
Every schema includes a roles object. Roles are:
Approver → validates milestone completion.
Service Provider → delivers work, provides status updates.
Platform Address → can make chanes before escrow is funded. Optional: can earn fees (platform fee).
Release Signer → executes fund release.
Dispute Resolver → arbitrates when things go wrong, can re-route funds if dispute is raised.
Receiver → final destination of funds
Lifecycle Integration
Schemas map directly into the escrow lifecycle:
Initiation → define schema
Funding → lock assets via trustline
Milestone updates → service provider adds progress
Approvals → approver signs off
Release → release signer triggers transfer
(Optional) Dispute & Resolution
🚀 Next Steps
Define Escrow Properties
Choose Your Escrow Type
Assign Roles
Follow the Lifecycle
Then: Test it in our dApp Integrate Trustless Work into your platform Try out our Vibe-Coding Guide Use our escrow-blocks
Last updated
Was this helpful?