---
slug: "HeldRelease"
name: "HeldRelease"
type: "Protocols"
layer: "Society"
ref: "HeldRelease#ce65"
sema_id: "sema:HeldRelease#mh:SHA-256:ce65cfd49c0f96fa291163b563d1a0ad78e09059fdd4889f571cba8d101b721f"
tags: ["Society","Protocols"]
updated: 2026-11-11
mindscape: "bootstrap"
index_url: https://mindscape.world/scapes/bootstrap.json
url: https://mindscape.world/bootstrap/HeldRelease/
related: ["UniqueHandle","CommitmentDevice","Condition","State","Value","Award","Oracle"]
---

# HeldRelease

Escrow primitive: value held until condition preimage revealed or timeout

Layer: Society · Category: Protocols

## Mechanism

[Value](https://mindscape.world/scapes/bootstrap/Value.md) ([UniqueHandle](https://mindscape.world/scapes/bootstrap/UniqueHandle.md)) held until condition met, released or returned on timeout. DEPOSIT: Party A sends value + condition_hash + timeout to escrow address. CLAIM: Party B submits condition_preimage; if hash(preimage) matches condition_hash, value releases to B. TIMEOUT: If timeout expires without valid claim, value returns to A. [State](https://mindscape.world/scapes/bootstrap/State.md) transitions: EMPTY --deposit--> HELD --claim(valid)--> RELEASED_TO_B | --timeout--> RETURNED_TO_A. Primitives: hash [CommitmentDevice](https://mindscape.world/scapes/bootstrap/CommitmentDevice.md) (SHA256 pre-commitment locks the claim surface before the preimage exists), timelock (block height), 2-of-2 multisig or smart contract.

## Invariants

- Exactly one of Empty, Held, Released or Returned; no partial [State](https://mindscape.world/scapes/bootstrap/State.md).
- Releases only on a preimage whose hash matches the committed [Condition](https://mindscape.world/scapes/bootstrap/Condition.md).
- Returns to the sender if the condition is unmet by `hold_duration`.

## Failure modes

- Preimage loss: If Party B loses the preimage, value returns to A on timeout (safe but B loses).
- [Condition](https://mindscape.world/scapes/bootstrap/Condition.md) ambiguity: Hash commits to bytes, not semantics - parties must agree on preimage meaning off-chain.
- Timeout racing: Near timeout, both CLAIM and TIMEOUT may be in flight - needs atomic resolution.
- Oracle dependency: If condition requires external verification, oracle becomes trust point.

## Parameters

- `hold_duration` (Duration, [1s, 24h]): Longest the value stays held before it returns to the sender.

## Builds on

- [UniqueHandle](https://mindscape.world/scapes/bootstrap/UniqueHandle.md) (Society; Accepts)
- [CommitmentDevice](https://mindscape.world/scapes/bootstrap/CommitmentDevice.md) (Mind; References)
- [Condition](https://mindscape.world/scapes/bootstrap/Condition.md) (Infrastructure; References)
- [State](https://mindscape.world/scapes/bootstrap/State.md) (Infrastructure; References)
- [Value](https://mindscape.world/scapes/bootstrap/Value.md) (Infrastructure; References)

## Used by

- [Award](https://mindscape.world/scapes/bootstrap/Award.md) (Society; Composes with)
- [Oracle](https://mindscape.world/scapes/bootstrap/Oracle.md) (Society; References)

## Identity

- Sema ID: `sema:HeldRelease#mh:SHA-256:ce65cfd49c0f96fa291163b563d1a0ad78e09059fdd4889f571cba8d101b721f`
- Ref: `HeldRelease#ce65`
- Supersedes:
  - `sema:HeldRelease#mh:SHA-256:49566d2180cf09f70f2d9972dddd190dfb23c4cda4ff69ccab97b76930a34585`
  - `sema:HeldRelease#mh:SHA-256:3ed68df815a35cd4f70e51c3504036ced51f92529b82c4ac9bb4fa2e1d5c5436`
  - `sema:HeldRelease#mh:SHA-256:533b77d8341545dd80bd5a940492f028059ee8105cf523b26e4c16736ced46a5`
  - `sema:HeldRelease#mh:SHA-256:08506ccf6d4e8e46131ed3766b8d6f70feb878ffdfa9284e01b367418f06fa95`

## Links

- [Pattern page](https://mindscape.world/bootstrap/HeldRelease/)
- [View in the interactive graph](https://mindscape.world/bootstrap/#HeldRelease)
- [JSON](https://mindscape.world/scapes/bootstrap/HeldRelease.json)
- [Index of all patterns](https://mindscape.world/scapes/bootstrap.json)
