DID Document structure following W3C standard

interface DIDDocument {
    "@context": string | string[];
    assertionMethod?: (
        string
        | { controller: string; id: string; type: string }
    )[];
    authentication?: (
        string
        | { controller: string; id: string; type: string }
    )[];
    controller?: string | string[];
    id: string;
    service?: {
        id: string;
        serviceEndpoint: string | Record<string, any>;
        type: string;
    }[];
    verificationMethod?: {
        controller: string;
        id: string;
        publicKeyJwk?: Record<string, any>;
        publicKeyMultibase?: string;
        type: string;
    }[];
}

Properties

"@context": string | string[]
assertionMethod?: (string | { controller: string; id: string; type: string })[]
authentication?: (string | { controller: string; id: string; type: string })[]
controller?: string | string[]
id: string
service?: {
    id: string;
    serviceEndpoint: string | Record<string, any>;
    type: string;
}[]
verificationMethod?: {
    controller: string;
    id: string;
    publicKeyJwk?: Record<string, any>;
    publicKeyMultibase?: string;
    type: string;
}[]