Synchronisation — the computed clock
Every Zeq computation happens at a tick. Step 6, PULSE, stamps it. The tick is a Zeqond, the framework's native unit of time:
1 Zeqond = 0.777 sexactly (777,000,777 ns— see the constants)- the HulyaPulse heartbeat is
1.287 Hz— one pulse per0.777 s, sincef_H · τ = 1 - durations are quoted in Zeqonds and millizeqonds (mz), never in seconds
But the property that matters for computation is not the unit — it is how a node knows what tick it is.
The tick is computed, never received
The canonical zeqond number is pure arithmetic:
zeqond_number = floor(unix_milliseconds / 777)
That is the whole formula (zeqondClock.ts, mirrored in computePulse and the cross-node
verifierNode). A node does not ask a time-server what tick it is. It does not run a
consensus round to agree on the time. It reads its own wall clock and divides. Because the
formula is fixed, any two nodes reading the same instant compute the same zeqond number —
without ever communicating.
This is why the docs never say a node is "synced". There is no synchronisation event — no handshake, no message, no agreement. The tick is computed, identically, everywhere. Writing "synced" would imply a network step that does not exist.
A 2026-06-12 audit caught and fixed a real bug here:
/api/zeq/pulsehad been computing the tick asfloor(sec / 0.777000777)while the audit chain stampedfloor(ms / 777). The two had drifted ~2,292 ticks apart since the epoch. One formula, one truth — both now usefloor(ms / 777). The lesson is in the source as a comment.
What the clock coordinates (and what it doesn't)
Inside a node, a lightweight tick loop drives the compliance and awareness layer: every
0.777 s the node hashes its current state and writes an audited transition row keyed to the
framework-wide zeqond_number. To align when it hashes with its peers, a node may subscribe
to a shared zeq:tick channel published by a singleton. If that channel goes quiet for three
Zeqonds, the node falls back to its own local tick loop and keeps going.
The fallback is safe precisely because the zeqond_number itself is computed, not received.
Losing the shared channel changes the coordination cadence — the moment a node chooses to
hash — never the tick identity. Two nodes that have never exchanged a packet still stamp the
same Zeqond on a result computed at the same instant.
Why a computed clock makes verification possible
Here is the payoff. A result computed on node A is stamped with the Zeqond it happened on. When node B (or your own machine, or the offline verifier) checks that result, it must agree with A about what that tick was — and it does, automatically, because both derive the tick from the same arithmetic. No trust in A's clock is required.
A blockchain needs every participant to agree on an ordering through consensus. Zeq needs no agreement on time at all — the clock is a function, not a vote. Strangers can check each other's timestamps because they both compute the timestamp the same way.
The computed clock also anchors the proof-of-elapsed-Zeqonds seal:
the verifiable delay function chains over the head state every ~1287 Zeqonds, binding the audit
chain to elapsed sequential time that anyone can verify offline in O(log t).
The SDK ticks too
The clock is not server-only. The SDK carries its own tick, so a client device beats on the
same 1.287 Hz HulyaPulse and computes the same Zeqond numbers as every node. The clock is a
property of the framework, not of any one machine — which is the final reason a result is
portable: the time it carries is reproducible by anyone, anywhere.
Read next
- Precision & proof — the signed envelope the Zeqond stamps
- The constants —
τandf_H, the values behind the clock - HulyaPulse & Zeqond — the timing layer in depth
The tick is computed, not received. That is what lets any node verify any other.