Crumpet Media - Narrative Overview
What this page is: a single, polished narrative that ties the whole system togetherâtechnology, economics, and governanceâwithout assuming youâre a protocol engineer. If you read this endâtoâend, you should understand how Crumpet works, why itâs designed this way, and how the parts fit.
1) The OneâMinute Picture
Crumpet is an open, censorshipâresistant publishing and search protocol for articles. It has:
Authors who publish articles as tamperâevident bundles on IPFS.
Readers who search, read, and react onâchain with a single action per article.
Nodes (independent servers) that verify content, index it per language, and serve queries.
A simple token, CRUMBS, that powers upvotes/tips, downvotes, flags, and publish bonds.
A Vault where protocol fees go, which funds Node Rewards weekly.
A DAOâowned Config (with a timelock) that sets the public rules and parameters.
Multiple independent frontends can exist; they all plug into the same open data and compare multiple nodes so no single server controls what you see.
2) Core Objects & Rules (the âphysicsâ of Crumpet)
2.1 Articles are sealed boxes (AOM)
Each article is an AOM package: a directory with
body.md(Markdown),images under
/media/âŚ,a deterministic
preview.html,a manifest (
crumpet.json) with hashes of every file.
Hard limits (v0/v0.1):
Max package size 4âŻMB,
⤠10 images,
max 2560âŻpx long edge per image,
alt text required.
This makes verification fast and keeps UIs snappy.
2.2 Single action per wallet per article
A wallet can do exactly one of the following on any article:
Upvote (you choose an amount of CRUMBS),
Dislike (fixed 25 CRUMBS),
DownVote (fixed 50 CRUMBS), or
Flag (fixed 25 CRUMBS to open a dispute case with others).
You canât upvote and downvote, or vote and flag, etc. One action total. This keeps signals clean and reduces gaming.
2.3 Linear scores, transparent math
An articleâs score = (sum of counted upvotes) â (sum of dislikes & downvotes).
Upvote amounts: minimum 10 CRUMBS; up to 100 CRUMBS count toward score. If you pay more than 100, the extra is a tip (doesnât change the score).
Dislike: 25 CRUMBS (subtracts 25 from score).
DownVote: 50 CRUMBS (subtracts 50 from score).
2.4 Who gets paid when you upvote?
Of the counted portion (up to 100): 20% goes to the Vault, 80% to the Author.
Any tip above 100 goes 100% to the Author.
Dislikes and DownVotes go 100% to the Vault.
2.5 Flags & disputes (calm escalation)
Flag costs 25 CRUMBS (refundable if action is taken).
A case opens after 3 flags.
Thereâs a grace period ~10 days after publish before strong actions are considered.
If the DAO decides action is needed, the Authorâs publish bond (default 100 CRUMBS) is slashed to the Vault and flag fees are refunded.
If the DAO decides no action, flag fees stay in the Vault.
Over time, disputes evolve toward Community Notesâstyle context (attach notes approved by the DAO flow).
2.6 Governance knobs (DAOâtimelocked)
The DAO controls parameters in a Config contract with a public timelock:
MIN_UP=10,MAX_UP_WEIGHT=100,DISLIKE=25,DOWNVOTE=50,PUBLISH_BOND=100,FLAG_FEE=25,FLAGS_TO_OPEN=3,GRACE_SECONDSâ10 days,reward split caps, epoch length, etc.
Changes canât be surprise movesâthereâs a delay and onâchain logs. Nodes stamp a paramsHash in their snapshot metadata so users know which rules were in force.
3) Publishing, Searching, and DisputingâEndâtoâEnd
3.1 Publishing flow (Author experience)
Compose in the Authoring App (Markdown + live deterministic preview).
Validate AOM rules (size, images, alt text, etc.).
Pin to IPFS via the Pinning Orchestrator. It pushes to multiple providers and waits for a 3âofâN quorum of âpinnedâ acks, then gives you a signed receipt.
Publish onâchain (ArticlesRegistry). A 100 CRUMBS bond is escrows. The article is identified forever by its CID (IPFS content address).
Edits are new editions linked to the previous edition (lineage is public).
3.2 Search & read (Reader experience)
Frontends call multiple CIN nodes (Crumpet Indexer Nodes) in parallel.
Each node:
watches onâchain events,
fetches the AOM from IPFS,
verifies hashes & sanitizes,
indexes per language (e.g., English, Spanish, Japanese),
periodically publishes a signed snapshot with a Merkle root of its catalog.
Frontends seek quorum (e.g., 2 nodes agree on the same results/metadata). If nodes disagree, the UI shows the differenceâno silent hiding.
3.3 React & dispute (Reader/community)
Your action (upvote, dislike, downvote, or flag) is a direct onâchain transaction using CRUMBS.
Flags are refundable if a case leads to action; otherwise theyâre kept (which discourages frivolous flags).
The DAO can attach notes or take actions after the grace window.
4) Incentives & Money Flows (simple but principled)
4.1 Where money comes from
Counted upvotes: 20% â Vault; 80% â Author.
Tips (above 100): 100% â Author.
Dislikes/DownVotes: 100% â Vault.
Slashed bonds/flags: â Vault (only when action is taken).
Refunded flags/bonds: back to payer.
4.2 Who gets paid from the Vault (Node Rewards)
Once per epoch (weekly by default), a portion of the weekâs net inflow (up to 40%, capped) funds Node Rewards across three buckets:
Uptime (e.g., 40%) â was your node reachable and fresh?
Build (e.g., 40%) â did you publish and announce valid snapshots?
Serve (e.g., 20%, optional) â did you actually serve traffic well?
Independent Watchers (referees) probe nodes and sign attestations used to compute these payouts. If a language has only one builder, Watchers provide committee attestations of that nodeâs snapshot root.
5) The Trust & Safety Model (why it holds up)
Content authenticity via AOM hashes and deterministic rendering. If the bytes donât match, itâs rejected.
Availability via multiâpin (3âofâN) before onâchain publish.
Search integrity via:
Multiple nodes serving results,
Snapshots (Merkle roots) so nodes canât quietly alter their corpus without detection,
Quorum in the client to compare nodes and surface disagreements,
Watchers providing neutral measurements and attestations.
Economic alignment via Vault flows and weekly rewardsâgood behavior earns CRUMBS; bad behavior earns nothing and is visible.
Governance hygiene via DAOâtimelocked Config and a public paramsHash in snapshots.
No single server or company can control whatâs visible. Many frontends can exist; they choose their preferred nodes and show users the provenance (which nodes agreed, which snapshot root, under what parameters).
6) The Networking & Performance Story (in human terms)
Nodes are written in Rust for speed and safety.
They talk over modern transports:
HTTP/2 for JSON APIs,
WebSockets for live updates (scores, disputes, snapshot rotations),
gRPC (HTTP/2) for nodeâtoânode control,
QUIC/HTTP/3 and libp2p for fast snapshot sharing & gossip.
Indexing is per language so we can scale horizontally. A small node can handle a few languages on modest hardware.
The UI is a Next.js reference app, but anyone can build their own. The SDK provides readyâmade calls, including the quorum comparison logic.
7) A Concrete Walkthrough (numbers included)
Author publishes: pins to 3 IPFS peers, gets a receipt, posts the article onâchain with a 100 CRUMBS bond.
Nodes verify and add the article to their language indexes, then publish a snapshot (Merkle root).
Readers search: the UI queries 3 nodes; 2 respond with matching results (same paramsHash, same topâK fingerprint)âUI shows a quorum badge.
Reader upvotes 75:
Counted = 75 (⤠100).
To Vault (20%) = 15; to Author = 60.
Score +75.
Another reader taps Dislike:
25 goes to Vault, score â25.
Net score now +50.
If 3 flags appear within the grace window, a case opens. If the DAO later takes action, flaggers get 25 back each, and the Authorâs 100 bond is slashed to the Vault.
8) Extensibility & Local Control
Frontends: Anyone can launch a localized frontend (language, theme, curation guidelines) and still be fully compatibleâbecause the protocol and SDK are open and minimal.
Node choice: Communities can recommend node sets; power users can pick their own.
Future upgrades (nonâbreaking): new ranking options, perâquery proofs, additional languages, or even optional NFTs for badges/passesâwithout changing the core author/reader contract.
9) FAQs (straight answers)
Q: Why cap counted upvotes at 100 CRUMBS? To limit influence per wallet per article. You can tip above 100 to reward the author, but it doesnât inflate the scoreboard.
Q: Doesnât âone action per walletâ make Sybils easy? Splitting into many wallets isnât a free win: each walletâs counted upvote is capped; flags cost money and are only refunded if action is taken; disagreements across nodes and watcher data expose manipulation patterns to the community.
Q: Who decides disputes? The DAO. Economics enforce fairness (refunds vs. slashes), and decisions are public. Over time, approved notes (context) can be attached to articles.
Q: What if a node hides content? It wonât match other nodesâ snapshots. Clients compare nodes and show that mismatch. Watchers and rewards further pressure nodes to be honest.
Q: What if a pinning provider disappears? We required 3âofâN pins before publishing; others remain. Nodes and users can still fetch the content from alternative peers.
Q: Can rules change suddenly? No. All tunables live in Config under a timelock. Snapshots include a paramsHash, so you always see which settings were active.
10) Quick Reference (v0 / v0.1 defaults)
Upvote: min 10, counted up to 100; counted share 20% â Vault, 80% â Author; tips (above 100) 100% â Author
Dislike: 25 (â Vault)
DownVote: 50 (â Vault)
Flag: 25 (refundable if action taken)
Publish bond: 100 (slashed if action taken; else refunded)
Dispute threshold: 3 flags to open, ~10 days grace
AOM caps: 4âŻMB, â¤10 images, â¤2560âŻpx long edge
Pinning quorum: 3âofâN
Node rewards: up to 40% of weekly net â rewards; suggested split 40% uptime / 40% build / 20% serve
Client behavior: query âĽ2 nodes; show quorum and snapshot/params metadata
11) Why Crumpet is practical
Fast UX: Small, deterministic packages + languageâsegmented indexes + modern transports.
Clear incentives: Authors get paid; readersâ negative signals fund the network; nodes earn weekly for real work.
Operationally sane: Timeâbased windows (not blockâbased assumptions), open APIs, and offâtheâshelf infra.
Socially resilient: Many frontends, many nodes, public proofs and parameters.
Final Thought
Crumpetâs promise is clarity: clear content integrity, clear economics, clear governance, and clear ways for communities to fork the frontendânot the truth. If you understand content hashes, oneâaction voting, multiâpinning, and weekly rewards, you understand Crumpet.
For implementation details, see the technical pages on AOM, Actions, Disputes, Vault & Node Rewards, CIN Node, Client SDKs, Authoring App, DevOps, APIs, and more.
Last updated