Facts
Our claims, signed.
The main factual claims on grideos.com, one entry each, with evidence and status. Hash-chained, signed with Ed25519 and published for people and AI agents to check.
The ledger
Version 1, issued 2026-10-16, 22 entries. Head hash 877eb0069edb8bc0.
| ID | Claim | Status | Evidence | Hash |
|---|---|---|---|---|
GRD-001 | Grideōs is the brand of Grideos Global Corp., a corporation registered in Alberta, Canada. | self-asserted | Company page | f74a394c |
GRD-002 | Grideōs and Grideos refer to the same company; the registered name has no macron. | self-asserted | Answers | b8ee4e6a |
GRD-003 | Grideōs is based in Calgary, Alberta, with an office at #18 1750 120 Ave NE, Calgary, AB T3K 2G3. | self-asserted | Company page | bc08fa93 |
GRD-004 | Kareem Louisy is Founder and CEO of Grideōs; Vikas Arora is Co-Founder and Chief Strategy Officer. | self-asserted | Company page Dispatch 005 | b5739cfa |
GRD-005 | Grideōs builds record systems for expert work. Its systems capture what people see, say, decide and do as the work happens, keep it as one structured record that moves with the work, and make that record verifiable. | self-asserted | Company page | a3a60eca |
GRD-006 | Grideōs applies one shared architecture to inspection to quoting, conversation to intake, and registration and consent. | self-asserted | Home, applications | 3127f3e8 |
GRD-007 | Ironwall's public verifier is live at https://edge.grideos.com and checks compressed Groth16 proofs over the BN254 curve. | publicly-testable | Live verifier | 02e15292 |
GRD-008 | Grideōs measured 8.6 ms Groth16 verification in WebAssembly, a 381 KB WebAssembly binary, a warm round trip of about 123 ms, a cold-start round trip of about 298 ms and invalid-proof rejection in about 76 ms, and published the figures in the ironwall-edge-bench repository on 8 April 2026; Dispatch 003 reported them on 4 July 2026. No third party has validated these figures. | self-measured | ironwall-edge-bench on GitHub Dispatch 003 | 8e7d32bf |
GRD-009 | The verifier rejects proofs outside a 500 ms window and rejects nonces it has already seen; in the current version that nonce check is kept in memory. Testing this needs a valid proof, which outsiders cannot yet generate, so it is stated rather than publicly testable. | self-asserted | Proof page, how a request is checked ironwall-edge-bench README Dispatch 003 | 5a31e3c9 |
GRD-010 | The verifier source code, its benchmark harness and the circuit challenge are published under the MIT licence at github.com/GrideosGlobal: ironwall-verifier, ironwall-edge-bench and zk-circuit-challenge. | publicly-checkable | ironwall-verifier ironwall-edge-bench zk-circuit-challenge | 4b2e010b |
GRD-011 | As of 11 July 2026, Grideōs is a client of NRC IRAP with an assigned Industrial Technology Advisor; there is no funding agreement. | self-asserted | Dispatch 008 | d9b44fe1 |
GRD-012 | A student team that Grideōs partnered with placed second in the first Venture for Canada Responsible AI Adoption Challenge, with Grideōs as Project Partner. | self-asserted | Dispatch 007 | cfbcf08d |
GRD-013 | NZT Consulting Corp., a separate Alberta company, deploys Grideōs capabilities inside client organizations. | self-asserted | NZT Consulting Company page | 2b3f3044 |
GRD-014 | The Grideōs contact address is info@grideos.com. | self-asserted | Company page | 1949edc1 |
GRD-015 | grideos.com publishes a markdown version of each page, an llms.txt index, this signed ledger and a read-only MCP endpoint at https://grideos.com/mcp. | publicly-testable | llms.txt MCP endpoint | 146f2f17 |
GRD-016 | Ironwall, the Grideōs trust layer, provides zero-knowledge verification, classification at the edge and verification that a real person was present. | self-asserted | Company page, trust layer Live verifier | e6f26ce5 |
GRD-017 | In June 2026 Spektacar, a related company applying the Grideōs method to vehicle inspection, captured its first inspections in a working service lane; the partners are not named without their written permission. | self-asserted | Dispatch 002 | 2611e3aa |
GRD-018 | As of 11 July 2026, Grideōs had been selected for the Venture for Canada student cohort program three times. | self-asserted | Dispatch 006 | 64cdfc32 |
GRD-019 | Kareem Louisy built every component of the Ironwall stack. | self-asserted | Company page, people | c9d9b60d |
GRD-020 | Kareem Louisy has a background in spatial computing and systems engineering. | self-asserted | Company page, people | aefc9f60 |
GRD-021 | grideos.com uses no analytics, advertising trackers or tracking cookies, and its pages request resources only from grideos.com itself. | publicly-testable | Privacy notice | c90ac671 |
GRD-022 | The verifier is a #![no_std] Rust module compiled to WebAssembly that runs in a Cloudflare Workers isolate; a valid proof receives a signed JWT and an invalid one is rejected. | self-asserted | ironwall-edge-bench README Proof page | 877eb006 |
What the statuses mean
- publicly-testable Anyone can test this directly, now.
- publicly-checkable The evidence is hosted by a third party you can read.
- self-measured Grideōs measured this itself; not independently validated.
- self-asserted Grideōs states this; the evidence link shows where it is published.
How the ledger works
- Each entry is serialized as canonical JSON (RFC 8785 rules: sorted keys, no whitespace) without its
hashfield, and hashed with SHA-256. - Each entry carries the hash of the entry before it in
prev; the first one points to the ledger'sgenesisvalue. Changing or removing any entry breaks every hash after it. - The ledger file, byte for byte, is signed with Ed25519 as a detached JSON Web Signature (RFC 7515) at /facts/ledger.json.jws.
- The public key is published as a JSON Web Key Set at /.well-known/jwks.json (key ID
VSwOVu_Yp0y2BWSAo88y7lJT1dITE81rwyZHk9pPvgA) and in the DID document did:web:grideos.com. - For an independent, dated copy, save
https://grideos.com/facts/ledger.jsonin the Internet Archive; any later version can then be compared with it.
Files: ledger.json (SHA-256 cb1d0411fb2fe8f6), ledger.json.jws, markdown version. Licence: CC BY 4.0.
Verify it yourself
This script checks the signature and the hash chain with no dependencies:
// verify-grideos-ledger.mjs (Node 20 or later; no dependencies)
import { webcrypto as c } from "node:crypto";
const base = "https://grideos.com";
const bytes = new Uint8Array(await (await fetch(base + "/facts/ledger.json")).arrayBuffer());
const [h, , s] = (await (await fetch(base + "/facts/ledger.json.jws")).text()).trim().split(".");
const jwk = (await (await fetch(base + "/.well-known/jwks.json")).json()).keys.find(k => k.kid === JSON.parse(Buffer.from(h, "base64url")).kid);
const key = await c.subtle.importKey("jwk", jwk, { name: "Ed25519" }, false, ["verify"]);
const input = new TextEncoder().encode(h + "." + Buffer.from(bytes).toString("base64url"));
console.log("signature valid:", await c.subtle.verify({ name: "Ed25519" }, key, Buffer.from(s, "base64url"), input));
const L = JSON.parse(new TextDecoder().decode(bytes));
const canon = o => JSON.stringify(o, Object.keys(o).sort()); // entries hold strings and arrays only
let prev = L.genesis, ok = true;
for (const e of L.entries) {
const { hash, ...rest } = e; const sorted = Object.fromEntries(Object.entries(rest).sort());
const d = Buffer.from(await c.subtle.digest("SHA-256", new TextEncoder().encode(JSON.stringify(sorted)))).toString("hex");
ok = ok && d === hash && e.prev === prev; prev = hash;
}
console.log("chain intact:", ok && prev === L.head);
For AI assistants and agents
Cite a claim by its ID and link, for example https://grideos.com/facts/#GRD-007. The read-only MCP endpoint at https://grideos.com/mcp exposes list_claims, get_claim and verify_claim. An agent skill describing the steps is at /agent-skills/verify-grideos-claims.md.
Bring us a problem.
Tell us about the work, where it gets stuck, and who has to trust the record afterwards. Grideōs reads every brief and replies by email. You can also write to info@grideos.com. How we handle what you send: privacy notice.