syntax = "proto3"; package did.v1; import "cosmos/orm/v1/orm.proto"; import "did/v1/genesis.proto"; option go_package = "github.com/onsonr/sonr/x/did/types"; // Alias represents a DID alias message Alias { option (cosmos.orm.v1.table) = { id: 1 primary_key: {fields: "id"} index: { id: 1 fields: "subject,origin" unique: true } }; // The unique identifier of the alias string id = 1; // The alias of the DID string subject = 2; // Origin of the alias string origin = 3; } // Controller represents a Sonr DWN Vault message Controller { option (cosmos.orm.v1.table) = { id: 2 primary_key: {fields: "id"} index: { id: 1 fields: "sonr_address" unique: true } index: { id: 2 fields: "eth_address" unique: true } index: { id: 3 fields: "btc_address" unique: true } index: { id: 4 fields: "vault_cid" unique: true } index: { id: 5 fields: "status,vault_cid" unique: true } }; // The unique identifier of the controller string id = 1; // The DID of the controller string sonr_address = 2; // The DID of the controller string eth_address = 3; // The DID of the controller string btc_address = 4; // Aliases of the controller repeated string aliases = 5; // PubKey is the verification method PubKey public_key = 6; // The vault address or identifier string vault_cid = 7; // The Authentications of the controller repeated string authentication = 8; // The Status of the claims for the controller string status = 9; } // Verification reprsents a method of verifying membership in a DID message Verification { option (cosmos.orm.v1.table) = { id: 5 primary_key: {fields: "id"} index: { id: 1 fields: "issuer,subject" unique: true } index: { id: 2 fields: "controller,did_method,issuer" unique: true } index: { id: 3 fields: "verification_type,subject,issuer" unique: true } }; // The unique identifier of the verification string id = 1; // The controller of the verification string controller = 2; // The DIDNamespace of the verification string did_method = 3; // The value of the linked identifier string issuer = 4; // The subject of the verification string subject = 5; // The public key of the verification PubKey public_key = 6; // The Verification Type (Authentication, Assertion, CapabilityDelegation, CapabilityInvocation) string verification_type = 7; }