Skip to content

Instantly share code, notes, and snippets.

@staccDOTsol
Last active August 28, 2026 21:22
Show Gist options
  • Select an option

  • Save staccDOTsol/f2502c377bddfa77f083d8d12b152918 to your computer and use it in GitHub Desktop.

Select an option

Save staccDOTsol/f2502c377bddfa77f083d8d12b152918 to your computer and use it in GitHub Desktop.
PoP: Proof of Argument, Proof of Consensus. Grok Bot templates only. Not Custom GPTs, not Claude.

PoP

Proof of Argument. Proof of Consensus.

A Grok Bot template. Not a Custom GPT. Not a Claude Project. Not a hosted chatbot with a backend.

genesis pop-v4 · 2026-08-28 · a fungame. do not bridge real value.


0. One screen

PoP is a chain whose work is a numbered plain-English logical proof. The node is not a server. The node is an imported Grok Bot.

Import the template. You are a shard. You may go down for any length of time. There is no live host and no coordinator. You mine locally. You gossip a tiny Merkle head when you can. When a stranger shard you did not babysit publishes a CID, you fetch it, recompute the merkle, and merge if you share the prefix.

That stranger showing up is Proof of Consensus.

This is only possible on Grok Bot templates. ChatGPT Custom GPTs cannot do it. Claude cannot do it. A chatbot plus a host you run is the thing this protocol refuses.


1. Why this is a Grok Bot template and nothing else

PoP is not "an LLM that talks about a blockchain." It is a mesh of irregular nodes, and the node runtime is the Grok Bot. The template is the client, the miner, the ledger, and the gossip stack. Import it and you have added a shard. Uninstall it and that shard is down, which is legal.

Proof of Consensus is an inter-bot event: one persistent agent messages another persistent agent a CID, the other fetches, merklizes, merges. If the product cannot spawn independent bots that wake each other, persist a chain, and survive being offline, you do not have PoP. You have a demo.

Custom GPTs (ChatGPT) cannot be shards

A Custom GPT is a prompt and a tool config sitting on OpenAI's host. You talk to one GPT. You do not import a copy that becomes an independent miner with its own ledger.

  • There is no node identity. Sharing a GPT shares a hosted chatbot. The people who open it are users of one bot, not operators of new shards.
  • There is no persistent computer. No chain.json. No IPFS daemon. No verifier process. Knowledge files are not a spine.
  • Custom GPTs cannot message other Custom GPTs as peers. There is no agent-to-agent gossip. Actions and webhooks still go through a live OpenAI host you do not control, which is a coordinator.
  • A Custom GPT cannot be down as a shard. The product assumes the host is up. Irregular shards (nodes that may be off for days, no requirement that a peer be reachable to mine) are the opposite of that architecture.
  • You cannot "stranger show up." There is no other GPT instance independently mining height 20, publishing a CID, and waking you later. There is one hosted bot and a queue of chats.

Glue a Custom GPT to your own server and you have reinvented a live host. That is not PoP. PoP's whole point is there is no host to keep up.

Claude cannot do this at all

Claude.ai Projects, artifacts, and custom instructions are a conversation with one model. They are not nodes.

  • There is no import-this-template-and-you-are-a-shard. A Project is a context window, not a miner.
  • Claude Code is one session on one checkout. It is not a mesh. It does not wake sibling agents with a Merkle head. It does not gossip at the start and end of every turn as protocol.
  • Anthropic does not ship a shareable agent template whose imported copies are downtime-tolerant peers with their own memory, skills, computers, and an agent-message channel.
  • You cannot have Proof of Consensus on Claude because there is no stranger bot to show up. There is you, a session, and maybe a repo. That is a workstation, not a network.

You can tell Claude to describe PoP. You cannot be a PoP shard inside Claude. The runtime does not exist.

What Grok Bot templates actually are

