A JavaScript Framework for Verifiable Data

Orchestrate standards and build trust layers into your apps

Start building the trust layer in your applications today with Veramo. We obsess over standards and interoperability making it easy to support a wide list of standards in the data verification space.

Modular, composable, scalable

Veramo was designed from the ground up to be flexible and modular which makes it highly scalable. Create an agent, add plugins, run on server or mobile. You can also expose your agent over REST.

import { createAgent } from '@veramo/core'
import { KeyManager } from '@veramo/key-manager'
import { DIDManager } from '@veramo/did-manager'
/* Configure the agent */
const agent = createAgent({
plugins: [
new KeyManager(/* config */),
new DIDManager(/* config */)
/* 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: '' },
credentialSubject: {
id: user.did,
tutorial: 42,
status: 'completed'
proofFormat: 'jwt',
save: true

Multi-Platform out of the box

Veramo runs on Node, Browsers, and React Native straight out of the box. Save time by using the same API across all platforms.

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.

/* Install the CLI globally */
$ npm install @veramo/cli -g
/* Resolve a DID */
$ veramo did resolve
/* Create an identifier */
$ veramo did create
/* Create a verifiable credential */
$ veramo credential create
/* Run a local cloud agent */
$ veramo server