Performant and modular APIs for Verifiable Data and SSI
Create and manage decentralized identifiers + verifiable credentials without worrying about interop and vendor lock-in.
Modular, Composable, Scalable
Veramo was designed from the ground up to be flexible and modular making it highly scalable. Create an agent, add plugins, run on server or mobile. You can also expose your agent over REST.
Awesome CLI
The Veramo core API is exposed by our CLI tool. Get started quickly creating DIDs and VCs from your terminal or run a local cloud agent. Developers will love the plugin development tools included.
Multi-Platform
Veramo runs on Node, Browsers, and React Native right out of the box.
Clean API backed by TypeScript
Veramo has a simple and clean API that is easy to reason about. This example bootstraps your agent with minimal configuration.
import { createAgent } from '@veramo/core'
import { KeyManager } from '@veramo/key-manager'
import { DIDManager } from '@veramo/did-manager'
import { CredentialIssuer } from '@veramo/credential-w3c'
/* Configure the agent */
const agent = createAgent({
plugins: [
new KeyManager(/* config */),
new DIDManager(/* config */),
new CredentialIssuer(),
],
})
/* Create an identifier and optionally link to an existing user */
const user = await agent.didManagerGetOrCreate({
alias: 'alice'
})
const verifiableCredential = await agent.createVerifiableCredential({
credential: {
issuer: { id: 'did:web:sun.veramo.dev' },
credentialSubject: {
id: user.did,
tutorial: 42,
status: 'completed'
}
},
proofFormat: 'jwt',
save: false
})
Plugins
Veramo is powered by a flexible plugin system. We have a growing list of core plugins and adding your own custom plugin is easy.
key-manager
Manage keys and their metadata.
Is used by other plugins for cryptographic operations.
did-manager
Create and manage DIDs.
Uses did-provider-*
implementations.
credential-w3c
Issue and verify W3C Verifiable Credentials and Presentations.
message-handler
Decrypt or decode messages and trigger actions.
data-store
Store and query Verifiable Credentials and Presentations using SQL-like databases.
data-store-json
Store and query Verifiable Credentials and Presentations using a JSON object
did-comm
Pack, send, decrypt, and decode DIDComm messages.
kms-local
Key Management System that stores keys locally or in memory.
This is used by key-manager
kms-web3
Key Management System that delegates operations to a web3 wallet.
This is used by key-manager
remote-server
Create an OpenAPI interface for plugins, serve did:web
documents, ingress for message-handler
.
remote-client
Connect to a remote-server
and provide those plugin methods locally
did-provider-ethr
Create and manage did:ethr
identifiers
did-provider-web
Create and manage did:web
identifiers
did-provider-key
Create did:key
identifiers
did-provider-ion
Create and manage did:ion
identifiers
did-provider-pkh
Create did:pkh
identifiers
did-provider-jwk
Create did:jwk
identifiers
did-jwt
Decode and verify JWT messages. This is used with message-handler
selective-disclosure
Create and handle requests for selective disclosure of Verifiable Credentials.
Awesome CLI
No framework is complete without a fully featured CLI tool that gives you access to all the core functionality from your terminal. Veramo's CLI tool contains everything you need to get started.
npm i @veramo/cli -g
Verifiable data is the new standard
We live in a data driven, digital world and make decisions based on reputation. Off-chain verifiabilty is a critical building block for the economy of tomorrow. Veramo gives you the tools to start building trust networks that accelerate decision making, efficiency and productivity