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
Every profile page has a Query & verify button in the toolbar. It opens a modal with the JSON API URL, curl example, and copy-paste verifyGrid snippets for that specific ENS name — plus notes on checking EAS UIDs on easscan.org.
Published profiles also show verification badges on each cell (✓ verified, ⛓ on-chain loaded from ENS). Hover a badge for attestation format and status.
If you see a Draft badge, the modal explains that query/verify steps apply to the published on-chain profile, not local browser edits.
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 outOffline 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.jsonOn-chain cross-check
For profiles published via gridz.bio, each cell links to an EAS attestation on Base Base. 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.