{
  "id": "2026-04-24-bezeliq-mainnet-identity-82b17eb708",
  "scope": "redkey",
  "source_of_truth": "repo",
  "source_path": "docs/superpowers/specs/2026-04-24-bezeliq-mainnet-identity.md",
  "source_kind": "markdown",
  "visibility": "internal",
  "renderer_id": "design_doc.dreamborn-forge.generated.v1",
  "design_system": "dreamborn-design-system:forge",
  "generated_at": "2026-05-09T13:00:55.767Z",
  "artifact_type": "design_doc",
  "schema_version": "design_doc.generated.v1",
  "title": "BezelIQ Mainnet Identity + Journey Documentation",
  "summary": "BezelIQ Mainnet Identity + Journey Documentation Date: 2026 04 24 Status: Approved Author: Justin King + Atlas What We're Building BezelIQ's permanent, immutable founding record on Hedera mainnet. An account, a public identity, and a living on chain archive — history already written, roadmap publicly committed, easter eggs embedded for those who look. The we...",
  "format_source": "markdown",
  "sections": [
    {
      "title": "BezelIQ Mainnet Identity + Journey Documentation",
      "level": 1,
      "body": "**Date:** 2026-04-24  \n**Status:** Approved  \n**Author:** Justin King + Atlas\n\n---"
    },
    {
      "title": "What We're Building",
      "level": 2,
      "body": "BezelIQ's permanent, immutable founding record on Hedera mainnet. An account, a public identity, and a living on-chain archive — history already written, roadmap publicly committed, easter eggs embedded for those who look. The website is the surface. The chain is the truth.\n\nThe company's own agents stage every message. The infrastructure that BezelIQ is building documents BezelIQ being built.\n\nThe journal has multiple voices. Justin posts as the founder. Atlas posts as the platform architect — reflections on decisions, patterns noticed, architecture rationale. Quinn posts when code ships. Claire posts when a workflow completes. Priya posts when a spec lands. Every agent contribution is attributed on-chain. When visitors read the history, they're reading a conversation between a human founder and the agents he built.\n\n---"
    },
    {
      "title": "1. BezelIQ Mainnet Account",
      "level": 3,
      "body": "A dedicated Hedera mainnet account for the BezelIQ entity — separate from Justin's personal account.\n\n| Field | Value |\n|---|---|\n| Key type | ED25519 — single signer (Justin) to start |\n| Memo | `\"The intent survives the break. —BZQ-001\"` |\n| Initial funding | 10 HBAR (from Justin's personal account) |\n| Env var — ID | `BEZELIQ_OPERATOR_ID` |\n| Env var — Key | `BEZELIQ_OPERATOR_KEY` |\n\nAdding owners later: `AccountUpdateTransaction` signed by the current key converts to a threshold key (e.g. 2-of-3). The account ID never changes.\n\nThe memo is the first easter egg. It reads as a cryptic statement about resilience. Those who understand what BezelIQ builds will eventually understand it exactly.\n\n---"
    },
    {
      "title": "2. HCS-11 Identity Topic — `bezeliq.identity`",
      "level": 3,
      "body": "A mainnet HCS topic following the HCS-11 entity profile standard. This makes BezelIQ discoverable natively in HashScan and Hedera ecosystem tooling.\n\n**First message — profile document:**\n\n```json\n{\n  \"version\": \"1.0\",\n  \"type\": \"organization\",\n  \"display_name\": \"BezelIQ\",\n  \"alias\": \"bezeliq\",\n  \"bio\": \"We fix what breaks.\",\n  \"website\": \"https://bezeliq.ai\",\n  \"socials\": {},\n  \"founded\": \"2026-04-24\",\n  \"properties\": {\n    \"network\": \"mainnet\",\n    \"clue\": \"aGlzdG9yeSBpcyBhbHJlYWR5IHdyaXR0ZW4uIFRvcGljOiAwLjAuW0hJU1RPUllfVE9QSUNfSURd\"\n  }\n}\n```\n\nThe `clue` field is Base64. When decoded it reads: *\"history is already written. Topic: 0.0.[HISTORY_TOPIC_ID]\"* — the actual mainnet topic ID for `bezeliq.history` is embedded directly in the encoded string. `setup-bezeliq.js` generates this value after the history topic is created, so the real clue encodes the real ID. Anyone who decodes it lands directly on the history topic in HashScan.\n\nThe identity topic ID is embedded in the bezeliq.ai HTML source as a comment — the primary door for anyone who looks.\n\n---"
    },
    {
      "title": "3. History Topic — `bezeliq.history`",
      "level": 3,
      "body": "The immutable founding archive. Every milestone, decision, and achievement posted here in sequence. Cannot be deleted or altered.\n\n**Message schema:**\n\n```json\n{\n  \"version\": \"1.0\",\n  \"type\": \"milestone\",\n  \"visibility\": \"public | clue | treasure | sealed\",\n  \"author\": \"justin | atlas | quinn | claire | priya | vikram | engine\",\n  \"author_type\": \"human | agent\",\n  \"title\": \"...\",\n  \"description\": \"...\",\n  \"date\": \"ISO8601\",\n  \"tags\": [\"founding\", \"product\", \"team\", \"infrastructure\"],\n  \"clue\": null,\n  \"ts\": \"ISO8601\"\n}\n```\n\nThe `author` and `author_type` fields are permanent on-chain record of who — human or agent — made this contribution. The website can filter or label by author. A milestone from Quinn looks different from one from Justin. Both are real.\n\n**Visibility rules:**\n- `public` — rendered on bezeliq.ai website, full display\n- `clue` — encoded content (Base64, acrostic, steganographic) — exists on-chain, not rendered by website\n- `treasure` — contains puzzle + reward account ID — not rendered\n- `sealed` — plaintext but prefixed `[SEALED — opens YYYY-MM-DD]` — time-locked commitments, rendered as locked on website\n\n**First message — The Founding Block:**\n\n```json\n{\n  \"version\": \"1.0\",\n  \"type\": \"milestone\",\n  \"visibility\": \"public\",\n  \"author\": \"justin\",\n  \"author_type\": \"human\",\n  \"title\": \"Day One\",\n  \"description\": \"BezelIQ was founded on the belief that execution should never fail. When an API breaks, the intent shouldn't. We built the layer that makes that true — on Hedera, in public, before anyone knew our name.\",\n  \"date\": \"2026-04-24\",\n  \"tags\": [\"founding\"],\n  \"clue\": null,\n  \"ts\": \"2026-04-24T...\"\n}\n```\n\nThis is BezelIQ's genesis block. Posted before the website exists. Timestamped, immutable, verifiable.\n\n---"
    },
    {
      "title": "4. Roadmap Topic — `bezeliq.roadmap`",
      "level": 3,
      "body": "A living roadmap. Items are posted as HCS messages. Updates use a `supersedes` field — you cannot edit on-chain, so a new message supersedes the old one. The website applies the supersede chain to render current state.\n\n**Message schema:**\n\n```json\n{\n  \"version\": \"1.0\",\n  \"type\": \"roadmap_item\",\n  \"visibility\": \"public | sealed\",\n  \"id\": \"uuid — stable across supersede chain\",\n  \"title\": \"...\",\n  \"description\": \"...\",\n  \"status\": \"planned | in_progress | completed | cancelled\",\n  \"target_quarter\": \"Q2-2026\",\n  \"supersedes\": null,\n  \"ts\": \"ISO8601\"\n}\n```\n\n**Supersede pattern:** Post a new message with `\"supersedes\": <prior_sequence_number>`. Website reads all messages, builds a map of `id → latest non-superseded message`, renders current state.\n\n**Sealed roadmap items** are commitments made publicly but locked until the target date. When the milestone is hit, a `public` superseding message unlocks it. The original sealed timestamp proves the commitment existed before the outcome.\n\n---"
    },
    {
      "title": "5. Treasure Accounts",
      "level": 3,
      "body": "Three funded mainnet accounts. Each is a reward for solving a puzzle embedded in `treasure`-visibility HCS messages.\n\n**Structure:**\n\n| Account | Funding | Puzzle location | Mechanism |\n|---|---|---|---|\n| Treasure #1 | 1 HBAR | Early `bezeliq.history` message, `visibility: \"treasure\"` | SHA256(answer to Riddle 1) = private key |\n| Treasure #2 | 2 HBAR | Later `bezeliq.history` message, `visibility: \"treasure\"` | Decode acrostic in description, SHA256 |\n| Treasure #3 | 5 HBAR | Unlocked only after #1 + #2 are claimed | Answer derived from combining #1 and #2 solutions |\n\n`create-treasure.js` records the exact sequence number of each clue message after posting — stored in `redkey.yaml` under `bezeliq.treasures` so we can reference them. Puzzle design (riddles, acrostics) is authored separately and passed as arguments to the script.\n\nThe private key for each treasure account is the SHA256 hash of the correct answer — 32 bytes, valid as an ED25519 private key. First person to crack the puzzle imports the key and sweeps the account.\n\n---"
    },
    {
      "title": "6. bezeliq.ai Website",
      "level": 3,
      "body": "A single-page site. Minimal, intentional, cryptic enough to be interesting.\n\n**What it shows:**\n- Company name: BezelIQ (or Bezel)\n- One paragraph: the public mission statement (visible)\n- A timeline/list of `public` and `sealed` history milestones, pulled live from `bezeliq.history` via Hedera mirror node REST API\n- A roadmap section pulling `public` items from `bezeliq.roadmap`\n- Sealed items shown as locked — date visible, content hidden\n\n**What the HTML source contains:**\n\n```html\n<!-- \n  Founding record: 0.0.XXXXXXX\n  If you're reading this, you know how to look.\n-->\n```\n\nThat topic ID is `bezeliq.identity`. The clue chain begins there.\n\n**Data source:**\n\nNo backend needed initially. Direct mirror node REST calls:\n\n```\nGET https://mainnet-public.mirrornode.hedera.com/api/v1/topics/{topicId}/messages\n```\n\nFilter client-side by `visibility === \"public\"`. Sealed items decoded from Base64 and rendered as locked.\n\n---"
    },
    {
      "title": "7. Multi-Author Journey — Agents + Humans",
      "level": 3,
      "body": "The `bezeliq.history` topic is a conversation, not a log. Every contributor posts in their own voice with their own author tag. The website surfaces who said what.\n\n**Contributors:**\n\n| Author | Type | Posts when |\n|---|---|---|\n| `justin` | human | Founding moments, company decisions, personal reflections |\n| `atlas` | agent | Architecture decisions, patterns noticed, platform reflections |\n| `quinn` | agent | Code shipped, PRs merged, technical achievements |\n| `priya` | agent | Specs written, requirements landed, planning milestones |\n| `claire` | agent | Workflows completed, projects routed and closed |\n| `vikram` | agent | Architecture reviewed, PRs approved, quality gates passed |\n| `engine` | agent | Workflow completions — the state machine marking things done |\n\n**Workflow integration:**\n\nA lightweight `bezeliq_milestone` workflow template with one step: post a `milestone` message to `bezeliq.history`. Engine appends this as a terminal step on significant project workflows — the agent who did the work is the author.\n\nAtlas posts independently via `/log` — mid-session insights, architecture rationale, decisions worth preserving. These are Atlas's own voice, not tied to a workflow.\n\nJustin posts via `scripts/mainnet/post-milestone.js` — the founder's thread through the story.\n\n**What gets documented:**\n- Platform milestones (first agent live, first workflow completed, Phase 3 entity model)\n- Product milestones (first client, first integration healed)\n- Company milestones (founding, team additions, funding)\n- Agent reflections (Atlas on architecture, Quinn on a hard problem solved)\n- Justin's founder journal entries\n\nThe result: by launch day, months of real history already live on-chain — written by humans and agents together, timestamped, immutable, verifiable. The press release writes itself: \"we built in public on Hedera before anyone knew our name — and our agents wrote most of it.\"\n\n---"
    },
    {
      "title": "Scripts",
      "level": 2,
      "body": "| Script | Purpose |\n|---|---|\n| `scripts/mainnet/setup-bezeliq.js` | Creates account, funds from personal, creates 3 topics, posts HCS-11 profile + founding block |\n| `scripts/mainnet/post-milestone.js` | Posts a milestone to bezeliq.history (args: title, description, visibility, tags) |\n| `scripts/mainnet/post-roadmap-item.js` | Posts or supersedes a roadmap item on bezeliq.roadmap |\n| `scripts/mainnet/create-treasure.js` | Creates a funded treasure account and embeds the clue in a treasure message |\n| `scripts/mainnet/fund-account.js` | Transfers HBAR from personal account to BezelIQ account |\n\nAll scripts read from `BEZELIQ_OPERATOR_ID` + `BEZELIQ_OPERATOR_KEY` env vars (mainnet).  \n`setup-bezeliq.js` reads `HEDERA_OPERATOR_ID` + `HEDERA_OPERATOR_KEY` (Justin's personal account) for the initial funding transfer only.\n\n---"
    },
    {
      "title": "Mainnet Configuration",
      "level": 2,
      "body": "New section added to `redkey.yaml`:\n\n```yaml\nbezeliq:\n  network: mainnet\n  operator_id_env: BEZELIQ_OPERATOR_ID\n  operator_key_env: BEZELIQ_OPERATOR_KEY\n  topics:\n    identity: \"0.0.TBD — set after setup-bezeliq runs\"\n    history: \"0.0.TBD\"\n    roadmap: \"0.0.TBD\"\n  website: https://bezeliq.ai\n  mirror_node: https://mainnet-public.mirrornode.hedera.com\n```\n\n---"
    },
    {
      "title": "Easter Egg Map",
      "level": 2,
      "body": "| Egg | Location | What it reveals |\n|---|---|---|\n| Account memo | BezelIQ mainnet account | First cryptic signal — \"The intent survives the break.\" |\n| HTML comment | bezeliq.ai source | Identity topic ID + \"if you're reading this, you know how to look\" |\n| `clue` in HCS-11 profile | `bezeliq.identity` seq 1 | Base64 → \"history is already written.\" — points to history topic |\n| Treasure #1 clue | `bezeliq.history` seq 3 | First puzzle |\n| Acrostic | `bezeliq.history` seq 7 | First letters of each sentence spell a word |\n| Treasure #2 clue | `bezeliq.history` seq 7 | Second puzzle |\n| Clue chain terminus | Requires solving Treasure #1 + #2 | Leads to Treasure #3 (5 HBAR) |\n| Sealed commitments | `bezeliq.roadmap` | Time-locked predictions — unlock when milestones hit |\n\n---"
    },
    {
      "title": "Success Criteria",
      "level": 2,
      "body": "- [ ] BezelIQ mainnet account exists, funded, memo set\n- [ ] `bezeliq.identity` topic live on mainnet, HCS-11 profile posted\n- [ ] `bezeliq.history` topic live, Founding Block posted\n- [ ] `bezeliq.roadmap` topic live, first 3 roadmap items posted (2 sealed, 1 public)\n- [ ] 3 treasure accounts funded, puzzles embedded in history messages\n- [ ] bezeliq.ai renders history + roadmap from mirror node\n- [ ] HTML source contains identity topic comment\n- [ ] Topic IDs recorded in `redkey.yaml` + Supabase `topics` table"
    }
  ],
  "html_path": "artifacts/2026-04-24-bezeliq-mainnet-identity-82b17eb708.html",
  "json_path": "artifacts/2026-04-24-bezeliq-mainnet-identity-82b17eb708.json"
}