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
| What | Example | Purpose |
|---|---|---|
| ENS name | kevin.gridz.eth | On-chain identity; resolves via Base (ENS-compatible reads). |
| Profile page | https://kevin.gridz.bio | Human-readable Spritz-style page; same data as ENS. |
| Canonical path | https://gridz.bio/kevin.gridz.eth | Works on the apex domain too. |
| JSON API | https://gridz.bio/api/profile/kevin.gridz.eth | Machine-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.
- Published — Edit profile appears only when your connected wallet matches the on-chain attester. Visitors see Query & verify but not the editor.
Editing (owners & claimants)
- Visit your page (
https://you.gridz.bio) or start from /claim. Connect your wallet when you're ready to sign. - For published profiles, connect the same wallet that signed the grid to see Edit profile.
- Add or change fields and widget cards — the bento preview below the editor updates live without resetting your inputs.
- 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:
| Widget | Key | Notes |
|---|---|---|
| Stats | gridz.stats | Label / value tiles you author. |
| Poll | gridz.poll | Question + options are signed on-chain; shared vote tallies are local preview today. |
| Currently | gridz.currently | What you're focused on. |
| Status | gridz.availability_status | Available or busy indicator. |
| Countdown | gridz.countdown | Live client-side countdown to a target date. |
| Local time | gridz.clock | Live clock for your timezone. |
| Quote | gridz.text | Short quote or announcement. |
| Guestbook | gridz.guestbook | Owner-curated entries (static until visitor signing ships). |
| Org tokens | gridz.tokens | For companies — list token contract addresses per chain (Ethereum, Base, Arbitrum, etc.). Sets subject.type to organization. |
| Featured link | gridz.social_link | Project or newsletter card. |
| Contact button | gridz.message_me | Header 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.