Bid Lifecycle

Buying a contract is the bid issuance action.

Sequence

  1. Buyer calls POST /api/arbitration/contracts/buy with:
    • witness_proof
    • encrypted_witness_secret
    • witness_zkp
  2. Contract is created in issued state.
  3. Seller explicitly accepts via POST /api/arbitration/contracts/{id}/accept.
  4. Accept response carries witness_secret_encrypted_for_seller.
  5. Seller decrypts that value locally and calls POST /api/witness/replace to rotate custody to a fresh seller-held secret.
  6. Contract proceeds with deliver/settlement transitions.

Fraud resistance

  • Seller cannot claim acceptance never happened: acceptance is signed and stored.
  • Seller cannot truthfully claim ownership without witness replacement evidence.
  • Buyer cannot fake contract custody without valid current witness secret.