@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
| Prop | Type | Default | Description |
|---|---|---|---|
| sellerrequired | address | — | Receives funds on confirmDelivery / claimAfterTimeout. |
| pricerequired | uint128 | — | Listing price in wei (native IP). |
| timeoutSecsrequired | uint64 | — | Seconds after paidAt before the seller can claim unilaterally. |
| arbiterrequired | address | — | Optional dispute resolver. address(0) = no refund path. |
Flow
pay(uuid)— buyer escrows the price (excess refunded same tx).confirmDelivery(uuid)— buyer signs off → seller paid + buyer reads.claimAfterTimeout(uuid, buyer)— seller only, afterpaidAt + timeoutSecs.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.