Architecture

Figure 4: The X-Project network architecture
X-Project provides a protocol of servers, libraries and SDKs to enable a network of users to create decentralized identities that can access deconcentrated services on the X-Project Network. These offerings include database and block storage, messaging, notifications, and blockchain interoperability.
The X-Project Protocol leverages the rapidly evolving Web3 technology stack, is natively multi-chain, and adds missing decentralized services and technical capabilities where necessary.
X-Project provides software SDKs that developers can integrate into their applications to leverage the technical capabilities of the X-Project Protocol.
X-Project provides open-source server nodes that can be operated by anyone on their own infrastructure, to earn tokens on the X-Project Network.
X-Project facilitates decentralized network services as centralized APIs will transition across to smart contracts on the X-Project Network once their technical requirements stabilize.
X-Project provides a reference implementation of a ‘Data Wallet’ (X-Project Vault), a mobile application for end users to create decentralized identities, securely store their private keys, and interact with the X-Project Network with its supported blockchains.
X-Project has a roadmap of network extensions that expand its capabilities towards a global network of trusted, verifiable, self-sovereign data.
Modular by Design
An application development stack for Web3 requires the same fundamental capabilities as Web2. As highlighted in the introduction, there are some critical pieces of the Web3 stack currently missing (personal data storage, messaging, identity etc.).
X-Project has addressed these gaps with reference implementations that work cohesively within the X-Project framework in order to build a fully featured Web3 technology stack for developers. However, this journey is young. We expect other Web3 technologies and projects to continue to innovate and improve with time.
Where possible, we expect (and will actively support) integration and interoperability of existing Web3 technologies into the X-Project Framework. The underlying X-Project architecture supports unlimited connectors within different decentralization domains:
  1. 1.
    Identity
  2. 2.
    Messaging
  3. 3.
    Personal Data Storage
  4. 4.
    Authentication
  5. 5.
    Public Blockchain
This enables developers to start building with confidence on the X-Project Network today, leverage its many benefits to build groundbreaking Web3 applications, while having confidence they will have access to new infrastructure capabilities and innovations across the whole Web3 ecosystem.
Decentralized Identity
Decentralized Identities are a W3C standard 2 and core to user identities using the Verida Network. Every account on the Verida network is a decentralized identity (DID). The user’s public keys are leveraged to find and communicate with them. Users control their private keys, enabling them to:
● Encrypt and access their private data
● Control where their data is stored
● Sign their data and messages to third parties
● Pay for third party data storage
● Sign into decentralized applications
● Control the other services used by their identity (messaging, notifications).
Application Contexts
A X-Project account can connect to multiple applications. These connections are called application contexts. An application context has a unique name (ie: X-Project: Markdown Editor) and provides a specific set of capabilities:
● Database storage
● Messaging
● Block storage
● Notifications
Application contexts are siloed from each other. A X-Project account connected to one application context has no access to data in a different application. This ensures a web application can only access data for its own platform and not be provided with an account’s private key.
Database storage and encryption
The X-Project protocol provides secure, decentralized database storage and encryption for user data. No user data or Personally Identifiable Information is stored on-chain.
X-Project has developed a PouchDB/CouchDB database implementation with open source middleware (X-Project Storage Node) 3 . This solution is designed for storing private user data, incorporates access controls with flexible encryption, and permissioned data synchronization. It’s region aware and designed to meet GDPR requirements.
The current landscape of decentralized database storage technologies is rapidly evolving. As such, it’s expected the available database storage options will soon reach maturity where they meet the security expectations, access controls and features required to be supported by the X-Project network.
Some of these solutions include a Textile's encrypted database solution built on top of IPFS 4 and Confidential Storage being built by DIF 5 . X-Project aims to provide tools to help users easily move their data between different compatible storage solutions.
Users are able to select their own storage provider or applications may offer a default storage option for their users. This flexibility will allow users to eventually leverage decentralized storage solutions to host their own or select private geographical region specific hosting infrastructure - to ensure storage is location aware to meet regulatory requirements across different countries and industries, such as GDPR requirements.
User data is stored in isolated application contexts, where the data from one application can not be accessed by another without explicit user consent. This ensures users can selectively disclose their personal data to different applications on an as-needs basis, providing enhanced privacy and data security.
Multi-chain by design
The X-Project network is designed to support multiple blockchains. We expect a multi-chain future where different blockchains will exist for various purposes, and will meet specific jurisdictional requirements. With a multi-chain future comes the need for interoperable data and services.
The X-Project token itself will exist on a primary chain and be bridged to other network-supported chains.
We’re actively researching the most appropriate blockchain solution for launching the first phase of the network. This blockchain must meet our specific needs around speed, scalability, and transaction costs.
See X-Project Network for details on how blockchain will be utilized.
Private Data and Cross-Chain Messaging
The X-Project Client SDK enables developers to easily build applications abstracting the complexities of encryption, permissioning, schema enforcement, and user management.
The user’s data is encrypted when it’s not in use. It’s encrypted with their private key before being persisted to a database or file storage, depending on the use case. This provides fast, secure, low cost, off-chain private storage.
Users are able to communicate with other users and applications via real time, encrypted, peer-to-peer messaging. For example:
● One to one messaging (between DIDs in an Application Context)
● Broadcast messages (from Application to registered user DIDs)
● Between datastores, no on-chain footprint, signing a off-chain consent message using your private key of your blockchain wallet.
Data Schemas and Interoperability
The value in the network increases with the data density of its users. Shared data schemas are designed to increase data interoperability across decentralized applications.
This enables developers to leverage the rich data imported by other applications without needing to collaborate directly. By adhering to these schemas, developers need to spend less time on building data pipelines.
Data schemas are first-level primitives to enable this interoperability across all applications built on the X-Project network.
● Sharing: User data created in one application can be consumed and understood in another application.
● Validation: User data can be validated against a schema for consistency.
● Blockchain interoperability: User data is a signed JSON that can be consumed by smart contracts and used to trigger decentralized computation.
● Queryable: User data has a known structure that enables indexing and querying by decentralized applications.
● Upgradeability: User data can be upgraded from one schema format to another, providing a future proof architecture.
● Metadata: Additional metadata can be included such as icons and colors for displaying the data in user interfaces or an enforced value on the data if it’s sold in the future.
X-Project will provide some common base schemas using existing standards where possible (ie: address, phone number, permissions etc.), but provides a decentralized architecture where any industry body or organization can build new schemas.
X-Project will also continue active development of strategies to version schemas and facilitate secure data migration between schema versions