Hello, Zeq
Your first reading, in three lines. No account, no key — the HulyaPulse clock runs in-process.
import { pulse } from "@zeq/sdk";
// The HulyaPulse system clock — 1.287 Hz, counted in Zeqonds. Pure, local.
const p = pulse();
console.log(`Zeqond ${p.zeqond} · phase ${p.phase.toFixed(3)} · R(t) ${p.R_t}`);
pulse() is pure local math — no network, no key. For physics, new ZeqClient() with no key also runs in-process: the bundled solvers plus
NIST constants, covering the subset of the catalogue the local solver
knows. It's the right mode offline and for timing — but it does not
solve every operator, and local results are unsigned. The full
catalogue, the master equation, and signed/verifiable results require a
key (platform mode, below).
Compute on the platform — a signed, verifiable envelope
Pass an apiKey and an origin and the same call routes to the
platform. Now the result comes back Ed25519-signed: a claim anyone
can re-derive bit-for-bit and check, with no account and no secrets.
import { ZeqClient } from "@zeq/sdk";
const prod = new ZeqClient({ apiKey: "zsm_...", origin: "https://zeqsdk.com" });
// General relativity — Schwarzschild radius of a solar-mass body.
const horizon = await prod.compute({
domain: "general_relativity",
operators: ["KO42", "GR37"],
inputs: { mass: 1.98892e30 },
});
console.log(`${horizon.value} ${horizon.unit}`); // → 2954.0077 m
console.log(horizon.signed?.claim.registry_version); // the physics fingerprint
console.log(horizon.signed?.public_key); // the computing node's Ed25519 key
console.log(horizon.explorer_url); // this exact tick, on the Explorer
The signed.claim block pins the registry version, the operators, the
inputs, and the value — everything needed to reproduce the result
exactly. The platform also meters the call against your ZEQ balance and
returns a tally_charge receipt.
Verify it — offline, no secrets
Hand the envelope to verify. It POSTs the signed claim to a node's
/api/attest, which independently re-derives the physics bit-for-bit
and checks the Ed25519 signature. Point it at a different node than
the one that computed the result for true independence — no key needed.
import { verify } from "@zeq/sdk";
const v = await verify(horizon, { origin: "https://zeqond.com" });
console.log(v.verdict, v.valid); // "agree" true
The same check is a one-liner from the terminal (zeq verify) and from
the public scripts every node serves (/verify-zeq-result.mjs). That's
the whole point: the number is the artifact, and anyone can confirm it.
What just happened
pulse()— pure local math, no network.new ZeqClient().compute()— runs the bundled solver subset in-process; fast, unsigned, partial coverage.new ZeqClient({ apiKey, origin }).compute()— routes to the platform; full catalogue, returns a signed, metered, verifiable envelope.verify(envelope, { origin })— independent recompute + Ed25519 signature check on any node, no secrets.
Same interface, two modes. Pick local for speed, platform for proof.
Next
Compose operators → Composing operators.