syntax = "proto3"; package did.v1; import "did/v1/constants.proto"; import "did/v1/genesis.proto"; import "gogoproto/gogo.proto"; option go_package = "github.com/onsonr/sonr/x/did/types"; // Accumulator defines a BLS accumulator message Accumulator { bytes accumulator = 1; } // Credential defines a WebAuthn credential message Credential { string id = 1; string credential_type = 2; bytes credential_id = 3; repeated string transport = 4; string subject = 6; string controller = 7; } // DID defines a parsed DID string message DID { DIDNamespace method = 1; string network = 2; string subject = 3; string identifier = 4; repeated string paths = 5; } // Document defines a DID document message Document { string id = 1; repeated VerificationMethod verification_methods = 2; repeated string authentication = 4; repeated string assertion_method = 5; repeated string capability_delegation = 7; repeated string capability_invocation = 8; repeated string service = 9; } // Metadata defines additional information provided to a did message Metadata { string origin_uri = 1; map public = 2; map private = 3; } // Permissions contains a list of grants and access control rules for // a Service. message Permissions { repeated DIDNamespace grants = 1; repeated PermissionScope scopes = 2; } // Profile defines an associated public identity for a did subject message Profile { string id = 1; string subject = 2; string controller = 3; Metadata metadata = 4; } // Property defines a Zero-Knowledge accumulator which can be used to // anonymously prove a given value to a DID subject message Property { bytes accumulator = 1; bytes key = 2; } // PubKey defines a public key for a did message PubKey { KeyRole role = 1; KeyAlgorithm algorithm = 2; KeyEncoding encoding = 3; bytes raw = 4; string hex = 5; string multibase = 6; map jwk = 7; } // Service defines a Decentralized Service on the Sonr Blockchain message Service { string id = 1; string controller = 2; string origin = 3; Permissions permissions = 4; OpenIDConfig openid = 5; Metadata metadata = 6; } // Token defines a macron token message Token { string id = 1; string controller = 2; bytes macron = 3; } // VerificationMethod defines a verification method message VerificationMethod { string id = 1; string controller = 2; DIDNamespace method = 3; PubKey public_key = 4; Service service = 7; } // Witness defines a BLS witness message Witness { bytes witness = 1; }