Shelter Protocol

Entorno de Ejecución P2P Integrado

An open protocol for creating end-to-end encrypted, federated, user-friendly web applications. Defines a lightweight federated virtual machine based on signed, ordered "contract chains" (event logs) with E2E encryption primitives. The reference implementation is Chelonia (a JS framework). Group Income (voluntary basic income app) is the primary production use case. Governance: okTurtles Foundation (501(c)(3) non-profit).

Comunidad

Detalles

Licencia AGPL-3.0 (Chelonia / chel CLI); protocol spec open (MIT)
Estado de Desarrollo 🟢 Activo
Detalle del Estado de Desarrollo Active — Chelonia CLI updated Feb 2026; Group Income beta testing ongoing
Propietario okTurtles Foundation (501c3 non-profit)
Órgano de Gobierno okTurtles Foundation (501(c)(3) non-profit)
País USA (Washington D.C.)
Año de Inicio 2019
Stack JavaScript / TypeScript (Chelonia); VueJS 2.x (Group Income UI); Hapi.js (server); WebSockets; SBP (Selector-based Programming, custom micro-framework); WebAssembly sandbox for smart contract execution
Financiamiento Donations (BTC, XMR, ZEC, USD); GitHub Sponsors; grant requests from aligned orgs; DWeb event participation
Última Investigación 9 mar 2026

Capacidades

Cifrado de extremo a extremo Grupos combinables Autoalojable Gobernanza basada en consentimiento

Entorno de Ejecución P2P Integrado Atributos

Orígenes Evolved from Group Income's technical requirements — okTurtles Foundation needed an E2E encrypted, federated application layer to build voluntary basic income app without server-side data visibility. Published as standalone protocol spec ~2019-2022.
Base de Datos Custom append-only message log (contract chains) persisted server-side; each contract chain is a self-referencing CID-addressed event log stored in server key-value store; state reconstructed by replaying events
Lenguaje de Consulta None (event-sourced state; no query language)
Formatos de Datos JSON (SPMessage format); BLAKE2b-256 content IDs (CID, Base58 encoded); shelter: URI scheme for addressing resources; JWS-compatible signatures
Edición Colaborativa en Vivo No native CRDT collaborative editing; shared mutable state via contract chain event sourcing and reactive Vue state updates
Edición de Texto Enriquecido No (text-based messaging; no rich text primitives in protocol)
Soporte Móvil No native mobile SDK; web app accessible via mobile browser; Tauri mentioned as recommended distribution approach for security
Soporte Web Yes — browser-native; primary deployment target is web application
Aplicaciones Nativas Tauri-based desktop packaging recommended in security docs; no official native mobile app
Términos okTurtles Foundation non-profit; no commercial terms; Group Income app open source
Fondos FY2022: $11,122 + 4.49 BTC + 132.9 XMR received; $57,748 + 1.95 BTC + 440 XMR paid out
Basado En ActivityPub (federation concepts); IPFS/CID (content addressing); event sourcing / CQRS patterns; zero-knowledge sub-protocols for password salt retrieval
Arquitectura P2P Federated server model (servers relay contract chain messages to subscribers); clients store/reconstruct local state; servers cannot read encrypted payloads
Red de Superposición None — uses existing HTTP/HTTPS + WebSockets; server federation via standard web protocols
Direccionamiento por Contenido Yes — BLAKE2b-256 CIDs (Base58 encoded) address all resources; shelter: URI scheme; first SPMessage in chain is CID of the contract
Local-First Partial — state reconstructed locally from replayed events; offline: events queued but requires server sync for propagation; state snapshots reduce replay cost
Cifrado de Extremo a Extremo (E2EE) Yes — OP_ACTION_ENCRYPTED for encrypted actions; OP_KEY_ADD/OP_KEY_SHARE for key management; ZK sub-protocol for password salt retrieval without revealing password to server; unique keys per device optional; EdDSA/ECC primitives; cipher-agnostic by design for post-quantum upgrade path
Biblioteca de CRDTs No — uses ordered event logs (deterministic replay); no CRDT library
Tolerancia a Fallos Bizantinos No formal BFT — federated trust model; server operators are trusted; contracts upgradeable by authorized keys
Firma JWS-compatible signing (JSON Web Signatures); OP_KEY_ADD / OP_KEY_SHARE primitives; signingKeyId referenced per message; ECC (cipher-agnostic design)
Permisos Capability-based key authorization: each SPMessage references a signingKeyId and encryptionKeyId defined at contract creation; OP_KEY_ADD grants new keys (multi-device); OP_KEY_SHARE shares secrets between keys; role/function authorization model customizable per contract; server cannot override client-side key permissions
Compatibilidad con la Web Semántica None — no RDF, JSON-LD, or linked data primitives
Contrato Inteligente Yes — "contracts" are upgradeable programs (any language) that process OP_ACTION events against shared state; WebAssembly sandbox recommended; Contract Manifest defines versioned contract code; state transition defined per event type; analogous to OOP class/instance model
Posición en la Pila del Protocolo Application layer — sits above TCP/IP and HTTP/WebSockets; provides encrypted federated application VM layer; comparable to ActivityPub at a higher abstraction level (application runtime vs. social protocol)
Incorporación de Activos/Valor None — no native token or asset primitives in protocol
Herramientas de Desarrollo Chelonia (JS/TS framework, AGPL-3.0) — reference implementation of Shelter Protocol for browser and Node.js; @chelonia/cli (chel) — CLI utility (TypeScript, AGPL-3.0); @chelonia/crypto, @chelonia/lib, @chelonia/serdes — npm packages; @sbp/sbp — Selector-based Programming micro-framework; Group Income codebase as reference application
Opciones de Despliegue Self-hosted server (Hapi.js); web app served separately from server (recommended for security — prevents malicious JS injection); Tauri for desktop app distribution; server stores encrypted contract chains; clients reconstruct state locally
Autenticación e Identidad Identity Contract (customizable per app): stores username, email, profile picture as E2E encrypted state; unique keypairs per device (EdDSA); ZK-based password/salt authentication without exposing password to server; OP_KEY_ADD for multi-device keyset management; no centralized identity registry
Modelo de Almacenamiento Server-side append-only contract chain storage (encrypted blobs); client-side reconstructed application state; optional state snapshots every N messages for sync efficiency; CID-addressed immutable messages
Interoperabilidad Low — Shelter Protocol is self-contained; no ActivityPub federation (despite conceptual borrowing); no DID/VC integration; shelter: URI scheme is custom; no standard identity or data portability interfaces
Grafo Social Application-defined via contracts; no native social graph primitives; Group Income implements group membership via identity + group contracts
Madurez del Protocolo / Estandarización Custom / Community spec — not submitted to any SDO; spec published at shelterprotocol.net; shelter: URI scheme documented informally; Chelonia is alpha/beta; Group Income in beta testing
Política de Actualización Contracts are explicitly upgradeable — each event references a specific contract version; new versions can be deployed; state replay uses version-tagged events; key rotation supported via OP_KEY_ADD/REVOKE