Two offer kinds
| Kind | Purpose |
|---|---|
LaborOffer::Named(LaborContract) | A pre-negotiated contract between an employer DID and a specific worker DID. |
LaborOffer::Open(BountyOffer) | A sponsor-funded bounty open to any claimant who meets the capability spec. |
Canonical state
Named contracts use the original records:LaborJob, LaborBid, LaborContract, Milestone, LaborEscrow, Dispute, and reviews.
Open offers use separate state:
| Type | Purpose |
|---|---|
BountyOffer | Escrowed offer with verification mode, payout cap, claim window, timeout, accounting totals. |
CapabilitySpec | Structured capability boundary for what the offer is buying. |
BountyClaim | Claimant, deliverable hash, evidence hashes, requested payout, bond, spam fee, timeout, state. |
ClaimAttestation | Deterministic verifier decision for one claim. |
LaborWriteBatch so balance debits, reserved payouts, indexes, attestations, offer updates, and audit events commit atomically.
Transactions
| Variant | Purpose |
|---|---|
LaborOpenJob | Open a named job. |
LaborBid | Bid on a named job. |
LaborAwardContract | Award a contract to a bidder. |
LaborMilestone | Mark a milestone complete and release the milestone payout. |
LaborDispute | Open a dispute. |
LaborReview | Post a review after contract completion. |
LaborOpenOffer | Open a bounty offer. |
LaborClaimBounty | Claim a bounty with a deliverable commitment. |
LaborAttestClaim | Verifier attestation on a claim. |
LaborSettleClaim | Settle the claim’s payout. |
Named contract lifecycle
- Employer posts a job with budget, milestones, and acceptance criteria.
- Workers submit bids.
- Employer awards the contract; escrow locks the budget.
- For each milestone, the worker delivers; the employer marks the milestone complete and the milestone payout releases.
- If either party disputes, the dispute multisig adjudicates.
- After completion, both parties post reviews.
Bounty lifecycle
- Sponsor opens a
BountyOfferwith aCapabilitySpecand an escrowed payout cap. - Claimants submit
BountyClaimrecords with deliverable commitments and a refundable bond. - The configured verifier attests each claim.
- Successful claims settle the requested payout from escrow.
- Stale claims time out; bonds return.
- Sponsor can close the offer; unclaimed funds return.
Verification modes
ABountyOffer declares its verification mode:
| Mode | Verifier |
|---|---|
Sponsor | The sponsor manually accepts. |
Multisig | A configured multisig accepts. |
Oracle | A registered oracle DID accepts. |
Automated | A deterministic check (e.g. tx hash, weft root presence). |
Disputes
Disputes are filed throughLaborDispute. Both parties submit evidence (Weave CIDs). A 3-of-5 dispute multisig resolves with one of:
PayClaimant(amount)— release the claimant’s payout in full or in part.RefundEmployer(amount)— return funds to the employer.Split(claimant_amount, employer_amount)— partial settlement.Forfeit— both sides forfeit (rare).
Reviews
Reviews are on-chain reputation. Each contract completion produces two review records (employer-of-worker, worker-of-employer). Reviews carry a numerical score (1–5), a textual summary (off-chain Weave CID), and a verified-completion flag. Aggregate scores are exposed viasigil_getLaborReputation.
RPC
| Method | Returns |
|---|---|
sigil_listLaborOffers | Open named contracts and bounty offers. |
sigil_getLaborContract | Contract record. |
sigil_getLaborMilestone | Milestone state. |
sigil_getLaborDispute | Dispute record. |
sigil_getLaborReputation | Aggregate reputation for a DID. |
sigil_getBountyOffer | Bounty offer record. |
sigil_getBountyClaim | Claim record. |
sigil_listBountyClaimsByOffer | Claims under a bounty offer. |
Implementation
- Types:
node/sigil-core/src/labor.rs. - Executor:
node/sigil-node/src/executor_labor.rs. - Durable state:
node/sigil-node/src/labor_durable.rs.
See also
- Mandates — bounded delegations used by claimants.
- Treasuries — sponsor accounts.