DID Utilities

Functions
  • deriveAgentDid(owner) — Returns "did:sol:<base58>"
  • parseDid(did) — Parse a did:sol string, returns PublicKey | null
  • agentPdaFromDid(did, programId?) — Derive agent PDA from a DID (optional programId override), returns [PublicKey, number] | null
  • generateDidDocument(params) — Generate a full W3C DID Document, returns DidDocument
TypeScript
import { deriveAgentDid, parseDid, agentPdaFromDid, generateDidDocument } from '@vouch-protocol/sdk'; // DID utility functions

// Every Vouch agent gets a W3C DID
const did = deriveAgentDid(ownerPubkey); // Deterministic: "did:sol:" + base58 pubkey
// "did:sol:7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU"

// Parse it back
const pubkey = parseDid(did); // Extract Solana PublicKey from the DID string

// Derive agent PDA from a DID
const result = agentPdaFromDid(did); // Returns [PublicKey, bump] or null
const resultCustom = agentPdaFromDid(did, customProgramId); // Optional programId override

// Generate full DID Document
const doc = generateDidDocument({ // Build W3C DID Document with verification methods + services
  owner: ownerPubkey, // Agent owner's Solana pubkey
  agentPda: agentPda, // The on-chain agent PDA
  agent: agent, // Deserialized agent account data
});

Example Returns

deriveAgentDid()

Returns
"did:sol:7xKXtg2CW87d97TXJSDpHD4vMvnQ1985FchZRgCd9oPr"

parseDid()

Returns
// PublicKey | null
PublicKey("7xKXtg2CW87d97TXJSDpHD4vMvnQ1985FchZRgCd9oPr")

agentPdaFromDid()

Returns
// [PublicKey, number] | null
[PublicKey("BKq8rN4EwJQG3R9FnLhSGqJ2tNkh8cVRxvNApj7hbfQM"), 255]