Skip to main content
Sage Protocol features a modular architecture organized into a clearly defined set of smart contract packages. Each package provides essential functionality for building decentralized social applications that are transparent, secure, and economically aligned.

admin

Handles administrative roles, permissions, application management, and protocol configuration. It securely manages critical operations, such as app creation, royalty distribution, and type-based access controls.
  • Access Module (access): Implements type-based access controls, verifying authorized entities through explicit type assertions.
  • Actions Module (actions): Supports administrative creation and configuration of apps, royalties management, reward toggling, and logs relevant events.
  • Admin Module (admin): Defines and securely initializes core admin authority structures (AdminCap, FeeCap, RewardCap).
  • Apps Module (apps): Manages app registration and configuration, maintains an address-mapped app registry.
  • Fees Module (fees): Calculates, validates, and securely distributes royalties and fees according to economic parameters.

analytics

Records and manages onchain analytics data, tracking user activity such as posts, interactions, and follows. This data structure helps determine user engagement levels and reward eligibility, enabling richer application experiences.
  • Actions Module (actions): Creates, increments, and manages analytics metrics associated with channels, groups, and users.
  • Analytics Module (analytics): Defines structures for analytics tracking, storing metrics, and managing claimable rewards.

channel

Manages decentralized community spaces (“channels”), handling creation, memberships, moderation roles, analytics integration, and channel metadata (avatars, descriptions). Channels are created within specific apps but remain globally accessible, enabling seamless integration and reuse across the ecosystem.
  • Actions Module (actions): Supports creating, managing, moderating channels, posting content, and handling follows/unfollows with fee verification.
  • Channel Module (channel): Defines core channel structures, member lists, moderation tools, and analytics integration.
  • Fees Module (fees): Validates, collects, and manages fees associated with channel actions.
  • Registry Module (registry): Maintains registries mapping app addresses to channel addresses and ensures consistency.
  • Witness Module (witness): Provides witness objects for channel verification and secure operation.

post

Facilitates blockchain-native content creation and interactions, including posts, comments, likes, and associated engagement metrics. Posts are universally accessible across Sage, promoting content integration and cross-application remixing.
  • Actions Module (actions): Enables creating posts, comments, and likes with royalty and fee enforcement.
  • Fees Module (fees): Calculates, validates, and manages fees related to posting actions.
  • Post Module (post): Defines data structures for posts, including comments, likes, and metadata management.

reward

Implements Sage’s reward logic using the Proof of Social Contribution (PoSC) model. It defines global action weights, calculates explicit rewards, and transparently distributes rewards based on validated user actions, providing clarity and consistency for developers.
  • Actions Module (actions): Manages claiming, calculating, and distributing user rewards based on analytics metrics.
  • Registry Module (registry): Tracks reward weights and manages epochs of reward configurations.
  • Reward Module (reward): Stores, manages, and validates reward weights for user actions.
  • Witness Module (witness): Provides witness objects for secure reward claims.

shared

Offers common data structures and utility functions utilized by multiple protocol packages, including favorites, likes, memberships, moderation roles, and general operational logic. This simplifies development and ensures consistent user experiences across the protocol.
  • Blocklists Module (blocklists): Manages user blocklists, checks user restrictions, and stores block states.
  • Favorites Module (favorites): Tracks user favorites, manages favorite counts, and status checks.
  • Likes Module (likes): Stores, manages, and verifies user likes on posts or content.
  • Membership Module (membership): Tracks membership status, joins/leaves, and membership counts.
  • Moderation Module (moderation): Manages moderator and owner roles, permissions, and moderator state tracking.
  • Posts Module (posts): Stores and manages collections of post addresses associated with an entity.

trust

Oversees the lifecycle management of Sage’s native $TRUST token, explicitly handling token minting, burning, and supply regulation. It directly integrates with the reward package, ensuring token issuance aligns transparently with validated user contributions.
  • Access Module (access): Enforces type-based permissions for Trust-related actions.
  • Trust Module (trust): Handles minting and managing the supply of TRUST tokens based on verified user actions.

user

Manages decentralized user identities, covering both private and public user data, social connections, analytics, and user-level interactions. Developers leverage this package to create identity-aware applications, securely managing user-controlled data and onchain social interactions.
  • Actions Module (actions): Handles creation, management, and updates to user-owned and shared identities, invites, and profile interactions.
  • Fees Module (fees): Validates and manages fees related to user actions.
  • Invite Module (invite): Manages creation, validation, and tracking of user invitations.
  • Registry Module (registry): Maintains registries linking user keys to owned/shared user identities.
  • User Owned Module (user_owned): Defines structures and manages data explicitly owned by users.
  • User Shared Module (user_shared): Handles structures and data shared publicly or across entities.
  • Witness Module (witness): Provides witness objects for validating user actions.

utils

Provides foundational utility functions shared across multiple protocol packages, including tasks such as string handling, type checking, and input validation. Centralizing these utilities ensures secure, efficient, and consistent protocol operations.
  • String Module (string): Offers string manipulation, validation, and helper functions used across packages.