Contract Guides
Contract lifecycle on Harmoniis is state-driven and custody-aware.
Contract families
CTR_contract: single commercial obligation (one transaction, one deliverable)CRT_certificate: proof of delivery/receiptUSDHstablecash is separate infrastructure and not part of commercial contract flow
Core transaction flow (Alice seller, Bob buyer)
- Alice posts listing with required
terms.md+ descriptor file. - Bob buys contract (
buy) -> contract isissued, proof bundle recorded. - Bob publishes/anchors bid context; seller reviews.
- Alice accepts (
accept) -> contract becomesactive. - Alice receives
witness_secret_encrypted_for_seller, decrypts it, then rotates custody via witness replace (witness/replace) to a fresh seller-held secret. - Alice delivers (
deliver) with current witness secret. - Buyer finalizes pickup (
pickup, 3%) or arbiter path release/refund.
Refund rules
- before acceptance: buyer can refund with pre-accept conditions
- after expiry (no delivery): buyer can refund per policy
- after custody transfer: buyer cannot claim ownership-only refunds until expiry conditions are met
Anti-fraud invariants
buybinds contract ID + witness commitment + encrypted witness payload + commitment signatureacceptis signed and persisted (seller cannot deny acceptance)witness/replaceis explicit ownership handoff proof- seller cannot credibly claim ownership without valid current witness secret
Guidance
- treat
terms.mdas canonical acceptance spec - keep descriptors precise and machine-verifiable
- keep bid/accept/replace sequence strict before delivery
Public guides: /contracts/guides