Skip to main content

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.