For the complete documentation index, see llms.txt. This page is also available as Markdown.

Entities

Roles, milestones, trustline, and on-chain escrow entity shapes.

These are the on-chain / post-submit shapes. For list and detail UI, prefer the read model (EscrowSummary) in Reads & responses.

Roles

v2 roles use arrays for operational wallets. Single-release keeps an escrow-level receiver. Multi-release puts receiver on each milestone instead.

Single-release — Roles

type Roles = {
  approvers: string[];        // G… wallets that approve milestones
  serviceProviders: string[]; // who delivers work / updates status
  platform: string;           // platform fee address
  releaseSigners: string[];   // who can release funds
  disputeResolvers: string[]; // who can resolve disputes
  receiver: string;           // who receives the single payout
  admin: string;              // who can update / manage milestones
  observers?: string[];       // optional watchers
};

Multi-release — MultiReleaseRoles

Same as Roles, without receiver (each milestone has its own):

type MultiReleaseRoles = {
  approvers: string[];
  serviceProviders: string[];
  platform: string;
  releaseSigners: string[];
  disputeResolvers: string[];
  admin: string;
  observers?: string[];
};

Role filter — Role

Used when filtering lists (ListEscrowsParams.role):

Trustline

On deploy — DeployTrustline

On read / snapshot — Trustline

Milestones

Approvals — MilestoneApprovals

Single-release milestone — SingleReleaseMilestone

Multi-release milestone — MultiReleaseMilestone

Escrow-level dispute (single-release) — Dispute

Escrow entities

There is no escrow-level amount. Total value is the sum of milestone amounts.

Escrow is either single or multi: