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.
| Module | Manifest key | Kind | Status | Owned component | Shared services | Metered units |
|---|---|---|---|---|---|---|
| Chat & communities | chat | foundation | Available | messaging-service | — | — |
| Meetings & live rooms | meetings | foundation | Available | meeting-service | media | participant-minutes, broadcast-viewer-minutes |
| AI & creator studio | aiStudio | optional | Preview | studio-service | ai | ai-tokens, images, video-seconds |
| Wallets & assets | wallet | optional | Preview | wallet-service | — | — |
| DApps & ecosystem | dapps | optional | Available | directory-service | — | — |
| Creator economy | creatorEconomy | optional | Planned | rewards-service | metering | settled-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 modulesChat & 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 walletDependencies
chat foundation
├── meetings foundation · requires chat
├── aiStudio requires chat
├── dapps requires chat · warns without wallet
└── wallet requires chat
└── creatorEconomy requires walletchat.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.
| Code | Level | Path | Rule |
|---|---|---|---|
module.requires | error | modules.<id> | An enabled module's dependencies must be enabled |
service.media-required | error | sharedServices.media | Meetings need the real-time media service, so media cannot be none |
service.ai-required | error | sharedServices.ai | The AI studio cannot be enabled while ai is none |
module.empty | warning | modules.aiStudio | The AI studio is enabled with every tool switched off |
module.empty | warning | modules.creatorEconomy | The creator economy is enabled with tips and remix revenue sharing both off |
privacy.e2ee-off | warning | modules.chat.e2ee | End-to-end encryption is off; message content is readable by the community server |
privacy.ai-grant | info | modules.aiStudio.chatContentAccess | Member grants are on while chat is encrypted; access happens only after a grant on the member's device |
meetings.large-room | info | modules.meetings.broadcast.maxAudience | A broadcast audience above 500 uses large-room mode |
dapps.no-wallet | warning | modules.dapps | DApps without a wallet cannot offer signing or payments |
wallet.no-networks | warning | modules.wallet.networks | The wallet is enabled with no networks listed |
platforms.duplicate | warning | platforms | A 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:
{
"modules": {
"dapps": { "enabled": true, "directory": true }
}
}symorva validate && symorva planThe 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.