SymorvaDocs
Modules

Modules

The six Symorva modules, how they depend on each other, and the composition rules the SDK enforces.

Every community is composed from six modules. Chat and meetings are the foundation: every community has them, because they keep a community moving day to day. The other four are optional and are enabled in the manifest.

ModuleManifest keyKindStatusOwned componentShared servicesMetered units
Chat & communitieschatfoundationAvailablemessaging-service——
Meetings & live roomsmeetingsfoundationAvailablemeeting-servicemediaparticipant-minutes, broadcast-viewer-minutes
AI & creator studioaiStudiooptionalPreviewstudio-serviceaiai-tokens, images, video-seconds
Wallets & assetswalletoptionalPreviewwallet-service——
DApps & ecosystemdappsoptionalAvailabledirectory-service——
Creator economycreatorEconomyoptionalPlannedrewards-servicemeteringsettled-payouts

Status applies to the module as a whole; each module page breaks it down by capability. Chat, for example, is available, while its end-to-end encryption profile is in preview.

The same catalog is printed by the CLI:

symorva modules
Chat & communities chat · foundation
  Encrypted conversations, groups and tribes, with members, roles and approvals.
Meetings & live rooms meetings · foundation
  Voice, video, slides and screen sharing for calls, AMAs and community events.
  requires chat
AI & creator studio aiStudio · optional
  AI chat, image generation, short dramas and product ads inside the community.
  requires chat
Wallets & assets wallet · optional
  Wallets, payments and member benefits. Wallet modules integrate TEE technology.
  requires chat
DApps & ecosystem dapps · optional
  A curated directory that makes partner applications and DeFi services reachable from the community.
  requires chat
Creator economy creatorEconomy · optional
  Tips for original work and configurable revenue sharing for remixes.
  requires wallet

Dependencies

chat                    foundation
├── meetings            foundation · requires chat
├── aiStudio            requires chat
├── dapps               requires chat · warns without wallet
└── wallet              requires chat
    └── creatorEconomy  requires wallet

chat.enabled and meetings.enabled only accept true. Optional modules default to enabled: false.

Composition rules

Validation checks the schema first, then these rules. Errors make the manifest invalid; warnings and info notes are reported but do not block planning.

CodeLevelPathRule
module.requireserrormodules.<id>An enabled module's dependencies must be enabled
service.media-requirederrorsharedServices.mediaMeetings need the real-time media service, so media cannot be none
service.ai-requirederrorsharedServices.aiThe AI studio cannot be enabled while ai is none
module.emptywarningmodules.aiStudioThe AI studio is enabled with every tool switched off
module.emptywarningmodules.creatorEconomyThe creator economy is enabled with tips and remix revenue sharing both off
privacy.e2ee-offwarningmodules.chat.e2eeEnd-to-end encryption is off; message content is readable by the community server
privacy.ai-grantinfomodules.aiStudio.chatContentAccessMember grants are on while chat is encrypted; access happens only after a grant on the member's device
meetings.large-roominfomodules.meetings.broadcast.maxAudienceA broadcast audience above 500 uses large-room mode
dapps.no-walletwarningmodules.dappsDApps without a wallet cannot offer signing or payments
wallet.no-networkswarningmodules.wallet.networksThe wallet is enabled with no networks listed
platforms.duplicatewarningplatformsA platform is listed more than once

What every module page covers

Each module page follows the same structure, so modules can be compared directly:

  • Capabilities — what members get, with a status for each capability.
  • Configuration — the exact manifest block, mirroring the schema: types, defaults and ranges.
  • Events — the webhook events the module emits, in the preview Server API.
  • Privacy scope — what the module protects and what it does not.
  • Shared services and metering — which shared services it uses and the units it is metered in.
  • Limits — the bounds the schema enforces.

Adding a module

Enable it in the manifest, validate, and review the plan before deploying:

symorva.config.json (excerpt)
{
  "modules": {
    "dapps": { "enabled": true, "directory": true }
  }
}
symorva validate && symorva plan

The plan shows the new owned component, any new shared service, the new navigation tab and any new diagnostics — for example dapps.no-wallet if the wallet is not enabled.

On this page