Skip to main content
Version: 0.8 (next)

Getting started

Credo is a TypeScript framework for issuing, holding and verifying verifiable credentials. It supports OpenID4VC and DIDComm, and formats such as SD-JWT VC, mdoc, W3C Verifiable Credentials and AnonCreds. This section takes you from an empty project to a running agent.

Prerequisites​

  • Node.js 22 or later (Credo is tested on Node.js 22, 24 and 26), or React Native. These pages use Expo for React Native.
  • A TypeScript project that uses ES modules. Credo is published as ES modules only.

Browsers aren't supported, and Bun and Deno aren't tested. See Platforms.

Choose your setup​

Four choices come up before you write any code. If you're not sure, start with the default. You can add a protocol or format later, and an agent can use several at once.

ChoiceDefaultPick the other option whenDetails
PlatformNode.js, for issuers, verifiers, mediators and cloud walletsYou build a mobile wallet: use React Native with ExpoPlatforms
ProtocolOpenID4VCUse DIDComm if you need a lasting connection with messaging between agents, or AnonCreds, or your ecosystem is built on Aries. A wallet can support bothProtocols
Credential formatSD-JWT VCYour ecosystem asks for another one: mdoc for mobile driving licences, W3C VCs for Open Badges or EBSI, AnonCreds (DIDComm only) for predicates and unlinkable presentations. The EUDI Wallet uses SD-JWT VC and mdocCredential formats
StorageOn a server, Drizzle on PostgreSQL for the records, as SQL tables that scale to many tenants and instances, and Askar for the keys. In a mobile wallet, Askar for bothUse SQLite instead of PostgreSQL for a single server instance or local development. A mobile wallet can also use Drizzle on expo-sqliteStorage

The getting started pages use Drizzle on SQLite with Askar for the keys on Node.js, and Askar on React Native. They work for any protocol and format.

Read in this order​

Where to go next​

Once your agent runs, pick the guide for what you're building:

If you're new to verifiable credentials, start with Concepts. If you use an AI coding assistant, see AI coding agents.