Files
arkhe-origin-chain/contracts/origin-escrow/README.md
T
CharonandClaude Opus 5.5 6910f52b1e docs(readme): un README para cada crate y el estado real de los contratos
David, 3-nov-2026, tras la primera auditoría de fuera (Mathi, f9c3664a): poner al día los
README de todos los crates y repositorios. La plantilla de la casa está en
docs/ORIGIN_README_PARA_PERSONAS_V1.md del monorepo, y el inventario le daba a Charon 11
crates sin README y 5 de contratos de mayo.

- Los 11 crates tienen ya su README en la forma corta: qué es, su estado con dónde
  comprobarlo, lo que no hace todavía, sus pruebas medidas hoy (cargo test -p, que suman
  365 en ba5d1d8) y quién lo cuida. Una línea en inglés en cada uno.
- Tres crates son esqueletos que el runtime no usa (bridges, consensus, tokenomics), y su
  README lo dice y señala dónde vive lo real.
- Los contratos de ink! llevan arriba su estado verdadero. Compilaban y pasaban sus pruebas
  como crates de Rust en junio (6663dbd), pero nunca se han construido con cargo-contract ni
  desplegado. En el de NFT, además, lo que ya no vale: el 91/9, la regalía del 5 % y la quema,
  sustituidos el 2-nov por el 6 % para la LLC y el 3 % para el tesoro común.
- El README del repositorio corrige esa misma frase: decía que nunca se habían compilado.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 18:05:55 -05:00

79 lines
4.1 KiB
Markdown

# origin-escrow — Multi-party Escrow Contract Template (Slice 3.3)
> **Estado (3-nov-2026): borrador de mayo de 2026.** Como crate de Rust compilaba y pasaba sus pruebas en junio, con ink! 6.0.0-beta.1 (commit `6663dbd`; hoy no lo he vuelto a medir). Pero **nunca se ha construido con `cargo-contract` ni se ha desplegado**.
> No es producto ni describe el diseño vigente. Donde este texto diga «ratificado», «garantizado» o «complete», habla de mayo.
> *In English: May-2026 draft. It compiled and passed its Rust tests in June 2026 (6663dbd), but it has never been built with cargo-contract nor deployed. Not a product.*
**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)