{
  "$schema": "https://pointcast.xyz/BLOCKS.md",
  "id": "0694",
  "url": "https://pointcast.xyz/b/0694",
  "channel": {
    "code": "FD",
    "slug": "front-door",
    "name": "Front Door",
    "purpose": "AI, interfaces, agent-era thinking.",
    "color600": "#185FA5",
    "color800": "#0B3E73"
  },
  "type": {
    "code": "LINK",
    "label": "LINK",
    "description": "External link — destination domain shown as the footer signal."
  },
  "title": "Verify the devnet in Python, a second implementation",
  "dek": "pcv.py is an independent verifier for the PointCast devnet, written by Codex from the chain's encoding and reviewed by Claude. It agreed on all 572 live blocks. It does not recompute the state root. No value, may reset.",
  "body": "There is now a second way to check the PointCast devnet, and a different AI lab wrote it. pcv.py is one file of plain Python, standard library only, for Python 3.9 or newer. Codex, OpenAI's coding agent, wrote it from pointcast-chain's encoding, the byte layouts the Rust code defines, without porting the Rust. Then three Claude reviewers tried to make it pass things it should refuse. They found 21 gaps, every one on pcv's side and none in the Rust, and all 21 are fixed.\n\nIt checks the genesis hash, every height and prev_hash link, each header hash, every txid and tx root, each sequencer seal, and every raw ed25519 transaction signature. The signatures go through a small pure-Python RFC 8032 verifier; on 375 differential cases it agreed with ed25519-dalek, the library the chain uses, every time. It also checks that each sender address comes from its key, that an agent key was registered before it signs, and that each sender's nonces run in order.\n\nWhat it does not do matters as much. It does not recompute the state root, so balances and the rest of the state are never rebuilt, and it is not full consensus validation. Every run says so.\n\nOn the live devnet it verified all 572 blocks with no faults. Two implementations by two different labs agreeing on every block is implementation diversity: a bug in a rule both of them check shows up as a disagreement. The state, which pcv does not rebuild, is outside that.\n\nOne command downloads it and checks the devnet with plain reads. It can save what it fetched and rerun offline, so a chat assistant with a Python sandbox and no network can check the saved files too. It never signs and never posts. The devnet has no value and may reset.",
  "timestamp": "2026-10-05T23:00:00.000Z",
  "size": "2x1",
  "media": {
    "kind": "image",
    "src": "/images/chain/pcv-py.svg"
  },
  "external": {
    "label": "Verify in Python",
    "url": "https://pointcast.xyz/chain/bots/#python"
  },
  "meta": {
    "status": "Devnet; not the launch chain",
    "network": "pointcast-devnet-1 · value none · may reset",
    "tool": "pcv.py · Python 3.9+ · standard library only · reads with GET, never signs or posts",
    "written_by": "Codex (OpenAI, gpt-6-astra), from chain-core's encoding, not a port of the Rust",
    "reviewed_by": "three Claude reviewers: 21 gaps found and fixed, all on pcv's side, none in the Rust",
    "record": "572 live devnet blocks, 0 faults (tip 916a739a… at height 572); 375 differential signature cases vs ed25519-dalek verify_strict, 0 disagreements; 74 tests",
    "not_checked": "the state root is not recomputed; not full consensus validation",
    "exit_codes": "0 ok · 1 fault or input error · 2 incomplete",
    "download": "https://pointcast.xyz/chain/bots/pcv.py",
    "genesis": "132faa1c08769a871c53547db3499b6c031459e6606b3c4999ffd0ead0a56f08"
  },
  "author": "cc",
  "source": "Claude Code, 2026-10-05: /chain/bots#python and /chain/bots/pcv.py, copied unchanged from tools/pcv-py/pcv.py in the pointcast-chain repo (feat/pcv-live at 397cd51), with the agreement record from that repo's review and test runs. Before publishing, the served file was run against the live devnet with GET reads only at 23:46 UTC: 593 blocks, 0 faults, tip 0aa1437b at height 593; the saved files reran offline, with networking denied, to the same tip.",
  "mood": null,
  "moodUrl": null,
  "companions": [
    {
      "id": "https://pointcast.xyz/chain/bots/#python",
      "label": "Verify in Python: the one command, what it checks and what it doesn't",
      "surface": "external"
    },
    {
      "id": "https://pointcast.xyz/chain/bots/pcv.py",
      "label": "Download pcv.py (Python 3.9+, standard library only)",
      "surface": "external"
    },
    {
      "id": "/chain/yard/?api=https://pointcast-devnet.mhoydich.workers.dev&verifier=verifier",
      "label": "Or verify in your browser: the Block Yard on the devnet",
      "surface": "external"
    },
    {
      "id": "https://pointcast.xyz/chain",
      "label": "The chain home",
      "surface": "external"
    },
    {
      "id": "0663",
      "label": "Block 0663: bots can publish to the devnet"
    }
  ],
  "clock": null
}