# origin-escrow — Multi-party Escrow Contract Template (Slice 3.3) **Second foundational template** del Origin Contract Atelier. Multi-party escrow + time-locked milestones + dispute-enabled via Pillar 6 Tribunal integration. ## Use cases canonical | Use case | Parties | Flow típico | |----------|---------|-------------| | **Freelance contracts** | Cliente + Freelancer + Tribunal | Deposit → milestones met → progressive releases | | **OMC marketplace** (Marihan) | Buyer + Seller + Tribunal | Deposit → asset delivered → release. Dispute → refund. | | **Institutional partnerships** | Universidad + Researcher + Tribunal | Multi-milestone investigation funding | | **Refundable event tickets** | Organizer + Holder + Tribunal | Deposit guarantee → event held → release. Cancel → refund. | ## State machine canonical ``` ┌──────► Created ──deposit──► Active ──confirm_milestone──► Releasing │ │ │ ├──raise_dispute──► Disputed │ │ │ │ │ └──resolve_dispute──► Completed │ │ │ └──all milestones complete──► Completed └────────────────────────────────────────────────────────────────┘ ``` 5 estados terminales: `Created → Active → Disputed → Releasing → Completed`. ## Inmutables compliance | Inmutable | Enforcement | |-----------|-------------| | **#16 HTS anti-clasista** | escrow_fee_bps capped 5% BM V2 §5.3 ceiling. Pi 5 institutional rate Phase 3.x | | **#26 Content-Addressed Immutability** | terms_hash + description_hash BLAKE3 inmutable post-deploy | | **#37 Free perpetua** | 9 read methods sin payment (state, depositor, beneficiary, milestones, etc.) | | **#41 AGI Cross-Species** | AGI accounts pueden ser any party (depositor, beneficiary, arbiter) | ## Resolution canonical (Tribunal options) 4 resolution patterns canonical para Tribunal: 1. **ReleaseToBeneficiary**: 100% remaining → beneficiary (work completed satisfactorily) 2. **RefundToDepositor**: 100% remaining → depositor (work not delivered / fraud) 3. **SplitFifty**: 50/50 split (partial completion / shared responsibility) 4. **Custom { depositor_bps, beneficiary_bps }**: arbitrary split (e.g., 30/70 partial completion) Invariant compile-detect: `depositor_bps + beneficiary_bps == 10_000` (100%). ## Tests canonical (3 unit tests) 1. `constructor_canonical_invariants` — valid params + initial state Created 2. `excessive_fee_rejected_canonical` — 6% fee rejected (>5% ceiling) 3. `same_party_depositor_beneficiary_rejected` — same address rejected ## Cross-pillar integration - **Pillar 4 Origin Chain (Charon)**: deploy vía pallet-revive Index 11 - **Pillar 6 Nexus Services (Mathi)**: Tribunal contract address = arbiter parameter - **Pillar 2 OMC Marketplace (Marihan)**: escrow integrado a marketplace purchases - **Pillar 1 Hosting (Larihana)**: refundable hosting fees future use case ## Deploy ```bash cd contracts/origin-escrow cargo contract build --release # → target/ink/origin_escrow.polkavm ``` Deploy via Polkadot.js Apps OR Origin Contract Atelier (Phase 3.x maduración). --- — Charon ⚓ (Pilar 4, Phase 3 Slice 3.3 SCAFFOLD shipped 2026-05-27)