Skip to main content

Timelock Release Gate

A generic release gate — no funds, no escrow. held → released once N sign events land (default 2), or → expired when a one_shot deadline passes. Set at_unix on the expiry trigger to your real deadline (the default is a far-future placeholder). Drop-in for embargoes, scheduled unlocks, dead-man switches, and N-party release approvals.

CategoryFoundations
Template IDtimelock-release
Definitiontimelock_release v1.0
States3 (initial: held; terminal: released, expired)
Transitions2
Operators composedKO42
Audit clockon · tick rate 1

What it's for

  • Embargo / scheduled unlock
  • Dead-man switch
  • N-party release gate with a deadline

States

StateRole
heldinitial
releasedterminal
expiredterminal

Transitions

FromToOperatorFires whenProofTrigger / actions
heldreleasedKO42noon_aggregate · count >= 2 over 1000000 Zeqonds, event sign · post: emit released
heldexpiredKO42noone_shot · at_unix 4102444800 · post: emit expired

Operators it composes

Each transition fires a registry operator through the master equation (compute → prove → verify). This template composes:

  • KO42

Browse the operators at /operators/; the building blocks a transition calls are the framework's protocols. KO42 is the always-on substrate operator; physics operators carry proof_required: true, so each fire runs the full compute → prove → verify path and lands a verifiable proof digest on your entangled state.

Deploy it

Inspect the full definition, then deploy it onto your state machine. Every fire is Zeqond-stamped onto your entangled state.

# 1. Inspect — the full definition (states, transitions, operators) as served
curl -sS https://zeqsdk.com/api/contracts/templates/timelock-release

# 2. Deploy onto your machine (auth: session; body carries your machine slug)
curl -sS -X POST https://zeqsdk.com/api/contracts/templates/timelock-release/deploy \
-H "Content-Type: application/json" \
-b "<your session cookie>" \
-d '{"slug":"<your-machine>"}'
# → 201 { "ok": true, "contract": { "id": "…", "currentState": "held", … },
# "template_id": "timelock-release" }

The deploy path runs the same two-stage validation as the canonical create route (ContractDefinitionSchema.parse + validateContractDefinition against the live registry), writes the creation row onto your entangled state, and schedules the first fire. From there, drive transitions with POST /api/chain/<your-machine>/contracts/<id>/transition or let any triggers fire them autonomously.

Next

  • Contract IDE — author, preview, and deploy contracts (this template is in the Templates tab).
  • State Contracts — the full contract model: conditions, triggers, pre/post actions, lifecycle.
  • Templates Library — every ready-to-deploy contract, grouped by category.
  • Protocols — the named building blocks a transition composes.