Standards W3C DID Examples
These snippets cover verifiable credential helpers, proof helpers, multikey conversion, and signer verifier usage.
VerifiableCredentialHelper
import {
DidContexts,
VerifiableCredentialHelper,
type IDidVerifiableCredential
} from '@twin.org/standards-w3c-did';
const credential: IDidVerifiableCredential = {
'@context': [DidContexts.ContextVCv2],
type: ['VerifiableCredential'],
issuer: 'did:example:issuer',
credentialSubject: { id: 'did:example:holder' }
};
VerifiableCredentialHelper.setValidFrom(credential, '2026-03-09T09:00:00Z');
VerifiableCredentialHelper.setValidUntil(credential, '2026-12-31T23:59:59Z');
const from = VerifiableCredentialHelper.getValidFrom(credential);
const until = VerifiableCredentialHelper.getValidUntil(credential);
console.log(from); // 2026-03-09T09:00:00Z
console.log(until); // 2026-12-31T23:59:59Z
ProofHelper
import type { IJsonLdNodeObject } from '@twin.org/data-json-ld';
import { ProofHelper, ProofTypes } from '@twin.org/standards-w3c-did';
const doc: IJsonLdNodeObject = {
'@context': ['https://www.w3.org/ns/credentials/v2'],
type: ['VerifiableCredential'],
credentialSubject: { id: 'did:example:holder' }
};
const unsigned = ProofHelper.createUnsignedProof(
ProofTypes.JsonWebSignature2020,
'did:example:issuer#key-1'
);
const signer = ProofHelper.createAsyncSignerVerifier(ProofTypes.JsonWebSignature2020);
const signed = await signer.createProofWithSigner(doc, unsigned, async data => data.slice(0, 64));
console.log(unsigned.type); // JsonWebSignature2020
console.log(typeof signed.proofValue === 'string'); // true
MultikeyHelper
import type { IJwk } from '@twin.org/web';
import { MultikeyHelper } from '@twin.org/standards-w3c-did';
const jwk: IJwk = {
kty: 'OKP',
crv: 'Ed25519',
alg: 'EdDSA',
x: 'xW3f6wYf0j0M2f6WnGw1V8xgj2YyN6xYv1l6fA8Vq5E',
d: 'kB0l6QUPkzWJeN6wHZfG4Dwb4J7Y0C5i9mS1r2fYv5Y'
};
const multikey = MultikeyHelper.fromJwk('did:example:issuer', 'did:example:issuer#key-1', jwk);
const roundTrip = MultikeyHelper.toJwk(multikey);
console.log(multikey.type); // Multikey
console.log(roundTrip.crv); // Ed25519
DidDataTypes
import { DidDataTypes } from '@twin.org/standards-w3c-did';
DidDataTypes.registerTypes();
console.log(typeof DidDataTypes.registerTypes === 'function'); // true