What is Verida?
Verida’s mission is to bring control over data back to users with the first truly self-sovereign private database storage network.
Verida is building the home for all of your personal data; think financial documents, health care records, or even your home address. Using the Verida Network, you can store all your private data in a secure, decentralised way to prevent anyone using that data without your knowledge.
What is the Verida Network?
The Verida Network comprises the underlying protocol, technology and documentation developed by Verida. Developers can leverage the Verida SDKs to use and contribute to the code to improve the network. Service providers can deliver infrastructure to the network by running nodes that users can select to use.
The Verida Network aims to:
- Decentralize the sharing and discoverability of data
- Empower end users with control of personal data
- Deliver a more equitable distribution of value to participants on the network
- Create and share verified data in a trusted, private, secure, and decentralized manner.
Read our Whitepaper to learn how the Verida Network reflects our mission for achieving self-sovereignty of personal data and how the infrastructure works.
How can I store my personal data?
Your personal data can be managed through the Verida Wallet. It is the gateway to your private personal storage on the Verida Network.
You can view your credentials, messages, and bring your web2 data into your private data storage now. Download the Wallet to get started now.
Builders can also create applications which can create, manage or use the private data stored on the network. Check out our developers documentation to get started.
Has the protocol been audited?
A comprehensive security audit on the protocol and the Verida Wallet (previously called Vault) mobile app was completed by Chainsulting. The audit included automated vulnerability testing, manual security testing, and a review of the Verida architecture. No critical issues were found, and the team have addressed or acknowledged all other issues identified. A full report of the findings can be found here.
A second audit on the Verida Protocol was completed by Hashlock, resulting in Verida achieving the highest possible security rating. Read the report
Why would I use Verida?
The Verida Wallet is the first mobile app to manage your personal data, cryptocurrency, and identity all in one place. We believe that data is just as important to store and manage as Bitcoin. Our app allows you to easily see who your data is sent to, how its being used, and bring choice back to you.
What’s wrong with what I am doing now?
In our current world, your data is tracked, used, and monetised without your knowledge by centralized platforms. We have collectively given up control of our data to tech giants without realising the value of our digital lives. Verida wants to change all of this by bringing the data closer to you with clear management done on your mobile device.
Verida Network Functionality
What is Verida DbStore?
The Verida protocol provides secure, decentralized database storage for user data. Verida DbStore is the open source Storage Node server that provides encrypted database storage for one or more Verida Identities. No user data or Personally Identifiable Information (PII) is stored on the blockchain.
This solution is designed for storing structured private user data. It incorporates access controls with flexible encryption and permissioned data synchronization. It’s region aware and designed to meet data protection regulations such as GDPR or CCPA.
Read the deep dive into DbStore here:
Revolutionizing Web3 Storage: A Deep Dive into IPFS and Verida DbStore
All applications need data storage. Web3 demands an expansion of storage infrastructure to accommodate its unique requirements.
Verida Identities (accounts) control where their personal encrypted data is stored. Applications can provide a default storage hosting option or users can specify their own.
The product capabilities are beneficial for builders and users. For example:
- End users can access secure, region aware private storage for Web3
- Application developers can provide their own default storage nodes for their users
- Users can have increased privacy and control by hosting storage nodes for their own personal data
- Enterprise companies can provide highly secure, private storage for all their employees
Checkout the Verida DbStore from Chris here:
How do Verida Storage Nodes work?
Verida has developed open source middleware (Verida Storage Node) that sits in front of mature CouchDB database infrastructure. 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 data protection regulations requirements such as GDPR or CCPA.
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.
How does the Verida Network operate?
The Verida network is a self-sovereign “user-pays” model, whereby users pay for their own storage needs. In this way, “access to user data” is not the product, rather the product is the “security and protection” of user data.
Node operators must bond (i.e. through single-sided staking) VDA tokens to make their nodes discoverable. It is intended that the storage market self regulates itself through competitive forces as providers set their own storage prices.
Verida enables a “self-sovereign” data network, so it’s essential that all stakeholders have control and choice. Users can choose which storage nodes they want to use for storing their data, while storage node operators have the choice to not provide their service to a particular user.
You can read more about Verida Storage Node Tokenomics here:
How does data sharing work on the network?
Verida providers a user-centric consent-based framework for identity, access management, and data sharing. The Verida protocol offers a great deal of flexibility and control around data access and encryption to enable consensual information sharing.
- Sending private individual data records to a user
- Requesting individual private data records from a user
- Sharing access to large quantities of structured private data (Data synchronization).
The configuration for this data synchronization is pliable. An application can request access to:
- A read and/or write stream of all data of a particular type
- A once-off data synchronization
- A permanent sync (until the user disables)
- A filtered stream of data based on a query.
How does Single Sign-On work with Verida?
Verida provides a single sign-on framework based using QR code and deep link to unlock off-chain data (from the Verida Network) and crypto (from multiple blockchains).
It provides a smooth experience to onboard new users to decentralized applications on a range of supported blockchains.
Users who are signed in are provided with a private encrypted collection of databases for the application, secure messaging, and the ability to perform blockchain transactions.
It also uses Deep Links for when you are on the same device as the Wallet.
The Verida Wallet supports the WalletConnect v2 standards to enable developers to use familiar APIs for blockchain interactions.
Watch this: Developer Tutorial: Verida Single Sign On
How does messaging work on the network?
Verida Message is decentralized messaging infrastructure.
The Verida Protocol facilitates decentralized messaging between Verida accounts. Users are able to communicate with other individuals and applications via real-time, encrypted, peer-to-peer messaging.
- One-to-one private messaging between DIDs and applications
- Broadcast messages (from Applications to registered user DIDs)
- Between applications, with no on-chain transaction, whereby users sign an off-chain consent message using their wallet.
Messages sent via the Verida Network in the Verida Vault
What is the Vault, how it differs from the Verida Wallet?
The term Vault can be found in different places in our documentation and our mobile application used to be called Vault, so a clarification is needed.
The Vault is a private storage space on the Verida Network for each Verida Identity (account). It stores data about the identity such as the profile (avatar, name, …), the inbox, the received Verifiable Credentials, the history of login, etc, as well as other settings and technical information. These are data not tied to a particular application context.
The Verida Wallet is the mobile application allowing users to manage their Verida Identities and data (stored in their Vault on the Verida network). It holds the private keys of the Identities and have access to the Vault’s data in order to provide user-friendly features such as updating the Identity profile, or supporting Verifiable Credentials. In addition to being an Identity manager and data wallet, the Verida Wallet provides a multi-chain crypto wallet.
In summary the Verida Wallet is the user interface to manage the Identity, while the Vault is the storage space holding the data of the Identity.
How is Verida different from other decentralized storage solutions?
IPFS, and many other decentralized storage solutions, store unstructured blobs of data such as images, videos or PDFs.
Verida stores structured data in a document database that can be queried, indexed and replicated. See the DbStore answer above.
Other structured and database decentralised storage solutions do exist, but they typically reside on-top of IPFS and public data and not suitable for private, encrypted data.
Please read our deep dive article to get a better understanding of the differences between other storage systems and networks:
Verida for Developers
How can I integrate with the Verida Network?
The Verida protocol is open source and provides toolkits to accelerate developer onboarding. The developer’s toolkit includes:
- Client SDK, an open source typescript implementation of a Verida Network client providing encrypted storage, identity, messaging, and schemas capabilities. It’s an easy-to-use library that abstracts the complexities behind these capabilities, thereby allowing developers to build self-sovereign applications.
- Verida Connect SDK, a decentralized single sign on client library and server API that enables seamless QR code authentication via the Verida Wallet mobile application
- Verifiable Credentials Developer SDK containing all the necessary capabilities to issue, verify and share Verifiable Credentials on the Verida Network
- Vue Components which can be customized to suit the application styles and themes for easy app development
- Demo applications to help developers learn about the Verida protocol and network capabilities.
Developers can try out the Verida APIs directly in their browser using the Verida interactive tutorial, with no download necessary. This tutorial takes a developer through all the capabilities of the Verida Network and empowers them to build decentralized DApps using Verida.
Start building today: Developer Portal
Why authenticate with a DID and not a blockchain account?
The emergence of blockchain has pushed forward the technology and broader awareness of public / private key pairs being used as decentralized identifiers. The identifier is a blockchain address and the private key remains a secret kept by the owner.
At first glance, this seems really awesome. Not only do we have a decentralized identity, we also have a key pair allowing us to sign messages or data to create trusted, secure protocols.
Metamask and other crypto wallets have brought this technology to a large user base. (Yes, PGP enabled this a long time ago, but the timing and tooling wasn’t right).
The DID-Core standard provides a very specific way to use a public / private key pair as a feature rich decentralized identity with the help of a DID Document. This provides security via key rotation, allows for standardization of data storage and accessing services relating to the user. There is a rapidly growing ecosystem, including governments, that are transitioning to this self-sovereign infrastructure for the next era of personal data management.
Critically, this public / private key pair is used to control and identity and is not linked to a public blockchain address with permanent transaction history.
Does Verida have a web browser wallet extension like Metamask?
No. We have focused our efforts on building a mobile first application that showcases what’s possible when crypto is combined with self-sovereign identity, private data storage, single sign on and secure messaging.
It is common nowadays to use multiple devices in different contexts (work, personal, …) and environments (at home, at the office, in a shop, …). A smartphone is the most versatile device, particularly for our wide-range vision which see our Identity and data in all aspect of our lives.
Is data end-to-end (E2EE) encrypted on the network?
User data is encrypted end-to-end. The private key stored in a local device is used to encrypt the data before it is sent to the Verida network for storage.
Verida’s Storage Nodes provide private encrypted databases, with user control over where and how their data is stored, real-time synchronization, permissioned data access, and client-side encryption. This approach ensures decentralization of private data, as well as decentralized control, but without the added shortcomings of uncontrolled public distribution.
Identity, authentication, authorization and encryption are anchored by a user’s private keys. The personal data itself is encrypted and stored off-chain, with tight authentication and access controls.
Encrypting your data when it’s not in use makes it harder for hackers to get access to the human readable data. If the encryption is done on the user’s device, the user has control over their keys and can verify that their data is being encrypted.
The Verida open source libraries provide tooling for managing the user’s keys. Verida simplifies the process for developers to implement good encryption practices. The Verida Wallet handles key management for users in the Verida Network, and ensures keys are not reused across applications.
Each application has a set of dedicated databases on the Network which can be accessed once the user authenticate via the Verida Wallet.
Once authenticated, the application is granted access to its own specific datastore to query, create and access the user’s application data. The encryption, authorisation and authentication functionality are all handled by the Verida libraries. This allows the user’s datastore to communicate directly with the application’s datastore for the user. The protocol enforces the data schema’s to ensure the integrity of the encrypted data.
How do you utilize zero knowledge proofs for users?
The Verida Wallet supports the Polygon ID zero knowledge credential technology. This allows users to receive, hold and present Polygon ID Verifiable Credentials (VC). These VCs can be presented in a zero-knowledge way. Apps send users a proof requests of a certain claim, users receive it on their wallet (usually via scanning a QR code). The Zero Knowledge Proof is generated on the wallet device and eventually sent to the App that can verify it.
You can read more about the Polygon ID integration with Verida here:
Polygon ID and Verida Make Zero-Knowledge Credentials Accessible to All
Verida launches the first mobile crypto wallet supporting zero knowledge credentials issued through Polygon ID. #web3
You can watch the explainer from Chris here:
How does re-encryption work on the Verida protocol?
Each database is encrypted with key A. The Wallet re-encrypts the data with key B. The protocol enforces deletion of the original database and then replaces it with the new database of newly encrypted data.
All this data is only accessible to someone with the private key, so it's never public, so the original encrypted data is never exposed and decryptable by a third party.
The Verida protocol generates many private keys. Each database has its own encryption key, each application context has it's own signing key.
A user doesn't see these, they are generated from the master private key.
A user can "rotate" their master private key and in turn generate all new keys. The protocol supports this, but we have no interface for doing this yet.
What type of credentials can be issued on the Verida Network?
Verida has a demonstration library showcasing how to store verifiable credentials on the Verida network. As a storage network, it’s possible to store any type of credential. These credentials can be issued by any account on the Verida Network. The credentials can be privately or publicly stored by a Verida Account on the Verida Network. They can be verified by anyone, using the Verida Verifiable Credentials library (
@verida/verifiable-credential). Learn more in our developer documentation.
The Verida Wallet has additional libraries and interfaces to make it easy for users to receive, store and use verifiable credentials on the Cheqd and Polygon ID networks. We expect to add support into the Verida Wallet for other credential libraries and protocols in the future.