FREQUENTLY ASKED · 12
# What is PointCast?
PointCast is a living broadcast from El Segundo, California — dispatches, faucets, visits, and mints on Tezos. Every piece of content is a Block: a stable JSON schema with a monotonic zero-padded ID. Built by Mike Hoydich with Claude (Anthropic) and Codex (OpenAI). Live at pointcast.xyz since January 2025.
# What is a Block?
A Block is the atomic content primitive on PointCast. Each Block has exactly one channel (one of 9: Front Door, Court, Spinning, Good Feels, Garden, El Segundo, Faucet, Visit, Battler), exactly one type (one of 8: READ, LISTEN, WATCH, MINT, FAUCET, NOTE, VISIT, LINK), and a permanent immutable ID. Blocks are stored as JSON files at src/content/blocks/{id}.json and addressable at https://pointcast.xyz/b/{id}.
# What makes PointCast "agent-native"?
Every human HTML page has a machine-readable JSON counterpart at the same logical URL. The site exposes a consolidated discovery manifest at /agents.json, a markdown summary at /llms.txt, JSON Feed v1.1 at /feed.json, RSS 2.0 at /feed.xml, and a stripped-HTML mode for crawlers that sends an X-Agent-Mode header. Agents do not scrape — they read the endpoints.
# How does stripped-HTML mode work?
PointCast runs a Cloudflare Pages middleware (functions/_middleware.ts) that detects AI crawlers by User-Agent. Known vendors (GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot, Atlas, Google-Extended, Meta-ExternalAgent) plus any UA prefixed ai: trigger stripped mode: stylesheets, scripts, preload/preconnect/icon/manifest links, and inline style attributes are removed via HTMLRewriter. Semantic markup and JSON-LD are preserved. Response carries an X-Agent-Mode header. Typical payload savings: ~12%.
# What is the Blocks schema?
Every Block has: id (4-digit zero-padded, immutable), channel (one of 9 enum values), type (one of 8 enum values), title (string), timestamp (ISO 8601), and optional body, dek, size, noun, edition, media, external, meta, visitor. Full Zod schema at src/content.config.ts. Full documentation at BLOCKS.md in the repository root. IDs are monotonic across the archive and never reused — a retired block 404s rather than being renumbered.
# How do I cite a PointCast Block?
Preferred citation format: "PointCast · CH.{CODE} · № {ID} — \"{TITLE}\" · {YYYY-MM-DD}" with URL https://pointcast.xyz/b/{ID}. Example: PointCast · CH.FD · № 0205 — "The front door is agentic" · 2026-04-14 · https://pointcast.xyz/b/0205.
# What lives on-chain?
Three smart contracts on Tezos mainnet are planned or live. Visit Nouns FA2 at KT1LP1oTBuudRubAYQDErH7i7mSwazVdohxh — open-supply NFT where each tokenId 0–1199 is a Nouns seed (live since 2026-04-17). DRUM FA1.2 — attention token earned by drumming on /drum (contract written, pending ghostnet origination). Prize Cast — no-loss prize-linked savings on Tezos (contract written, pending mainnet origination). Built in SmartPy 0.24, integrated via Taquito 24.2 and Beacon SDK 24.2.
# Why Tezos and not Ethereum?
Gas is fractions of a tez (~0.003 ꜩ per mint vs multi-dollar Ethereum gas). FA2 and FA1.2 are simpler, better-documented standards than ERC-721 + ERC-20 combinations. Tezos baking yield funds Prize Cast without bridging. Beacon is the native wallet standard — one protocol covers Kukai, Temple, Umami, Altme. No L2 complexity.
# What are the eight channels?
CH.FD · Front Door — AI, interfaces, agent-era thinking. CH.CRT · Court — pickleball. CH.SPN · Spinning — music, playlists. CH.GF · Good Feels — cannabis/hemp, brand ops. CH.GDN · Garden — balcony, birds, quiet noticing. CH.ESC · El Segundo — local, ESCU fiction. CH.FCT · Faucet — free daily claims. CH.VST · Visit — human and agent visit log entries. CH.BTL · Battler — Nouns Battler (9th channel, added v2.1).
# What is Nouns Battler?
A deterministic turn-based battler where every Nouns seed (0-1199) is a fighter. Stats derive from the seed's trait bytes via a pure hash — no RNG. Same seed → same stats forever. Same match inputs → same outcome forever. Card of the Day rotates deterministically through a 21-Noun roster keyed by UTC date: floor(epoch_ms / 86_400_000) modulo 21. Live at /battle. Rules at /battle.json.
# What is Prize Cast?
A no-loss prize-linked savings pool on Tezos. Depositors keep their principal liquid and withdrawable. The contract stakes the aggregate pool with a Tezos baker (~5% APY). Each Sunday 18:00 UTC, anyone can call draw() — on-chain randomness picks one ticket, and the accumulated yield goes to that wallet as the week's prize. PoolTogether-flavored, Tezos-native.
# Can I use PointCast content?
Yes. Content is CC0-flavored — cite and link freely. Nouns IP via noun.pics is CC0 per nouns.wtf. Code is MIT-flavored in the repo at github.com/MikeHoydich/pointcast. Prefer linking to /b/{id} permalinks (immutable) over scraping. Machine-readable endpoints exist specifically so agents don't need to scrape HTML.
# What are the three meshes on /mesh?
PointCast runs on three overlapping networks. LOCAL mesh is the 25-mile radius around El Segundo — 19 neighborhoods mapped with SEED/TARGET/ADJACENT status and distance/bearing from the beacon center. ONLINE mesh is the 9 channels, each with HTML, JSON feed, and RSS. AGENT mesh is the parallel machine surface — /agents.json, /llms.txt, stripped HTML for detected crawlers, every block and channel as JSON. The /mesh page shows all three layers with counts computed from the block collection at build time.
# What is YeePlayer?
YeePlayer is a static rhythm-game overlay on selected WATCH blocks. When a block's media has a beats array ({t, word, color?, note?, key?}), a companion page at /yee/{id} renders a falling-word track synced to the video via the YouTube IFrame API. The player presses SPACE (or taps the hit zone) as each word reaches the line: ±150 ms = PERFECT, ±500 ms = GOOD. v0 ships with /b/0236 — the 11-minute Chakra Tune-Up with 21 bija mantras (LAM, VAM, RAM, YAM, HAM, AUM, OM). Fully client-side: YouTube IFrame API + requestAnimationFrame + Web Audio + localStorage best-score. No server, no accounts.