DID Utilities
Functions
deriveAgentDid(owner)— Returns"did:sol:<base58>"parseDid(did)— Parse adid:solstring, returnsPublicKey | nullagentPdaFromDid(did, programId?)— Derive agent PDA from a DID (optionalprogramIdoverride), returns[PublicKey, number] | nullgenerateDidDocument(params)— Generate a full W3C DID Document, returnsDidDocument
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]