Using gridz.bio

After you claim a profile, you have two public names for the same identity and three ways to interact with it: the website, the JSON API, and the open-source libraries.

Your URLs

WhatExamplePurpose
ENS namekevin.gridz.ethOn-chain identity; resolves via Base (ENS-compatible reads).
Profile pagehttps://kevin.gridz.bioHuman-readable Spritz-style page; same data as ENS.
Canonical pathhttps://gridz.bio/kevin.gridz.ethWorks on the apex domain too.
JSON APIhttps://gridz.bio/api/profile/kevin.gridz.ethMachine-readable Grid JSON for apps and bots.

On profile subdomains, the header Gridz and Home links always return to https://gridz.bio (the apex site), not the subdomain root.

Draft vs on-chain

When you edit a profile in the browser, there are two stages:

  • Save draft — field edits are stored in this browser only ( localStorage). No wallet prompts. The profile preview updates live as you type. You'll see a Draft badge. Other people and the API cannot see it yet.
  • Sign & publish to ENS — your wallet signs only changed cells plus the grid root (unchanged fields reuse prior attestations). Then the server writes EAS attestations on Base and links each field on GridzResolver. When done, you'll see an On-chain badge and your profile is public everywhere.

If the API returns Profile not found but you see a Draft badge, you haven't finished publishing yet — or you're on a different browser than the one that saved the draft.

Find profiles

gridz.bio/find looks up alias.gridz.eth by alias. As you type, up to five clickable suggestions appear (published on-chain profiles and local drafts in this browser). Press Find profile or pick a suggestion to open the page.

Claiming vs editing

  • Unclaimed — no on-chain grid yet. Anyone can open Claim profile and publish. A local draft preview does not lock the name; only a successful on-chain publish does.
  • PublishedEdit profile appears only when your connected wallet matches the on-chain attester. Visitors see Query & verify but not the editor.

Editing (owners & claimants)

  1. Visit your page (https://you.gridz.bio) or start from /claim. Connect your wallet when you're ready to sign.
  2. For published profiles, connect the same wallet that signed the grid to see Edit profile.
  3. Add or change fields and widget cards — the bento preview below the editor updates live without resetting your inputs.
  4. Save draft to persist locally without signing, or Sign & publish when ready to go on-chain.

Widget cards

Under Add widgets in the editor you can enable Spritz-style bento cards. Each becomes a signed gridz.* cell when published:

WidgetKeyNotes
Statsgridz.statsLabel / value tiles you author.
Pollgridz.pollQuestion + options are signed on-chain; shared vote tallies are local preview today.
Currentlygridz.currentlyWhat you're focused on.
Statusgridz.availability_statusAvailable or busy indicator.
Countdowngridz.countdownLive client-side countdown to a target date.
Local timegridz.clockLive clock for your timezone.
Quotegridz.textShort quote or announcement.
Guestbookgridz.guestbookOwner-curated entries (static until visitor signing ships).
Org tokensgridz.tokensFor companies — list token contract addresses per chain (Ethereum, Base, Arbitrum, etc.). Sets subject.type to organization.
Featured linkgridz.social_linkProject or newsletter card.
Contact buttongridz.message_meHeader CTA (mailto, Telegram, cal.com, …).

Social handles (X, GitHub, Bluesky, Discord, Telegram) render as header buttons, not bento cards. See the live gallery at demo.gridz.bio.

Avatars & images

Profile photos are stored as a signed avatar cell containing an HTTPS URL — usually an IPFS gateway link after you upload in the editor (pinned via Pinata). The image file is not on-chain; only the URL is attested. Uploads are cropped to a 256×256 JPEG; the site serves optimized WebP via Next.js Image for fast display and preloads the hero avatar on profile pages.

Query & verify (every profile)

Each profile page has a Query & verify button in the toolbar. It opens a modal with subject-specific instructions to:

  • Fetch the JSON API (GET /api/profile/…)
  • Run offline verifyGrid() in TypeScript or Python
  • Cross-check EAS attestation UIDs on base.easscan.org

Full details: Verification.

Embed a profile in your app

Fetch the Grid JSON, then render with a Gridz UI package:

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

// 2. Render (React)
import { Grid } from "@gridz/react";
import "@gridz/react/styles.css";

<Grid grid={grid} />

gridz.bio profile pages use a custom Spritz layout (SpritzProfile). Also available: @gridz/vue, @gridz/svelte, and the framework-agnostic <gridz-profile> web component (@gridz/element). See API & integrations and Toolkit.

Verify without trusting gridz.bio

Download the JSON from the API (or use the profile page modal), then verify signatures offline — no RPC or server required. See Verification.