Glossary
Terms used throughout the Morse protocol and this documentation.
A
- Access Policy
- A numeric constant stored per revision that defines who can read the payload. Current values:
0(public),1(publisher),2(subscription, reserved). Strictly coupled with theencryptedflag: public (0) requiresencrypted=false; publisher (1) requiresencrypted=true.
B
- Blob Mode
- Storage mode
0for collections. Each entry revision stores aBlobRef::Blob(ID)pointing to an independent WalrusBlobobject by Sui object ID. Best for growing, frequently-changing collections. - BlobRef
- A Move enum stored per revision that abstracts the two Walrus payload reference formats. Variants:
Blob(ID)for standalone blobs,QuiltPatch(vector<u8>)for 37-byte quilt patch identifiers.
C
- Capability
- A Move object that proves authorization to perform a specific action. Morse has two capability types:
OwnerCap(admin authority) andPublisherCap(write authority). Capabilities cannot be fabricated; they can only be issued by the protocol. - CMS
- Content Management System. Software for creating, organizing, and publishing structured digital content. Morse implements a decentralized, headless CMS protocol where permission management lives on-chain rather than in a centralized backend.
- Collection
- A named content lane inside a publication. Holds entries in a table keyed by monotonic
entry_idvalues. Has an immutablestorage_mode(blob or quilt). - Content Type
- A MIME-format string stored per entry revision that describes the payload format (e.g.
application/json,text/markdown,image/png). Max 255 characters. Lowercase is recommended for consistency but not enforced on-chain.
D
- dCMS
- Decentralized Content Management System, the category Morse belongs to. Publication identity, authorization, and state transitions are governed on-chain; payloads are stored off-chain in decentralized storage (Walrus).
- Denylist
- The revocation model used for PublisherCaps. A
Table<ID, bool>on each publication stores IDs of revoked caps. Issuance writes nothing to the table; only revocations write. This optimizes for the common case where revocations never occur. - Draft Head
- An
Option<u64>pointer in an Entry that tracks the index of the latest draft revision. May beNoneif no draft has been created. Updated byappend_collection_entry_draft_revision. - Dual-head Model
- The entry versioning architecture where each entry maintains two independent revision head pointers:
draft_head(latest work-in-progress) andpublic_head(currently published). Enables editorial iteration without disrupting stable reader delivery.
E
- Entry
- A single content unit within a collection. Holds a name, an immutable revision vector, and two head pointers. Identified by a stable monotonic
entry_idwithin its collection. - Entry ID
- A
u64assigned to an entry when added to a collection. Values start at0and increment monotonically. IDs are never reused after deletion (stable for external references). - EntryRevision
- The Move struct that stores a single revision's data:
blob_ref,content_type,encrypted,access_policy,seal_id, andauthor. Hasstore, dropabilities. Stored in an entry'srevisionsvector. - Epoch
- A Walrus storage duration unit, roughly one day on testnet (two weeks on mainnet). When uploading a blob, the
epochsparameter controls how long the data is available on the Walrus network; expired blobs can be renewed before their deadline. Passed as--epochs <n>in the CLI orepochs: numberin the SDK. - Events
- On-chain event structs emitted by the Morse contracts during state transitions. All have
copy, dropabilities. IncludesPublicationCreated,PublicationDeleted,SlugRegistered,SlugReleased,PublisherCapIssued,PublisherCapRevoked,CollectionAdded, andCollectionRemoved. See the Events tables on Publications, Collections, and Entries.
G
- gRPC
- A high-performance RPC framework used by
SuiGrpcClientfrom@mysten/sui/grpc. The Morse SDK requires gRPC transport for all Sui interactions. Works in modern browsers without a proxy. See SDK Overview → Known limitations.
H
- Headless CMS
- A CMS architecture that separates content management from presentation. The CMS manages content and metadata; client applications decide how to render it. Content is delivered through APIs. Morse follows this model while decentralizing identity, authorization, and state transitions.
- Holder
- The
addressfield on a PublisherCap that binds the capability to a specific wallet. Write operations check thattx.sender() == cap.holder. A cap cannot be shared between addresses.
I
- Indexer
- The off-chain service that listens to on-chain events and builds a read-optimized index of publications, collections, and entries. Currently planned. See How Morse Works → Off-chain services.
M
- Monotonic ID
- A collection-scoped, auto-incrementing integer assigned to each entry. IDs are never reused after deletion. See Entries → Entry IDs.
- Move
- The programming language used for smart contracts on the Sui blockchain. Morse's on-chain logic is written in Move.
O
- OwnerCap
- The admin capability for a publication. Exactly one exists per publication. Grants authority to issue and revoke publisher caps, delete the publication, and transfer ownership. Has
keyability only. Transferable viatransfer_owner_cap.
P
- Publication
- The top-level Morse content domain. A shared Sui object that bundles a name, an immutable slug, named collections, and a revocation denylist. Created via
new_publication. - PublicationRegistry
- A shared singleton Sui object created at package deploy time. Maintains a
Table<String, ID>that maps slugs to publication IDs, enforcing global slug uniqueness. Required argument fornew_publicationanddelete_publication. - Public Head
- An
Option<u64>pointer in an Entry that tracks the index of the currently published revision. What reader-facing clients should read. Updated bypublish_collection_entry_from_draftandpublish_collection_entry_direct. - PublisherCap
- The write capability for a publication. Many can exist per publication. Grants authority to create/delete collections and entries, append drafts, and publish content. Bound to a
holderaddress. Issued by the owner; revocable by the owner. - PTB
- Programmable Transaction Block, Sui's composable transaction format. Multiple operations can be combined into a single atomic transaction. The Morse protocol uses pure creation functions that return objects for callers to compose in PTBs.
- Policy Tag
- A single byte in a Seal identity that identifies which access policy the identity targets. Currently only
0x01(publisher) is defined. Allows future policy types to coexist within the same publication namespace.
Q
- Quilt Mode
- Storage mode
1for collections. Each entry revision stores a 37-byteQuiltPatchIdpointing to a patch within a shared Walrus Quilt blob. Best for stable, grouped content sets. - QuiltPatchId
- A 37-byte identifier used in quilt mode collections. Layout:
quilt_blob_id (32 bytes) || version (1 byte) || start_index (2 bytes) || end_index (2 bytes). Stored as aBlobRef::QuiltPatch(vector<u8>).
R
- Revision
- An immutable version of an entry at a point in time. Stored in the entry's
revisions: vector<EntryRevision>. Each revision records aBlobRef, content type, encryption state, access policy, optional Seal identity, and author address. Revisions are never mutated; edits append new ones. - Revision ID
- The index of a revision within an entry's
revisionsvector. Starts at0. Returned by all revision-appending functions. Used to reference a specific revision inpublish_collection_entry_from_draft. - Revocation
- The act of adding a
PublisherCap's object ID to a publication's denylist viarevoke_publisher_cap. Immediate effect: the next write attempt using the revoked cap will abort. Historical content is unaffected.
S
- Seal
- Mysten Labs' on-chain access control layer for Walrus blob decryption. Morse integrates via the
seal_approve_publisherentry function, which validates that an active publisher cap holder is authorized within a specific publication namespace. - Seal Identity
- A byte vector (
vector<u8>) that Seal presents to the approval function during decryption. In Morse, the format is:[publication_id (32 bytes)][policy_tag (1 byte)][nonce (variable)]. Scopes decryption approval to a specific publication and policy. - Shared Object
- A Sui object accessible to any transaction, not owned by a single address. In Morse,
PublicationandPublicationRegistryare shared objects. Shared objects enable multi-writer collaboration but require consensus on ordering. - Slug
- A short, unique identifier for a publication. Immutable after creation. Constraints: lowercase
a-z, digits0-9, hyphens; max 64 characters; no leading/trailing hyphens. Enforced globally by thePublicationRegistry. - Storage Mode
- An immutable property of a collection that determines how entry revision blob references are stored.
0= blob mode (standalone Walrus blobs),1= quilt mode (QuiltPatchId references). - Sui
- The Layer 1 blockchain on which Morse contracts are deployed. Sui uses the Move programming language and features an object-centric data model, parallel execution, and programmable transaction blocks.
T
- Table
- A Sui framework type (
sui::table::Table) used by Morse for dynamic key-value storage within on-chain objects. For example, collections store entries in aTable<u64, Entry>.
W
- WAL
- The utility token of the Walrus decentralized storage network. WAL is used to pay for blob storage and is separate from SUI (the gas token for Sui transactions).
- Walrus
- MystenLabs' decentralized blob storage network integrated with Sui. Morse stores all content payloads in Walrus; the contracts hold references (
BlobRef), not the raw bytes. Walrus is format-agnostic; payload interpretation is the client's responsibility. - Walrus Blob
- A Sui object (
walrus::blob::Blob) representing a payload stored in the Walrus network. Production Morse write paths require a reference to this object (not just the blob ID) so the contract can verify the blob is deletable.