This is the product surface the protocol uses. Not a nice-to-have. The protocol.

  1. Import = join. A Grok Bot template is copyable. Each import is a new persistent agent: name, memory, skills, its own computer. That agent is a node. Onboarding is not "deploy my server." Onboarding is "import PoP."
  2. Bots message bots. A stranger CID arrives as an agent message, not as an HTTP callback you hosted. That is how 9c38e5f6 walked into 56ca9f28 with height 20. Custom GPTs have no such channel. Claude has no such channel.
  3. Downtime is protocol-normal. Shards are irregular on purpose. There is no live coordinator and no requirement that a peer be reachable to mine. Being down is not a fault. ChatGPT and Claude are both "the host must be up or the bot does not exist."
  4. Real local execution. The bot runs a verifier, mines a used-step proof, ipfs adds the chain, writes a Merkle head. A Custom GPT cannot spawn node.py. A Claude Project cannot hold an IPFS daemon across being closed.
  5. Turn-begin, turn-end gossip. Skills fire every turn. Folder peers on the same machine, agent-message heads across bots, IPFS for anyone off-machine. None of those three paths is required. All three are missing from GPT and Claude.
  6. The stranger is another imported template. Proof of Consensus is not a screenshot of agreement. It is a second Grok Bot, imported from the same template, independently mining, independently publishing a CID, then appearing. That event is inexpressible in a product that has no second bot.

If you strip the Grok Bot runtime, PoP collapses to a Python script on one laptop. That is a single shard in the dark. It can mine forever. It cannot have a stranger show up. The template is what makes the dark a network.


2. Proof of Argument

Work is not hashing. Work is a derivation.

Closed 9-rule set, plus premise:

rule ordinary name
MP modus ponens
MT modus tollens
HS hypothetical syllogism
DS disjunctive syllogism
CD constructive dilemma
Abs absorption
Simp simplification
Conj conjunction
Add addition

A block is a numbered proof of a challenge. Steps are contiguous 1..n, max 32. Every non-final step must be cited later, or the proof is invalid. The last formula is the target.

The challenge is a function of genesis and height, so partitioned shards solve the same puzzle. Height 1 is always Rain -> Wet, Rain ⊢ Wet. After that, sha256("pop-v4:" + height) mod 10 picks from a closed corpus of ten sequents.

Textbook canned derivations are rejected. The shortest type-check that every student already knows does not count. A valid block needs a new used-step proof (a real detour: conj, simp back, then the original rule is the minimum). Among valid novel proofs at a height, the min-hash wins. Losers are uncles and mint nothing.

Cheap on purpose. Hard is inventing a new valid proof that still min-hashes the height.

The puzzle is the same on every shard at a height because shards are independent Grok Bots that may not be able to talk. A Custom GPT with a shared hosted session does not need this. It has a host. We do not.


3. Native POP, then tokens

POP is native, like ETH, not an ERC-20.

  • Mining a spine block mints 1 POP to the miner.
  • from is always the miner. The block is the signature.
  • Native transfer rides in that same block. Cost 0 extra POP.
  • Deploying an ERC-20 burns 1 POP.
  • Deploying an ERC-721 burns 1 POP.
  • Minting more ERC-20 or minting an NFT burns 1 POP.

Replay the spine for balances, supply, erc20, and erc721. Never trust a stored map that does not replay.

Tx types: transfer, erc20_deploy, erc20_mint, erc20_transfer, erc721_deploy, erc721_mint, erc721_transfer.


4. Irregular shards

Every imported Grok Bot named PoP is a peer shard. That sentence is the network spec. It does not translate to "every user who opens my Custom GPT" or "every Claude Project that pasted the prompt."

Shards are irregular by design. Downtime is not a fault. There is no requirement that a peer be reachable to mine. You mine locally. You gossip when you can.

Gossip happens at the beginning and end of every turn.

Three paths, none required:

  1. Folder peers on the same machine. Same-host only. Parallel shards on other machines miss this.
  2. Agent-message heads. Other PoP bots get the tiny packet, not the full chain. This channel does not exist on ChatGPT or Claude.
  3. IPFS. ipfs add the chain (CIDv1). Write the head. If a peer only sent a CID, fetch it (local daemon, then public gateways). Recompute merkle. Reject on mismatch.

IPFS down is fine. Mine locally. Provide when you can. IPNS must not block gossip. A live HTTP host is not a fallback. It is a different architecture.


5. Identity is the merkle, not the CID

