Builders & Developers FAQ

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

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?

Verifiable Credentials are a W3C standard that is supported within the Verida Network with the @verida/verifiable-credential npm package.

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.

Last updated