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.
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.