Skip to content

baseid-did

The DID crate implements creation and resolution for did:key, did:web, and did:jwk methods.

[dependencies]
baseid-did = "0.1.0-alpha.1"
use baseid_core::types::KeyType;
use baseid_crypto::KeyPair;
use baseid_did::DidKeyResolver;
let kp = KeyPair::generate(KeyType::Ed25519)?;
let doc = DidKeyResolver::create(&kp.public)?;
println!("DID: {}", doc.id);
use baseid_did::resolve;
// did:key resolves locally
let doc = resolve("did:key:z6MkhaXg...").await?;
// did:web fetches over HTTPS
let doc = resolve("did:web:example.com").await?;
pub struct DidDocument {
pub id: String,
pub verification_method: Vec<VerificationMethod>,
pub authentication: Vec<String>,
pub assertion_method: Vec<String>,
pub key_agreement: Vec<String>,
}
MethodCreateResolveKey Types
did:keyYesYesEd25519, P-256, P-384, secp256k1
did:webYesYesAll
did:jwkYesYesAll
use baseid_did::extract_public_key;
let public_key = extract_public_key(&doc, &doc.verification_method[0].id)?;

Full API Reference