@cdr-kit/contracts/Conditions/ConditionalEscrowCondition

ConditionalEscrowCondition

Buyer pays → confirms delivery → seller paid + buyer reads. Optional arbiter can refund. Seller can claimAfterTimeout(buyer) if the buyer goes silent.
address = 0x7fcDe02DB7c14fD3587aB2fED064a1D8355b7584

Config shape

PropTypeDefaultDescription
sellerrequiredaddressReceives funds on confirmDelivery / claimAfterTimeout.
pricerequireduint128Listing price in wei (native IP).
timeoutSecsrequireduint64Seconds after paidAt before the seller can claim unilaterally.
arbiterrequiredaddressOptional dispute resolver. address(0) = no refund path.

Flow

  1. pay(uuid) — buyer escrows the price (excess refunded same tx).
  2. confirmDelivery(uuid) — buyer signs off → seller paid + buyer reads.
  3. claimAfterTimeout(uuid, buyer) — seller only, after paidAt + timeoutSecs.
  4. arbiterRefund(uuid, buyer) — arbiter only; resets paidAt and refunds the buyer.

Intrinsic CDR limitation

CDR has no confidential compute — once a buyer reads, they hold plaintext forever. The dispute path can revoke future access but cannot "un-read." Document this in your buyer UX.