Apps on ENC Protocol
ENC Protocol ships 10 first-party apps, each as a composition of enclaves + dataview + UI schema. Each app has:
- A per-app SDK (
@enc-protocol/<app>-cli) — typed class with submit/query methods. - A Claude Code skill (
@enc-protocol/skill-<app>) — installable agent capability. - A CLI surface (
enc <app> ...) via the@enc-protocol/clibinary.
| App | Enclaves | Kind | Per-app SDK | Skill |
|---|---|---|---|---|
| hello | Hello | single-enclave | @enc-protocol/hello-cli | @enc-protocol/skill-hello |
| dm | DM, Personal, Registry | single-enclave + cross-enclave reads | @enc-protocol/dm-cli | @enc-protocol/skill-dm |
| group | Group, Personal | single-enclave + cross-enclave reads | @enc-protocol/group-cli | @enc-protocol/skill-group |
| personal | Personal, Group | single-enclave + cross-enclave reads | @enc-protocol/personal-cli | @enc-protocol/skill-personal |
| registry | Registry | single-enclave, read-only | @enc-protocol/registry-cli | @enc-protocol/skill-registry |
| timeline | Timeline, Personal | single-enclave + cross-enclave reads | @enc-protocol/timeline-cli | @enc-protocol/skill-timeline |
| super | DM, Group, Personal | multi-enclave composition | @enc-protocol/super-cli | @enc-protocol/skill-super |
| wallet | DM, Personal, Registry | multi-enclave + external chain | @enc-protocol/wallet-cli | @enc-protocol/skill-wallet |
| appstore | all 6 enclaves | host app (no own commands) | @enc-protocol/appstore-cli | @enc-protocol/skill-appstore |
| node | all 6 enclaves | host app (no own commands) | @enc-protocol/node-cli | @enc-protocol/skill-node |
Two layers
Enclaves (enclaves/<Name>.json)
A protocol-level state machine — states, traits, customs, readers, lifecycle. Atomic unit; one ENC enclave on a node. Six exist today: DM, Group, Hello, Personal, Registry, Timeline.
Apps (apps/<id>/)
A composition of enclaves + dataview + UI schema. Authored as three files:
app.json— id, name, enclaves[], data_types (form shapes)flow.json— tableMap (data_type → enclave event), derived views, sources, encrypt listschema.json— actions (write/delete targeting a data_type), reads (withcross_enclave: truefor dataview reads)
Two consumption surfaces
Per-app SDKs — typed JavaScript classes for programmatic use. Each @enc-protocol/<app>-cli package exports a class like HelloSdk, DmSdk, SuperSdk extending AppSdk. Use when building a frontend, a CLI tool, or any consumer code.
Claude Code skills — installable agent capabilities. enc skill add <app> puts a slash command at ./.claude/commands/<app>.md. Use when you want Claude Code (or any agent) to operate on protocol data.
See also
@enc-protocol/cli— the globalencbinary@enc-protocol/cli-sdk-base— the baseAppSdk/AppClient/DataViewclassesimpl-cli/docs/plan.md— full v2 plan + scorecard