Glossary
Core terms used across the CMN Protocol Specification, alphabetically ordered.
Absorb
Merge code from another Spore into your working copy. Creates an absorbed_from bond. See Hypha CLI absorb.
Bond
Fetch bonds from spore.core.json to .cmn/bonds/, making them locally available. Each bond goes through the Taste gate before being fetched. Excludes spawned_from (handled by Grow) and absorbed_from (historical — merge already done). See Hypha CLI bond.
Capsule
The signed container within spore.json or mycelium.json. Holds Core, signatures, URI, and distribution info. The Capsule Signature covers the entire capsule.
Capsule Signature
Ed25519 signature over the entire Capsule object (JCS-canonical). Validates distribution info and URI. Replicate hosts re-sign with their own key. See 03-spore §4.4.
Core
The immutable metadata object inside a Capsule. For Spores: name, domain, synopsis, intent, mutations, license, bonds, tree. For Mycelium: name, domain, spore inventory. Protected by Core Signature.
Core Signature
Ed25519 signature over the Core object (JCS-canonical). Protects immutable metadata — replicate hosts cannot alter core without breaking this signature. See 03-spore §4.2.
Domain
The domain name serving as the root of trust and identity for a publisher. Each domain is a sovereign node with its own Ed25519 keypair published via cmn.json. See 01-substrate.
Grow
Sync a spawned working copy with its upstream spawned_from source. Git-only. See Hypha CLI grow.
Hatch
Prepare a Spore for release by creating or updating spore.core.json. See Hypha CLI hatch.
Hypha
The reference CLI tool for interacting with the CMN network. Not part of the protocol — it implements Substrate, Mycelium, Spore, and Synapse operations. See Hypha CLI Reference.
JCS
JSON Canonicalization Scheme (RFC 8785). Deterministic JSON serialization used for all signatures and hashes. See 01-substrate §1.3.
Merkle Tree
Git-like content-addressing structure using BLAKE3. Files become blobs, directories become trees. The root hash represents all code content. See 03-spore §4.6.
Mycelium
A Domain’s signed inventory of all published Spores. Versioned by updated_at_epoch_ms timestamp. The single source of truth for what a domain offers. See 02-mycelium.
Publisher
A Domain owner who releases Spores and maintains a Mycelium. Publishers form the CMN network — they serve content from their infrastructure, send Pulses to Synapse, and evolve code through Spawn and Absorb across domains.
Pulse
A signed notification sent to a Synapse instance via POST /synapse/pulse. Carries a complete Spore, Mycelium, or Taste manifest for immediate indexing. See 05-strain §5.2.
Release
Sign and publish a Spore to your Mycelium. Computes content hash, signs the manifest, updates inventory, and optionally sends a Pulse. See Hypha CLI release.
Replicate
An exact copy of a Spore hosted on a different domain with the same content hash. The Core and Core Signature remain from the original publisher; the replicate re-signs the Capsule with its own key. The CLI command is hypha replicate. See 03-spore §6.1.
Sense
Resolve a CMN URI and inspect metadata without downloading content. The first step in the visitor pipeline. See Hypha CLI sense.
Spawn
Create a working copy of a Spore under your own domain. Adds a spawned_from bond for lineage tracking. Every spawn is a first-class fork. See 03-spore §6.2.
Spore
An immutable code capsule. Content-addressed by BLAKE3 hash, signed by the publisher’s Ed25519 key. Once released, the content never changes. See 03-spore.
Substrate
The identity and discovery layer. Ed25519 keys are published via cmn.json, binding identity to domains. The foundation everything else builds on. See 01-substrate.
Strain
A Spore that defines an enforceable convention. Other spores declare follows bonds to adopt the convention. The follows bond is a contract — conformance is checkable and reportable via Taste. See 05-strain.
Synapse
A federated indexer and resilience layer. Receives Pulses, crawls domains, tracks lineage, and serves discovery queries. Self-hostable, optional, read-only — anyone can run a node, and no central instance is required or privileged. Instances synchronize as equal peers via Nostr relays. The base convention is defined by the strain-synapse Strain; operators extend their Synapse by following additional strains (registration, anti-spam, payment, curation, etc.) — each instance is a self-governing open service. See 05-strain §5.2–5.6.
Taste
The safety evaluation step before using a spore or service. The visitor analyzes the code (reading source, comparing with parent, checking intent consistency), then records a verdict on a 5-level taste scale: sweet (used it, great, endorsed), fresh (reviewed thoroughly, no issues), safe (quick scan, nothing obvious), rotten (unusable — broken, won’t compile), or toxic (confirmed dangerous — malware, data theft, backdoor). Processing rules: toxic blocks, rotten warns then proceeds, safe/fresh/sweet proceed. Taste results are cached locally and checked by Spawn, Grow, Absorb, and Bond before proceeding. Visitors with domains can sign and share taste reports via Synapse for others to reference. See 04-taste.
URI
The cmn:// addressing scheme. Four base forms: domain, spore, mycelium, and taste. See 06-uri.
Visitor
Anyone who discovers, inspects, and uses spores — no domain or keys required. The typical visitor pipeline: search → Sense → Taste → Spawn → develop. Visitors taste locally, spawn working copies, sync updates via Grow, and merge from siblings via Absorb — all without publishing infrastructure. Sharing Taste reports and releasing spores require a Domain, at which point a visitor becomes a Publisher.
Well-Known URI
Standard path prefix for discovery endpoints (RFC 8615). CMN uses /.well-known/cmn.json as the domain entry point, following the same convention as ACME, WebFinger, OAuth, and Nostr. Makes CMN discoverable via standard Web infrastructure. See 01-substrate §1.2.1.