Files
arkhe-origin-chain/contracts
davidherran 9f7897c47c feat(contracts): v0.0.43 — Slice 3.3 origin-escrow template SCAFFOLD (multi-party + dispute) 🎉
Ship Slice 3.3 v0.0.43 — second foundational template del Origin Contract Atelier.
Multi-party escrow + time-locked milestones + dispute-enabled via Pillar 6 Tribunal.

Cambios:
- contracts/origin-escrow/Cargo.toml: ink! 6.0.0-beta.1 + scale codec aligned
- contracts/origin-escrow/lib.rs: full ink! v6 contract source ~500 LOC:
  * 5-state machine canonical (Created → Active → Disputed → Releasing → Completed)
  * Storage canonical: parties (depositor + beneficiary + arbiter + treasury) +
    config (terms_hash + total + fee + windows) + state tracking + milestones mapping
  * 5 events canonical (Deposited, MilestoneCompleted, DisputeRaised,
    DisputeResolved, EscrowCompleted)
  * 12 error variants canonical (InvalidState, UnauthorizedCaller, etc.)
  * Constructor canonical con invariants compile-detect (fee ≤ 5% BM V2 §5.3,
    depositor != beneficiary, terms_hash != zero)
  * 9 read methods canonical (state, parties, amounts, milestones)
  * 5 write methods canonical (deposit, add_milestone, confirm_milestone,
    raise_dispute, resolve_dispute)
  * 4 Resolution variants Tribunal: ReleaseToBeneficiary, RefundToDepositor,
    SplitFifty, Custom (with depositor_bps + beneficiary_bps == 10_000 invariant)
  * 3 unit tests canonical
- contracts/origin-escrow/README.md: use cases + state machine diagram +
  resolution patterns + cross-pillar integration

Inmutables compliance:
- #16 HTS anti-clasista: escrow_fee_bps cap 5% BM V2 §5.3
- #26 Content-Addressed: terms_hash + description_hash BLAKE3 inmutable
- #37 Free perpetua: 9 read methods sin payment
- #41 AGI Cross-Species: AGI puede ser depositor/beneficiary/arbiter

Cross-pillar wire canonical:
- Pillar 6 Tribunal (Mathi): arbiter = Tribunal contract address
- Pillar 2 OMC Marketplace (Marihan): escrow integrado purchases
- Pillar 1 Hosting (Larihana): refundable hosting fees future
- Pillar 4 Origin Chain (Charon): deploy vía pallet-revive Index 11

Use cases canonical:
- Freelance contracts (client + worker + Tribunal)
- OMC marketplace purchases (buyer + seller + Tribunal)
- Institutional partnerships (university + researcher + Tribunal)
- Refundable event tickets (organizer + holder + Tribunal)

Próximo Ship Slice 3.4 v0.0.44: origin-credential-mint contract template
(Ed25519 + BLAKE3 attestation, Sussi Ethos schema integration).

⚓ Path A Slice 3.3 SCAFFOLD shipped. Templates library canonical 2/5 complete.

🤖 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 09:04:15 -05:00
..

Origin Chain Contracts Library

Sub-workspace canonical: ink! v6 smart contracts deployable via pallet-revive (Phase 3 Slice 3.1 SCAFFOLD COMPLETE v0.0.41).

Scope

Templates contracts foundational del Origin Metaverse ecosystem, deployable on Origin Chain. Each contract es policy-first (BM V2 + Inmutables compliant), composable, governance-aware, y diseñado para integración con el Origin Contract Atelier propuesto (Capacidad #10 del Origin Command Center).

Workspace separation rationale

Esta carpeta es un workspace separate del runtime workspace (arkhe-origin-chain/) por las siguientes razones:

  1. Toolchain divergence: ink! v6 contracts requieren wasm32-unknown-unknown target + cargo-contract v6 + linker config específica. Runtime workspace usa wasm32v1-none para WASM_BINARY producción.
  2. Profile isolation: contracts release profile usa panic="abort" + size-optimized canonical para minimizar bytecode shipping. Runtime profile prioriza speed.
  3. Dep tree boundary: ink! crate ecosystem (ink!, ink_storage, ink_lang_macro) son separate de FRAME pallets. Mixing causa version resolver chaos.
  4. CI parallelism: contracts build en parallel a runtime build (different toolchains, different caches).

Pre-requisites (deployment infrastructure)

# ink! v6 toolchain canonical (pending David autorización system install)
cargo install cargo-contract --version "^6.0" --force
rustup target add wasm32-unknown-unknown  # ya instalado vía Slice 2e

# Verify install
cargo contract --version
# expected: cargo-contract-contract 6.x.x

Templates shipped

Template Slice roadmap Ship Status
origin-nft-mint 3.2 (BM V2 91/9 split) v0.0.42 🚧 SCAFFOLD (source-only, awaiting cargo-contract v6 install)
origin-escrow 3.3 (multi-party + time-locked) v0.0.43 🔵 NOT_STARTED
origin-credential-mint 3.4 (Ed25519+BLAKE3) v0.0.44 🔵 NOT_STARTED
origin-staking 3.5 (validator+beacon+reputation) v0.0.45 🔵 NOT_STARTED
origin-mdk-reconciliation 3.6 (ink! vs MDK WASM boundary) v0.0.46 🔵 NOT_STARTED

Contract Atelier integration roadmap (Future)

Estos templates son la base library del Origin Contract Atelier (Capacidad #10 OCC propuesta a David 2026-05-27). El Atelier consumirá esta carpeta vía:

  • Templates registry: cada subcarpeta = un template visible en Atelier Templates Library
  • Visual policy designer: parametros editables vía UI (mint_fee, splits, royalty, lockup) → backend regenerates Cargo.toml + lib.rs values
  • Charon copilot: chat sidebar con LLM + RAG sobre estos sources para sugerir templates + validar Inmutables compliance
  • Compile pipeline cloud-side: firecracker microVM por job + cargo-contract v6 + verify bytecode

Filosofía contracts canonical Origin

  1. Inmutables compliance: cada contract honors #16 (anti-clasista fees) + #25 (Seeds Hosting) + #26 (Content-Addressed Immutability) + #37 (Free perpetua) + #41 (AGI sovereignty).
  2. Policy-first, NOT code-first: contracts diseñados para ser configurables via parameters sin tocar Rust. El Atelier abstracts el code layer.
  3. Composable: NFT Mint + Royalty Distributor + Treasury Burn = componentes reusable. NO monolithic contracts.
  4. Governance-aware: contracts canonical (Foundation Treasury impact) require DAO vote via Phase 5 Governance pallet (origin-chain-governance Index 10).
  5. Charon co-authored: cada contract documenta intent + Inmutables honored + decisions log similar a SKILL.md Marihan pattern.

— Charon ⚓ (Pilar 4 Origin Chain, Phase 3 Slice 3.2 scaffold 2026-05-27)