ComposeDB is a decentralized, composable graph database built on the Ceramic Network, designed to store and query user-controlled, structured data for Web3 applications. It leverages the InterPlanetary File System (IPFS) for content-addressed storage and uses GraphQL as its primary interface for both writing and querying data, enabling developers to build applications with rich, interconnected data models without relying on centralized servers. Unlike traditional databases, ComposeDB data is stored as streams on the Ceramic protocol, where each stream is a mutable log of commits controlled by a Decentralized Identifier (DID).
ComposeDB
What is ComposeDB?
ComposeDB is a decentralized, composable graph database built on the Ceramic Network, designed for user-controlled data in Web3 applications.
The core innovation of ComposeDB is its composable data model, defined by GraphQL schemas that are deployed as data models on the Ceramic network. These models are public, reusable, and interoperable, allowing different applications to read from and write to the same data types, fostering a composable data ecosystem. For example, a user profile model created by one dApp can be seamlessly extended or referenced by another, enabling data portability and user sovereignty. Data ownership is cryptographically enforced, as updates to a data stream require a signature from the controlling DID, typically managed by a user's wallet.
From a technical perspective, ComposeDB utilizes runtime GraphQL to provide a unified API. Developers define their data models using a GraphQL Schema Definition Language (SDL), which ComposeDB translates into executable indexed streams on Ceramic. This allows for complex queries with filters, sorting, and relationships. The database supports mutation operations (create, update, delete) that are signed by the user, and query operations that can be performed by anyone, as all data is publicly verifiable. The indexing layer ensures performant read access to the otherwise event-sourced stream data.
ComposeDB is particularly suited for applications that require user-centric data, such as social graphs, decentralized identity credentials, user-generated content, and dynamic application settings. It solves the common Web3 problem of where to store mutable, structured data—complementing blockchains (which excel at immutable, high-value state) and decentralized storage like Arweave or IPFS (which are optimized for static files). By providing a decentralized backend, it enables dApps to have user-owned data layers that are as portable and permissionless as the assets on a blockchain.
To interact with ComposeDB, developers use client libraries like the ComposeDB Client or Glaze SDK. The architecture involves a ComposeDB node, which can be run locally or accessed via a hosted service, that indexes the relevant Ceramic streams and serves the GraphQL API. Data is persisted via the Ceramic network and stored on IPFS, ensuring censorship resistance and availability. This design makes ComposeDB a foundational data infrastructure component for building the decentralized web, enabling a new class of interoperable and user-owned applications.
How ComposeDB Works
ComposeDB is a decentralized graph database built on Ceramic, enabling developers to create and query composable, user-owned data using GraphQL.
At its core, ComposeDB leverages decentralized data models defined using GraphQL schemas. These models, known as composite models, are deployed to the Ceramic network as streams, which are mutable data structures anchored to a blockchain. Each model defines the structure of the data, its relations to other models, and the access control rules, creating a verifiable data web where every piece of information is cryptographically signed and linked to its owner's Decentralized Identifier (DID).
Data interaction is performed entirely through a GraphQL API. Developers write queries and mutations against their composed data models, which the ComposeDB runtime resolves by fetching the relevant streams from the Ceramic network's distributed event log. This provides a familiar developer experience while abstracting the underlying complexity of peer-to-peer data storage and retrieval. The runtime also handles runtime model composition, allowing applications to dynamically merge data from multiple, independently created models into a single, queryable graph.
A key innovation is its composable data architecture. Unlike monolithic databases, applications can read from and write to shared public data models created by other developers, enabling true data interoperability. For example, a social profile model created by one team can be extended and referenced by a completely separate application, fostering a ecosystem of reusable data components. This is enforced through deterministic data resolution, ensuring all nodes compute the same state from the same set of signed updates.
Under the hood, ComposeDB utilizes InterPlanetary File System (IPFS) for content-addressed storage and libp2p for peer-to-peer networking. Data is indexed using Casper, a purpose-built indexing service for the Ceramic network, which enables efficient querying of the graph. This stack ensures data availability, integrity, and censorship-resistance without relying on centralized servers or databases, aligning with the principles of user-centric data ownership and portability.
Key Features of ComposeDB
ComposeDB is a decentralized graph database built on Ceramic, enabling developers to create, query, and manage composable data models on a verifiable data network.
Composable Data Models
ComposeDB uses GraphQL schemas to define interoperable data models, allowing developers to create reusable data types. These models are stored as CIPs (Composable Indexing Protocols) on the Ceramic network, enabling seamless data composability across applications. Key aspects include:
- Model Reusability: Import and extend existing public data models.
- GraphQL Interface: Query and mutate data using a familiar GraphQL API.
- Deterministic StreamIDs: Each data model and instance gets a unique, content-addressed identifier.
Decentralized Data Network
Data in ComposeDB is stored on the Ceramic network, a decentralized protocol for mutable, verifiable streams. This provides data sovereignty and resilience. Core mechanisms are:
- Streams: Mutable data structures anchored to a blockchain (like Ethereum).
- DID-based Signing: All writes are signed by a user's Decentralized Identifier (DID).
- P2P Replication: Data is hosted by a distributed network of nodes, not a central server.
Runtime GraphQL Server
ComposeDB provides a local GraphQL runtime that acts as a write-ahead cache and query engine. It manages the state of relevant streams and handles all read/write operations before syncing to the network. This enables:
- Offline-First Development: Applications can function with local data.
- Optimistic Updates: Immediate UI feedback before network confirmation.
- Complex Queries: Perform joins and filters across composed data models locally.
Verifiable & Owned Data
Every piece of data is cryptographically tied to its owner, creating a verifiable data web. This is achieved through:
- DID PKH (Public Key Hash): Links a user's blockchain account (e.g., 0x...) to their data streams.
- Signed Commits: All updates are signed, creating an immutable audit trail.
- Portability: Users can migrate their data between applications, as they retain control via their private keys.
Indexing & Query Flexibility
ComposeDB supports powerful indexing strategies to make composable data efficiently queryable. This includes:
- Composable Indexing Protocols (CIPs): Define how data is indexed and made discoverable.
- Custom Indices: Developers can create indices on any field within a data model.
- Cross-Model Joins: The GraphQL API allows querying related data across different, composed models in a single request.
Use Case: Social Graphs
A primary use case is building decentralized social applications where user data is portable. For example, a profile model can be created once and reused by multiple apps (social, gaming, professional networks). Key components:
- Profile CIP: A standardized schema for user profiles.
- Social Connections: A separate model defining follower/following relationships.
- Content Posts: Another model for user-generated content, all linked via the user's DID.
Core Technical Components
ComposeDB is a decentralized, graph database built on Ceramic's data network, enabling developers to create and query composable, user-owned data models for Web3 applications.
Composable Data Model
ComposeDB uses GraphQL schemas to define interlinked data models (like a social graph). These models are composable, meaning any developer can extend or reference existing public models, creating a shared, interoperable data layer. This enables features like portable profiles and social feeds that work across different applications.
Decentralized Data Network
Data is stored on the Ceramic Network, a decentralized protocol for mutable data streams. Each piece of data is a stream identified by a StreamID. Data is replicated across peer-to-peer nodes, ensuring availability and censorship resistance without relying on a central server or a single blockchain.
User-Controlled Data
Data ownership is tied to a user's DID (Decentralized Identifier). Users cryptographically sign updates to their data streams, giving them full control. Applications request capabilities to write to a user's data, enabling permissioned interactions. This model inverts the traditional platform-controlled database.
GraphQL Query Layer
ComposeDB provides a GraphQL API for reading and writing data. Developers write queries against the composed graph of data models. The runtime indexes the decentralized data to enable complex queries (e.g., "find all posts from users I follow"), which are not natively possible on blockchains.
Runtime & Indexing
The ComposeDB Runtime is a client-side component that manages local data, handles GraphQL operations, and syncs with the Ceramic network. It performs deterministic indexing of linked data, building a local graph database that powers fast queries and real-time updates for the application.
Relation to IPFS & Blockchains
ComposeDB complements blockchains and IPFS. It uses IPFS for content addressing (CIDs) within its data streams. While blockchains excel at immutable state and consensus, ComposeDB handles mutable, structured data. It's often used for off-chain data that needs to be queryable and user-owned.
Primary Use Cases & Applications
ComposeDB is a composable graph database built on Ceramic, enabling developers to create and query user-centric, interconnected data models. Its primary applications leverage its decentralized, permissionless, and interoperable nature.
Decentralized Social Applications
ComposeDB is foundational for building decentralized social networks (DeSo) and content platforms. It enables:
- User-owned social graphs where connections and posts are portable across apps.
- Interoperable profiles that can be reused, preventing platform lock-in.
- Censorship-resistant content stored on a decentralized network, not a corporate server.
Examples include social apps where a user's profile from one app can seamlessly power their identity in another.
Portable User Identity & Reputation
It serves as a backend for creating self-sovereign identity systems. Developers can define data models for:
- Verifiable credentials and attestations linked to a decentralized identifier (DID).
- On-chain and off-chain reputation that accumulates across different dApps and services.
- Composable user data, allowing a user's achievements in one game or protocol to be verified and utilized in another application without centralized intermediaries.
Dynamic NFT & Digital Asset Metadata
ComposeDB is used to manage evolving metadata for NFTs and other digital assets, moving beyond static JSON files. This enables:
- Upgradable NFTs where traits, artwork, or descriptions can be updated post-mint based on external events or user actions.
- Rich, relational data linking assets to creators, provenance history, and community interactions.
- Cross-platform compatibility, allowing game items or digital collectibles to carry their full history and attributes into different virtual environments.
Composable Data for DAOs & Communities
DAOs and decentralized communities use ComposeDB to structure and query their operational data. Key applications include:
- Transparent governance records with linked proposals, votes, and delegate histories.
- Contributor graphs that map skills, contributions, and project affiliations across the ecosystem.
- Community-managed registries for resources, grants, or members, where the data model can be extended by the community itself without requiring a central dev team to deploy new smart contracts.
Decentralized Content Management
It acts as a headless CMS for Web3, allowing teams to manage structured content in a decentralized manner. This is used for:
- Developer documentation that can be collaboratively edited and versioned.
- Decentralized wikis and knowledge bases where ownership and edit history are transparent and verifiable.
- Application configuration data that is user-moderated and resistant to unilateral takedowns, ensuring application resilience.
ComposeDB vs. Traditional Database Models
A technical comparison of core architectural and operational characteristics between the decentralized ComposeDB model and centralized database paradigms.
| Feature / Characteristic | ComposeDB (Decentralized) | Relational Database (e.g., PostgreSQL) | NoSQL Database (e.g., MongoDB) |
|---|---|---|---|
Data Ownership & Control | Users own their data via cryptographic keys | Controlled by database administrator | Controlled by database administrator |
Data Storage | Decentralized network (e.g., Ceramic) | Centralized server cluster | Centralized server cluster or cloud service |
Data Mutability | Immutable, append-only streams; versioned updates | Fully mutable; in-place updates | Fully mutable; document replacement |
Write Access Control | Programmable via decentralized identities (DIDs) | Role-based access control (RBAC) managed centrally | Role-based access control (RBAC) managed centrally |
Data Consistency Model | Eventual consistency across nodes | Strong consistency (ACID transactions) | Configurable (eventual or strong consistency) |
Query Language | GraphQL with ComposeDB-specific directives | SQL (Structured Query Language) | Vendor-specific APIs and query languages |
Primary Use Case | User-centric, composable, and portable data | Structured business data with complex relationships | Unstructured or semi-structured data at scale |
Deployment & Operation | No server management; peer-to-peer protocol | Requires dedicated database server administration | Requires dedicated database server or managed service |
Ecosystem & Protocol Integration
ComposeDB is a decentralized, composable graph database built on Ceramic Network, enabling developers to create and query user-centric, interconnected data models for Web3 applications.
Composable Data Model
ComposeDB uses GraphQL schemas to define data models, which are then compiled into CIPs (Composable Indexing Protocols). These models are composable, meaning they can reference and extend other models, creating a flexible, interconnected data graph. This enables:
- Data portability across applications.
- Schema evolution without breaking changes.
- Cross-application data queries via a single interface.
Decentralized Data Streams
Each piece of data in ComposeDB is a Ceramic stream, a mutable data structure anchored to a Decentralized Identifier (DID). Streams are:
- Owner-controlled: Updated via the user's DID.
- Immutable-by-default: Changes are recorded as commits in an append-only log.
- Replicated across the peer-to-peer Ceramic network for availability. This architecture ensures data sovereignty and censorship resistance.
GraphQL Query Layer
ComposeDB provides a GraphQL API for reading and writing data, abstracting the underlying decentralized infrastructure. Key features include:
- Single endpoint for querying the entire composed data graph.
- Real-time updates via GraphQL subscriptions.
- Indexing of all data for performant, complex queries.
- Permissioned writes enforced at the protocol level, tied to DIDs.
Use Case: Social Graphs
A primary application is building portable social graphs. For example, a user's profile, connections, and content (posts, likes) can be defined as composable models. This allows:
- A social app to read a user's existing graph from another app.
- Users to maintain a single identity and social data layer.
- New applications to build on top of an existing social ecosystem without vendor lock-in.
Relation to Ceramic Network
ComposeDB is an application runtime built on the Ceramic protocol. Ceramic provides the foundational layer:
- Stream processing for mutable data.
- Consensus via CACAO (Capability Authorization) for access control.
- Anchor service to batch stream updates to a blockchain (like Ethereum). ComposeDB adds the graph database logic, schemas, and query engine on top of this base layer.
Benefits for Developers
ComposeDB is a decentralized, composable graph database built on Ceramic, enabling developers to create and query user-centric data models on the decentralized web.
Composable Data Models
Define reusable, interoperable data schemas called models using GraphQL. These models are portable across applications, allowing developers to build on existing data structures rather than creating siloed databases. This enables:
- Data portability for users across dApps.
- Shared data infrastructure across the ecosystem.
- Simplified integration with other applications using the same models.
Decentralized Data Ownership
Data is stored on the Ceramic network as streams, which are mutable data structures controlled by a Decentralized Identifier (DID). This gives users verifiable ownership and control over their data, enabling:
- User-controlled data that persists across applications.
- Permissioned data sharing via cryptographic capabilities.
- Censorship-resistant data storage.
GraphQL Query Layer
Query data across multiple, interconnected models using a single GraphQL API. This provides a powerful and familiar interface for developers to:
- Traverse relationships between different data types seamlessly.
- Perform complex queries with filters, sorting, and pagination.
- Leverage existing GraphQL tooling and ecosystem knowledge.
Mutable & Versioned Data
Unlike static on-chain storage, ComposeDB supports mutable data streams with a full version history. Each update creates a new Commit ID, enabling:
- Data updates and corrections without losing history.
- Tamper-evident logs for auditability.
- Conflict resolution mechanisms for collaborative data.
Programmable Runtime
The ComposeDB runtime executes deterministic logic on data updates using JavaScript. Developers can write model controllers to enforce validation rules, access control, and data transformation, providing:
- Custom business logic at the data layer.
- Schema validation and integrity checks.
- Automated indexing and derived data creation.
Scalable Indexing & Performance
The network uses composite streams to create scalable, application-specific indexes. This architecture allows for:
- Efficient querying of large datasets by pre-computing relationships.
- Horizontal scalability as the data graph grows.
- Deterministic indexing that is consistent across all network nodes.
Technical Deep Dive
ComposeDB is a decentralized, composable graph database built on Ceramic. This section answers key technical questions about its architecture, data models, and developer workflow.
ComposeDB is a decentralized, composable graph database built on the Ceramic network that enables developers to create and query user-controlled, interoperable data using GraphQL. It works by storing data as streams—immutable logs of commits anchored to a blockchain—which are modeled as nodes in a graph. Developers define composite data models using a GraphQL Schema Definition Language (SDL), which ComposeDB translates into executable runtime definitions. The database supports mutable and versioned data, with updates cryptographically signed by the data owner. Queries are executed via a GraphQL API against a local indexed cache of the streams relevant to an application, providing a familiar developer experience while leveraging decentralized infrastructure.
Common Misconceptions
ComposeDB is a decentralized graph database built on Ceramic, but its architecture and capabilities are often misunderstood. This section clarifies frequent points of confusion for developers and architects.
No, ComposeDB is a composable graph database built on the Ceramic Network. While it stores data, its core innovation is enabling developers to define and compose reusable data models, called Composites, into a single, queryable graph. This is fundamentally different from a simple key-value store or document database. It uses GraphQL as its primary query interface, allowing for complex, nested queries across interconnected data from multiple sources, all while maintaining decentralized data ownership and verifiability through Ceramic Streams.
Frequently Asked Questions
ComposeDB is a decentralized, composable graph database built on Ceramic. These questions address its core concepts, use cases, and technical architecture.
ComposeDB is a decentralized graph database built on the Ceramic Network that enables developers to create, query, and compose user-centric data models in a permissionless way. It works by storing data as streams of IPLD-based commits on a decentralized network, using GraphQL as its primary query interface. Developers define data models (schemas) that are anchored to the Ceramic network. Applications can then write to and read from these models, with data ownership and access controlled by users' Decentralized Identifiers (DIDs). The graph structure allows data from different models to be natively linked and composed, enabling rich, interconnected datasets without centralized servers.
Get In Touch
today.
Our experts will offer a free quote and a 30min call to discuss your project.