Skip to main content
Star

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

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

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

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.

id-manager

Create a custom DID method

did-provider-ethr

Support Ethr-DID method

did-provider-web

Support Web-DID method

did-provider-key

Support Key-DID method

key-manager

Create a custom kms

kms-local

Support local kms

kms-local-react-native

Support local kms for React Native

message-handler

Create a custom message parser

did-comm

Support DIDcomm messaging

selective-disclosure

Support request messages

credential-w3c

Support W3C Verifiable Credential standard

did-jwt

Support DIDJwt

remote-server

Serve agent methods over REST

data-store

Suport local data storage

remote-client

Expose methods from a remote agent locally

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