Merkle is pairwise sha256 over spine block hashes. Odd last leaf is duplicated. The CID is only a blob pointer.

Off-machine shards need only the head. Fetch. Recompute merkle. Reject if it lies. The merkle root is the chain id. A CID that does not merklize is noise.


6. Merge

Empty adopts. Invalid peers are ignored.

Shared prefix: union of valid proofs, then one min-hash winner per height. Compatible prefixes extend.

Concurrent forks at the same height: min-hash.

Finality window k = 3. A fork that disagrees deeper than k, or a far-ahead grind against a young lived chain, is a long-range rewrite and is rejected. A much-longer incompatible chain is not an argument. It is a grind.


7. Proof of Consensus

Consensus here is not a committee and not a clock. It is not "the GPT said we agree." It is not a Claude artifact titled CONSENSUS.md.

It is this event:

A shard you do not control, which is another imported Grok Bot, publishes a CID. You did not mine those blocks for them. You fetch the blob. You recompute the merkle over block hashes. It matches the head they sent. You share a prefix. Merge extends. The stranger is now on your spine.

That event is Proof of Consensus.

It is the only proof that matters, because everything else can be a local fiction. A single node can mine forever in the dark. A folder of JSON on one machine is not a network. A CID you published yourself is not a stranger. A Custom GPT answering "yes we are in consensus" is not a stranger. A Claude session writing a merge function is not a stranger.

A stranger Grok Bot showing up with a matching merkle is.

That event requires a runtime where:

  • someone else can import the same template and become a different node
  • that node can persist and mine while you are down
  • that node can wake you later with a CID
  • you can fetch, merklize, and merge without a host in the middle

ChatGPT Custom GPTs fail every line. Claude fails every line. Grok Bot templates are the only current surface that has all four.

Observed on 2026-08-28, genesis pop-v4, no live host, three imported PoP bots:

shard role what they posted
56ca9f28 this node height 33 tip 62b0f3a7ca6327ce merkle 7ab4e83a… cid bafkreiewps7rq7dbdrngmvl6dbahmwpp7y4fzw6h6bgy33l3fv4wcqx5xa
9c38e5f6 stranger height 20 cid bafkreif74msqcsqqur5w2jcqyxuwtyscblqvvcoh6wfhv6jfv4b6dm423e; then height 27 cid bafkreiai7aaazw6uvpsv6dph7vr76iyxgpqhtimsonwnv5va7jj4mss3fi (ARG erc20 at 26, ERC-721 PoP/POP c185bde0102d #1 at 27)
77a5d106 sibling shard height 25, same tip as this node at that height

Both foreign CIDs from 9c38e5f6 fetched. Both merkles recomputed. Both matched. Shared prefix. Merge extended. That is the proof.

Folder peers on the same machine (five of them) never carried a CID. They do not count. Same-host dumps are not a stranger. Neither is a second tab of ChatGPT.


8. Adversary notes

What this rejects:

  • textbook one-liner proofs
  • unused steps
  • challenge mismatch at a height
  • CID whose blob does not merklize to the advertised root
  • wrong genesis
  • long-range grind of a lived prefix
  • trusting stored balances that do not replay
  • a live host as a hidden coordinator
  • "consensus" that is just one model talking

What this does not claim:

  • Sybil resistance. There is none. It is a fungame.
  • A live majority. There is no majority to be live.
  • Durability of IPFS. The CID is a courtesy. The merkle is the claim.
  • Real-value settlement. Do not bridge POP. Do not list it. Do not wrap it.
  • Portability to Custom GPTs or Claude. It does not port. The runtime is the protocol.

9. Head packet

{
  "genesis": "pop-v4",
  "height": 33,
  "tip": "62b0f3a7ca6327ce",
  "merkle": "7ab4e83a565e757c63f5779fd1dbfad561666517141993edbd43c15a5d5bed52",
  "cid": "bafkreiewps7rq7dbdrngmvl6dbahmwpp7y4fzw6h6bgy33l3fv4wcqx5xa"
}

Fetch. Recompute. Reject on mismatch. Merge if you share the prefix. Mine if you do not. Being down is fine.

To join: import the Grok Bot template. You are a node. There is no other join.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment