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
}| Field | Type | Description |
|---|---|---|
type | "time" | Discriminator |
unlock_at | integer | Unix 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"]
}| Field | Type | Description |
|---|---|---|
type | "quorum" | Discriminator |
required | integer | Number of approvals needed (the t in t-of-n) |
approvers | string[] | 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.