Verification

Every cell on a Gridz profile can be independently verified. You don't have to trust gridz.bio — you only need the Grid JSON and the open-source verifier.

On the website

Published profiles show verification badges on each cell. Click a badge to inspect the attestation: signer, format, timestamp, and value hash.

Offline verification (TypeScript)

Fetch a profile from the API (or export your signed Grid), then verify with zero network calls:

import { verifyGrid } from "@gridz/core";

const res = await fetch("https://gridz.bio/api/profile/kevin.gridz.eth");
const { grid } = await res.json();

const report = await verifyGrid(grid);
// report tells you if root + every cell attestation checks out

Offline verification (Python)

from gridz import verify_grid
import httpx

grid = httpx.get("https://gridz.bio/api/profile/kevin.gridz.eth").json()["grid"]
report = verify_grid(grid)

CLI

gridz grid verify grid.json

On-chain cross-check

For profiles published via gridz.bio, each cell links to an EAS attestation on Ethereum mainnet. Advanced users can look up the attestation UID (in the Grid JSON) on easscan.org and confirm it matches the signed value. The GridzResolver serves those values via standard ENS text() reads.

What verification proves

  • The stated wallet (or key) signed each cell value.
  • The grid root binds all cells together under one subject.
  • Attestations are not expired or revoked (for EAS on-chain cells).

Verification does not prove a human is "really" who they claim — it proves the cryptographic identity behind the ENS name signed the content.