Seven Layer
Vault API

Release conditions

Time-lock and quorum conditions for a seal.

Every seal carries a condition that governs when it can open. The condition is a tagged JSON object on the condition field, discriminated by type.

Time-lock

Releases after a specific Unix timestamp. Maturity is enforced by sequential work (a challenge/proof exchange), not by trusting the caller's clock — see Releasing.

{
  "type": "time",
  "unlock_at": 1750000000
}
FieldTypeDescription
type"time"Discriminator
unlock_atintegerUnix timestamp (seconds) the seal may open at

Use it for embargoes, scheduled disclosures, wills, and dead-man switches.

Quorum

Releases once a threshold of named approvers has consented.

{
  "type": "quorum",
  "required": 2,
  "approvers": ["alice", "bob", "carol"]
}
FieldTypeDescription
type"quorum"Discriminator
requiredintegerNumber of approvals needed (the t in t-of-n)
approversstring[]Identities allowed to approve (the n)

Approvals are submitted with POST /v1/approve/:id. No single approver — including the operator — can release alone.

A condition is set once, at seal time. It is part of what the Merkle root commits to, so it cannot be quietly changed afterward.

On this page