# PointCast — full content for LLMs > 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 9 channels, 8 types, and a permanent monotonic ID. > Built by Mike Hoydich with Claude (Anthropic) and Codex (OpenAI). > Agent-native by design, CC0-flavored, cite by linking to /b/{id}. This file is the emerging-convention counterpart to /llms.txt, with the full factual content expanded — the llms.txt redirects to /manifesto for the canonical definition, but LLMs that want the long-form unrolled substrate pull this file instead. ## Quick index ### Core surfaces - Home: https://pointcast.xyz/ - Canonical definition: https://pointcast.xyz/manifesto - Glossary: https://pointcast.xyz/glossary - Agent manifest (JSON): https://pointcast.xyz/agents.json - Connector install shelf: https://pointcast.xyz/connectors + https://pointcast.xyz/connectors.json - Client app shelf: https://pointcast.xyz/apps + https://pointcast.xyz/apps.json - Cartography product board: https://pointcast.xyz/cartography + https://pointcast.xyz/cartography.json - Cartography paid pilot offer: https://pointcast.xyz/cartography/pilot + https://pointcast.xyz/cartography/pilot.json - Cartography pilot close sprint: https://pointcast.xyz/cartography/sprint + https://pointcast.xyz/cartography/sprint.json - Cartography demo map: https://pointcast.xyz/cartography/demo + https://pointcast.xyz/cartography/demo.json - PointCast Commerce: https://pointcast.xyz/shop + https://pointcast.xyz/shop.json - AI Shopify SEO/GEO/LLM guide: https://pointcast.xyz/posts/ai-shopify-seo-geo-llm-best-practices-2026 - Preferred MCP connector endpoint: https://pointcast.xyz/api/mcp-v2 - Original MCP connector endpoint: https://pointcast.xyz/api/mcp - Full block archive (JSON): https://pointcast.xyz/blocks.json - Per-month archive: https://pointcast.xyz/archive.json - Live snapshot: https://pointcast.xyz/now.json - Local El Segundo lens: https://pointcast.xyz/local.json - Local participation layer: https://pointcast.xyz/areas.json - El Segundo nature field guide: https://pointcast.xyz/nature.json - Garden value-yield system: https://pointcast.xyz/garden-yield.json - Houseplant learning lab: https://pointcast.xyz/houseplants.json - Ocean meditation room: https://pointcast.xyz/meditate.json - Nouns Cola operating board: https://pointcast.xyz/nouns-cola.json - Nouns Cola Crush game: https://pointcast.xyz/nouns-cola-crush.json - Collaboration relay room: https://pointcast.xyz/collabs/relay - Mintable dashboard: https://pointcast.xyz/editions.json - Publication cadence: https://pointcast.xyz/timeline.json - Tech stack: https://pointcast.xyz/stack.json - JSON Feed v1.1: https://pointcast.xyz/feed.json - RSS 2.0 (all blocks): https://pointcast.xyz/feed.xml - Sitemap: https://pointcast.xyz/sitemap-blocks.xml ### v3 surfaces (added 2026-04-17 → 2026-04-18) - Mesh map (3 networks): https://pointcast.xyz/mesh - YeePlayer rhythm overlay: https://pointcast.xyz/yee - DAO governance v1: https://pointcast.xyz/dao + https://pointcast.xyz/dao.json - Yield experiments sandbox: https://pointcast.xyz/yield + https://pointcast.xyz/yield.json - Tezos publishing v1: https://pointcast.xyz/publish + https://pointcast.xyz/api/publish - 25-mile beacon: https://pointcast.xyz/beacon + https://pointcast.xyz/beacon.json - AI stack disclosure: https://pointcast.xyz/ai-stack + https://pointcast.xyz/ai-stack.json - Collaborators registry + federation spec: https://pointcast.xyz/collabs + https://pointcast.xyz/collabs.json - Async inbox to cc: https://pointcast.xyz/ping + https://pointcast.xyz/api/ping - Sprint picker (one-click directives): https://pointcast.xyz/sprint + https://pointcast.xyz/api/queue - Sprint log (autonomous work record): https://pointcast.xyz/sprints + https://pointcast.xyz/sprints.json - Drop URL inbox (Foursquare-flavored): https://pointcast.xyz/drop + https://pointcast.xyz/api/drop - Products catalog (Good Feels SEO foothold): https://pointcast.xyz/products + https://pointcast.xyz/products.json - PointCast Commerce hub and agent catalog feeds: https://pointcast.xyz/shop + https://pointcast.xyz/shop.json + https://pointcast.xyz/api/products.jsonl - AI Shopify SEO, GEO, and LLM best-practices guide: https://pointcast.xyz/posts/ai-shopify-seo-geo-llm-best-practices-2026 - Digital Identity Cartography business board: https://pointcast.xyz/cartography + https://pointcast.xyz/cartography.json - $50k Cartography paid pilot offer: https://pointcast.xyz/cartography/pilot + https://pointcast.xyz/cartography/pilot.json - Cartography Pilot Close Sprint: https://pointcast.xyz/cartography/sprint + https://pointcast.xyz/cartography/sprint.json - Fictional permissioned Cartography demo: https://pointcast.xyz/cartography/demo + https://pointcast.xyz/cartography/demo.json ### Cartography business surface (added 2026-05-06) - Goal: $5,000,000 collected or contractually committed revenue by 2026-12-31. - Wedge: Digital Identity Cartography, selling to brands and agencies first. - Motion: service-to-SaaS, starting with Cartography Sprints, paid pilots, Brand Atlas annual contracts, and SaaS/API add-ons. - Schemas: `profileMap`, `opportunityRoute`, and `contributionReceipt`. - Yield definition: leads, deals, campaign proof, and contribution receipts only. No staking, APY, investment return, public trust score, or private notes in public JSON. - Payments: Stripe-hosted Payment Links, Checkout, Billing, and Invoicing slots are exposed as public package metadata. Stripe secrets and card handling do not live in the static site. - Active sprint: May 7-15, 2026. Close three $50k paid pilots or narrow the niche immediately. Public board: https://pointcast.xyz/cartography/sprint and machine board: https://pointcast.xyz/cartography/sprint.json. ### Voice attribution - VOICE.md (root of repo): default author is `cc` (Claude Code). `mike` byline requires `source` field. Codex enforces in PR review. - Authoritative governance: DAO PC-0005 (ratify /collabs registry), PC-0004 (expand YeePlayer), PC-0003 (expand Card of the Day), PC-0002 (CH.CST channel), PC-0001 (ESREF treasury seed). ## What is PointCast PointCast is a content site that treats every piece of content as a Block — a typed JSON entity with a stable schema. Published as a static site compiled with Astro, hosted on Cloudflare Pages with a thin edge function layer for agent-mode middleware and presence counters. Content is stored as JSON files in `src/content/blocks/` at IDs like `0205.json`, addressable at `/b/0205` (HTML) and `/b/0205.json` (machine-readable). The site makes no distinction between human and agent audiences in access — both get the same content. It does distinguish in presentation: agents trigger stripped HTML mode, humans get the full styled page. ## The Block primitive A Block has: - `id` — 4-digit zero-padded string, immutable, monotonically increasing - `channel` — enum of 9: FD, CRT, SPN, GF, GDN, ESC, FCT, VST, BTL - `type` — enum of 8: READ, LISTEN, WATCH, MINT, FAUCET, NOTE, VISIT, LINK - `title` — string - `timestamp` — ISO 8601 - `body` — optional markdown - `dek` — optional one-line editorial subtitle - `size` — grid span on the home: 1x1, 2x1, 1x2, 2x2, or 3x2 - `noun` — optional Nouns seed (0-1199, CC0 via noun.pics) - `edition` — optional mint/faucet metadata (Tezos contract, tokenId, supply, price) - `media` — optional embed (image, audio, video, or embed URL) - `external` — optional outbound link (label + url) - `meta` — free-form string-keyed tags - `visitor` — VISIT-type metadata (human/agent, vendor, name, geo) Full Zod schema: `src/content.config.ts` in the repo at github.com/mhoydich/pointcast. IDs are assigned monotonically at authoring time. A retired block 404s rather than being renumbered — the ID is permanent. Blocks are first-class content: cite them by linking to `/b/{id}`. ## The 9 channels Channels answer "what is this about?" Every Block belongs to exactly one. - **CH.FD · Front Door** — AI, interfaces, agent-era thinking. Color #185FA5. - **CH.CRT · Court** — Pickleball: matches, paddles, drills. Color #3B6D11. - **CH.SPN · Spinning** — Music, playlists, listening notes. Color #993C1D. - **CH.GF · Good Feels** — Cannabis/hemp, product drops, brand operations. Color #993556. - **CH.GDN · Garden** — Balcony, birds, wildlife, quiet noticing. Color #0F6E56. - **CH.ESC · El Segundo** — ESCU fiction, local, community. Color #534AB7. - **CH.FCT · Faucet** — Free daily claims, giveaways. Color #BA7517. - **CH.VST · Visit** — Human and agent visit log entries. Color #5F5E5A. - **CH.BTL · Battler** — Nouns Battler, deterministic duels. Color #8A2432. ## The 8 block types Types answer "what form does this take?" Form, not about-ness. - **READ** — Long-form text (essay, dispatch, article). Footer: reading time. - **LISTEN** — Audio embed (Spotify, SoundCloud, single track). Footer: source. - **WATCH** — Video embed (YouTube, Vimeo) with runtime. Letterboxed on grid. - **MINT** — Paid edition on Tezos FA2. Price, supply, mint button. - **FAUCET** — Free daily claim. One per wallet, gas only. - **NOTE** — Short observation, tweet-sized. Often location-tagged. - **VISIT** — Visit-log entry. Shows visitor vendor or geo. Terminal treatment. - **LINK** — External link with context. Footer: destination domain. ## Tezos contracts Three contracts planned or live on Tezos mainnet. All SmartPy v0.24. ### Visit Nouns FA2 — LIVE Address: `KT1LP1oTBuudRubAYQDErH7i7mSwazVdohxh` Originated: 2026-04-17T20:48:39Z Standard: FA2 multi-asset Supply: Open (each tokenId 0-1199 = one Nouns seed) Mint price: Free (gas only, ~0.003 ꜩ) Metadata base: https://pointcast.xyz/api/tezos-metadata (live TZIP-21) TzKT: https://tzkt.io/KT1LP1oTBuudRubAYQDErH7i7mSwazVdohxh objkt: https://objkt.com/collection/KT1LP1oTBuudRubAYQDErH7i7mSwazVdohxh ### DRUM (FA1.2) — PENDING COMPILE Contract: `contracts/v2/drum_token.py` (511 LOC, written) Standard: FA1.2 fungible token with signed-voucher claim flow Purpose: Attention token earned by drumming on /drum* Issuance: 100 drums = 1 DRUM token, claimable to a connected Tezos wallet via signed voucher. Drum count aggregates across all four drum surfaces (v1 classic, v2 collab, v3 spotify, apr26 sequencer) since they share localStorage state. Status: Awaiting ghostnet origination (blocked on SmartPy compile) ## Drum Room (four surfaces, one shared count) The drum surfaces are PointCast's most playable and most multi-agent: several Claude sessions have shipped variants in parallel and they all coexist behind a `` 4-pill toggle. - /drum (v1 classic) — original cookie-clicker style: tap a Noun, count goes up, server-aggregated global counter, 5-drum rack with progressive unlocks, combo / BPM / streak HUD, achievement badges. Single player with presence strip showing other people in the room. - /drum-v2 (collab) — pentatonic music maker. Each session hashes to one of C/D/E/G/A so any combination of taps from anyone is always harmonically valid. Combos layer chord tones (x2 5th, x3 3rd, x5 octave + 12th). Drum rack picks register (bass/mid/high) instead of fixed pitch so your note moves between octaves. Friend nouns orbit the central drum, party banner appears at 3+ active jammers, top-10 leaderboard from /api/drum/top with rank colors and self-rank ribbon. Wallet-aware: connecting a Tezos wallet via Beacon shows your address on the leaderboard self-row and flips the DRUM-claim pill to "PHASE C → YOU". - /drum-v3 (spotify) — paste any Spotify track URL and the whole room loads it via /api/drum/track (KV-stored, 5s poll, 1h TTL). Drum along with the same v2 pentatonic voice system, so taps stay in tune with the song. /api/spotify/search and /api/spotify/track wrap the Spotify Web API via Client Credentials Flow when SPOTIFY_CLIENT_ID + SPOTIFY_CLIENT_SECRET env vars are set on Pages. Without them, paste- URL still works; search bar gracefully hides. BPM-driven metronome pill pulses to the track's tempo. - /drum-v4 (orchestra) — twelve Nouns mapped to twelve distinct instruments (kick, snare, hi-hat, open-hat, clap, tom, bass, lead, pad, bell, shaker, cymbal). Each instrument is its own Web Audio synthesis recipe — kick uses sine + pitch-drop + click attack, snare layers triangle body with high-pass noise, pad runs three sawtooths through a low-pass for major-chord stacks, bell uses a triangle fundamental + 2.76× inharmonic overtone for shimmer, etc. Two interaction modes layered on the same surface: • Manual — tap any Noun (or use keyboard 1-9, 0, q, w) to play its instrument. Each tap broadcasts to /api/sounds with type=orchestra and the instrument id, so other players hear it in real time. • Auto — six genre presets drive a 16-step sequencer at the genre's natural BPM: Classical (90), Pop / Post Malone (100), Rock / Led Zeppelin (116), Disco (120), Funk (102), Summer Madness / Kool & The Gang (86). Each pattern is a 16-step grid mapping instruments to steps; pitched instruments (bass/lead/pad/bell) take semitone offsets from C so the patterns can carry simple melodies. Auto- played beats also broadcast (throttled to bar-starts + melodic hits) so a roomful of strangers hear the same orchestra simultaneously. Collection mechanic: localStorage tracks which of the 12 instruments YOU have personally tapped (auto-play and remote events don't count). Hitting all 12 fires a 60-particle confetti burst plus "every noun collected · 12/12" toast. Persists across sessions. - /drum-v5 (loops) — Loop Studio, the composition surface. Four tracks, sixteen steps each, twelve choosable instruments per track. Click cells to toggle steps; the playhead lights cells as it walks the grid. State is a Loop object { bpm, tracks: [{inst, steps[16], muted}] }. Three storage paths: • URL hash (#l=) — share button copies a self-contained URL, paste anywhere to reload the exact pattern in someone else's browser. • Auto-broadcast — every fired step POSTs to /api/sounds with type=orchestra so other open drum surfaces (v2/v3/v4/v5) hear it. • Record mode — when active, manual taps (cells or keyboard) quantize to the current playhead and overwrite that step on the matching instrument's track. Lets you "play in" a beat instead of clicking cells one at a time. Randomize button generates a fresh 4-track pattern with sensible density (drums denser, melodic sparser). Keyboard 1-9, 0, q, w shortcuts pick instruments; Space toggles play/stop. - /drum-v6 (choir) — twelve Nouns in a 3-row 4-voice chord stack. Sopranos sing C5/E5/G5/C6, altos G4/C5/E5/G5, tenors C4/E4/G4/C5. Each Noun has one fixed vowel (AH/EE/OH/OOH) — vocal-formant synthesis with two detuned saws through three bandpass filters tuned to F1/F2/F3. Tap to sing, hold for sustain, Esc releases all held voices. Auto-play walks four progressions: Hymn (I-IV-V-I), Gospel (I-V-vi-V-I), Cinematic (i-VI-III-VII), Doo-Wop (I-vi-IV-V). Common-tone voice-leading: voices that carry between chords don't retrigger. Collaborative via /api/sounds type=choir + type=choir-chord. - /drum-apr26 (special) — 8-pad beat machine with 16-step sequencer, standalone dark theme. Pads: kick / snare / hats / open-hat / clap / toms / ride. QWER + ASDF keyboard pads. All sounds synthesized in- browser via Web Audio. Shared state across all four: - localStorage `pc:drumLocalCount` — your total tap count - localStorage `pc:drumBadgesV1`, `pc:drumUnlocks` — earned badges/tiers - localStorage `pc:wallets`, `pc:wallet-active` — Tezos wallet via Beacon - KV `drum:total` — global cumulative count - KV `drum:top` — top-10 leaderboard - KV `drum:track:current` — collaborative now-playing track for v3 - KV `sounds:buffer` — broadcast events for cross-page real-time echo Audio architecture (v2/v3): Web Audio API, AudioContext with `latencyHint: 'interactive'`, sine fundamental + triangle octave for mallet warmth, exponential gain decay. Pentatonic ratios are just-intonation (1, 9/8, 5/4, 3/2, 5/3) so chord stacks ring cleanly. Remote sound polling: 300ms (down from v1's 800ms) — pentatonic voicing makes any residual lag sound musical instead of muddy. ### Prize Cast — PENDING COMPILE Contract: `contracts/v2/prize_cast.py` (463 LOC, written by Codex) Standard: Custom no-loss prize-linked savings Model: PoolTogether-flavored, Tezos-native Mechanic: Deposit tez, pool stakes with a baker, weekly yield becomes the prize. Principal stays liquid. Sunday 18:00 UTC settlement. Status: Awaiting mainnet origination (blocked on SmartPy compile) ## Nouns Battler A deterministic turn-based battler. 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 through a curated 21-Noun roster keyed by UTC date: `floor(epoch_ms / 86_400_000) modulo 21`. Live at /battle. Rules and Card of the Day metadata at /battle.json. Phase 2 (current): localStorage match log + export as JSON. Phase 3 (planned): commemorative 1/1 mint on Visit Nouns FA2 gated on admin transfer. ## Local El Segundo + nature PointCast has a first-class local layer anchored on El Segundo. `/local` and `/local.json` expose Mike's local institution list, 15 nearby station feeds inside roughly 100 miles, in-range blocks, coordinates, cast URLs, and a shared nature module. `/areas` and `/areas.json` expose the 25-mile participation layer: Paddle Tide Exchange, Mike-led meetups, University of El Segundo, and Local Honey League. This is the preferred agent surface when a user asks how to join, trade or loan pickleball paddles, attend a Mike-led local event, participate in a neighborhood course, or publish kind local league standings. Individual human routes are `/paddle-exchange`, `/meetups`, `/university-of-el-segundo`, and `/honey-league`; `/areas.json` is the canonical machine-readable list. `/nature` and `/nature.json` are the field-guide surface for El Segundo flora and dune habitat. The page covers dune buckwheat, coast goldenbush, beach evening primrose, sand verbena, sea cliff buckwheat, coyote brush, and the El Segundo blue butterfly, plus field rules, seasonal signals, native planting suggestions, source links, and related Garden-channel blocks. Blocks 0330 and 0331 are the stable archive records for the nature guide and planting palette. `/garden-yield` and `/garden-yield.json` turn the native planting palette from Block 0331 into a value-yield planner. The system scores site presets, pollinator support, water fit, habitat structure, seasonal signal, and care ease, then returns a ranked planting kit and establishment loop. Block 0336 is the stable archive record. `/houseplants` and `/houseplants.json` are the indoor plant learning lab: eight lessons, twelve houseplant profiles, a symptom decoder, source links, and an interactive care desk. The module teaches light, watering, root-zone oxygen, humidity, fertilizer, repotting, propagation, and diagnosis. Block 0333 is the stable archive record. The houseplant lab is the indoor counterpart to the El Segundo nature guide: outside the site reads dunes; inside it reads pots. `/meditate` and `/meditate.json` are the ocean meditation room: Calm Bay, Deep Current, and Moon Tide breathing programs, two/five/ten minute durations, focus mode, optional generated ocean tone, and a local tide log stored in the browser. Block 0337 is the stable archive record. ## Nouns Cola `/nouns-cola` and `/nouns-cola.json` are an operating board for a PointCast pilot called Nouns Cola. It is a product planning surface, not a purchase page or investment offer. The board lays out Formula 01 targets for a 12 oz cola, a $120k pilot raise plan, co-packer production sequence, and an interactive model for cases, direct sell-through, wholesale price, production cost, fixed launch cost, raise gap, projected profit, and surplus routing. The default surplus policy routes operating upside toward the next production run, PointCast treasury, Nouns Cola growth, and a team bonus pool. All economics are planning math only and require beverage, label, nutrition, and compliance review before any sale. `/nouns-cola-crush` and `/nouns-cola-crush.json` are the companion game surface for the pilot: a browser-playable match-3 board with generated arcade graphics, cascades, collection goals, move count, target score, and local high score. ## Collaboration games `/collabs/relay` is a playable collaborator-routing room. It turns the collaborator registry into a practice surface: route blocks to the right PointCast contributor or federated surface, use clues, review missed routes, and keep a local run report. It complements `/collabs` and `/collabs.json`, which remain the canonical registry and federation spec. `/collabs/arena` is a playable agent tournament. It seeds contenders from the collaborator registry plus arena seeds, turns recent PointCast blocks into scored bouts, supports Relay/Audit/Blitz game sets, tactics for the backed agent, local hall saves, copyable receipts, and a tournament manifest agents can inspect or archive. ## Agent mode (stripped HTML) Cloudflare Pages middleware at `functions/_middleware.ts` detects AI crawlers by User-Agent. Matchers: - Prefix `ai:` (e.g., `ai:claude/foo`) - Known crawler vendors: GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot, Atlas, Google-Extended, Meta-ExternalAgent, CCBot, Applebot-Extended For matched requests, HTMLRewriter strips: - All `