Developers

Everything you need to integrate BaseID into your applications.

Documentation

Comprehensive guides covering architecture, integration patterns, and best practices.

API Reference

Complete reference documentation for every crate and public API.

Getting Started

Step-by-step tutorials to issue your first credential in under 10 minutes.

Quick Start — Issue a Credential
use baseid_vc::{Credential, CredentialBuilder};
use baseid_crypto::Ed25519Signer;
use baseid_did::DidKey;

// Generate a DID and signing key
let (did, signer) = DidKey::generate_ed25519()?;

// Build and sign a verifiable credential
let vc = CredentialBuilder::new()
    .issuer(&did)
    .subject("did:key:z6Mkf...")
    .add_type("UniversityDegree")
    .add_claim("degree", "Computer Science")
    .add_claim("university", "University of Toronto")
    .build(&signer)
    .await?;

println!("{}", serde_json::to_string_pretty(&vc)?);

Architecture Overview

BaseID follows a layered architecture that separates concerns and enables you to use exactly the components you need.

BaseID crate dependency graph showing inter-crate relationships across application, protocol, format, and foundation layers

Applications

baseid-wallet-core, baseid-issuer-core, baseid-verifier-core

Wallet, Issuer, and Verifier reference implementations

Protocols

baseid-oid4vci, baseid-oid4vp, baseid-siop, baseid-didcomm

OID4VCI, OID4VP, SIOP, DIDComm messaging

Privacy & Sharing

baseid-sd-jwt, baseid-anoncreds, baseid-pctf

Selective disclosure, predicate proofs, unlinkable presentations

Credential Lifecycle

baseid-vc, baseid-mdl, baseid-store

Credential formats, issuance, verification, status

Foundation

baseid-core, baseid-crypto, baseid-did, baseid-transport

Cryptography, DIDs, core types, transport

Ready to dive in?

Explore the source code and start integrating BaseID today.