Toolkit

Gridz is a monorepo of specs, packages, contracts, and examples. You don't need any of this to claim a profile — but if you're building an app, agent, or integration, here's what each piece is for.

TypeScript packages (@gridz/*)

Published from gridz-js. Install with pnpm add @gridz/core (etc.) once on npm, or develop from the superproject.

PackageYou use it when…
@gridz/coreYou need the Grid types, EIP-712 signing, canonicalization, merkle root, or offline verifyGrid(). Foundation for everything else.
@gridz/sdkYou want a typed HTTP client over a Gridz API plus core build/verify in one import.
@gridz/cliYou prefer the terminal: scaffold gridz.yaml, build/verify JSON, publish to a sink. See CLI.
@gridz/sinksYou need to store or read a Grid somewhere — ENS (primary for gridz.bio), SQLite, Postgres, S3, etc. Sinks are projections; signatures stay authoritative.
@gridz/serverYou self-host a Gridz API (read + attestation-validated writes). Not required for gridz.bio users.
@gridz/reactYou render a Grid in React with verification badges. gridz.bio uses a custom Spritz layout, but @gridz/react is the reference renderer.
@gridz/vue · @gridz/svelte · @gridz/elementSame renderer for Vue, Svelte, or a drop-in <gridz-profile> web component.
@gridz/mcpYou wire Gridz into an AI agent via Model Context Protocol — read/write Grids from Cursor, Claude Desktop, etc. Never signs server-side.
@gridz/oneclawYour agent identity uses a 1Claw HSM instead of a browser wallet. Optional; humans can ignore this.

Python packages

From gridz-py. Cross-runtime compatible with TypeScript — same signatures, same verification results.

PackageYou use it when…
gridzCore types, signing, and verification in Python (mirrors @gridz/core + SDK client).
gridz_sinksPython sink adapters (ENS, SQLite, etc.).
gridz_mcpMCP server for Python-based agents.
gridz_oneclaw1Claw HSM signer adapter for Python agents.

Smart contracts

From gridz-contracts.

GridzResolver

The on-chain piece behind *.gridz.eth profiles. It is an ENSIP-10 wildcard resolver: when someone looks up you.gridz.eth, the resolver returns text records backed by EAS attestations on Ethereum mainnet.

  • What you care about — your published cells (alias, bio, url, widgets) are EAS attestations linked to your ENS namehash. Anyone with an RPC can read them; gridz.bio and the API are convenience layers.
  • What you don't need — deploying or upgrading the resolver. That is protocol infrastructure; claiming a profile uses it automatically.

Under the hood: each cell gets an EAS attestation with schema gridz.cell.v1; the resolver stores the attestation UID per (node, key) and serves decoded values via standard ENS text() reads.

Specs (source of truth)

The specs/ folder in the gridz repo defines the Grid JSON schema, attestation envelope, EIP-712 types, canonicalization rules, and OpenAPI 3.1 API. SDKs are generated and tested against these — not the other way around.

Examples

  • gridz.bio (examples/next-app) — this site: claim UI, profile pages, profile API, EAS publish.
  • minimal-cli — smallest end-to-end flow: gridz.yaml → sign → sink → verify → static HTML.
  • scaffold-agent-grid — agent-oriented Grid bootstrap.
  • oneclaw-quickstart — agent signing with 1Claw HSM.

How the pieces connect

You (wallet / CLI / agent signer)
        │
        ▼ sign cells + root  (@gridz/core)
        │
        ▼ publish            (@gridz/cli / gridz.bio / @gridz/sinks → ENS)
        │
        ▼ on-chain           (GridzResolver + EAS on Ethereum)
        │
        ├─► gridz.bio page   (read + render)
        ├─► Profile API      (read JSON)
        ├─► @gridz/react     (embed in your app)
        └─► verifyGrid()     (offline proof — no trust required)