syntax = "proto3"; package did.v1; import "cosmos/base/query/v1beta1/pagination.proto"; import "did/v1/genesis.proto"; import "did/v1/state.proto"; import "did/v1/types.proto"; import "google/api/annotations.proto"; import "gogoproto/gogo.proto"; option go_package = "github.com/sonr-io/sonr/x/did/types"; // Query provides defines the gRPC querier service. service Query { // Params queries all parameters of the module. rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { option (google.api.http).get = "/did/v1/params"; } // ResolveDID resolves a DID to its DID document // // {{.MethodDescriptorProto.Name}} is a call with the method(s) {{$first := true}}{{range .Bindings}}{{if $first}}{{$first = false}}{{else}}, {{end}}{{.HTTPMethod}}{{end}} within the "{{.Service.Name}}" service. // It takes in "{{.RequestType.Name}}" and returns a "{{.ResponseType.Name}}". // // {{import "did_query_docs.md"}} rpc ResolveDID(QueryResolveDIDRequest) returns (QueryResolveDIDResponse) { option (google.api.http).get = "/did/v1/resolve/{did}"; } // GetDIDDocument retrieves a DID document by its ID rpc GetDIDDocument(QueryGetDIDDocumentRequest) returns (QueryGetDIDDocumentResponse) { option (google.api.http).get = "/did/v1/document/{did}"; } // ListDIDDocuments lists all DID documents with pagination rpc ListDIDDocuments(QueryListDIDDocumentsRequest) returns (QueryListDIDDocumentsResponse) { option (google.api.http).get = "/did/v1/documents"; } // GetDIDDocumentsByController retrieves DID documents by controller rpc GetDIDDocumentsByController(QueryGetDIDDocumentsByControllerRequest) returns (QueryGetDIDDocumentsByControllerResponse) { option (google.api.http).get = "/did/v1/documents/controller/{controller}"; } // GetVerificationMethod retrieves a specific verification method rpc GetVerificationMethod(QueryGetVerificationMethodRequest) returns (QueryGetVerificationMethodResponse) { option (google.api.http).get = "/did/v1/verification-method/{did}/{method_id}"; } // GetService retrieves a specific service endpoint rpc GetService(QueryGetServiceRequest) returns (QueryGetServiceResponse) { option (google.api.http).get = "/did/v1/service/{did}/{service_id}"; } // GetVerifiableCredential retrieves a verifiable credential by ID rpc GetVerifiableCredential(QueryGetVerifiableCredentialRequest) returns (QueryGetVerifiableCredentialResponse) { option (google.api.http).get = "/did/v1/credential/{credential_id}"; } // ListVerifiableCredentials lists all verifiable credentials with filtering options rpc ListVerifiableCredentials(QueryListVerifiableCredentialsRequest) returns (QueryListVerifiableCredentialsResponse) { option (google.api.http).get = "/did/v1/credentials"; } // GetCredentialsByDID retrieves all credentials (verifiable and WebAuthn) associated with a DID rpc GetCredentialsByDID(QueryGetCredentialsByDIDRequest) returns (QueryGetCredentialsByDIDResponse) { option (google.api.http).get = "/did/v1/credentials/did/{did}"; } // RegisterStart represents the start of the registration process rpc RegisterStart(QueryRegisterStartRequest) returns (QueryRegisterStartResponse) { option (google.api.http).post = "/did/v1/register/start"; } // LoginStart represents the start of the login process rpc LoginStart(QueryLoginStartRequest) returns (QueryLoginStartResponse) { option (google.api.http).post = "/did/v1/login/start"; } } // QueryParamsRequest is the request type for the Query/Params RPC method. message QueryParamsRequest {} // QueryParamsResponse is the response type for the Query/Params RPC method. message QueryParamsResponse { // params defines the parameters of the module. Params params = 1; } // QueryResolveDIDRequest is the request type for the Query/ResolveDID RPC // method. message QueryResolveDIDRequest { // did is the DID to resolve string did = 1; } // QueryResolveDIDResponse is the response type for the Query/ResolveDID RPC // method. message QueryResolveDIDResponse { // did_document is the resolved DID document DIDDocument did_document = 1; // did_document_metadata contains metadata about the DID document DIDDocumentMetadata did_document_metadata = 2; } // QueryGetDIDDocumentRequest is the request type for the // Query/GetDIDDocument RPC method. message QueryGetDIDDocumentRequest { // did is the DID to retrieve string did = 1; } // QueryGetDIDDocumentResponse is the response type for the // Query/GetDIDDocument RPC method. message QueryGetDIDDocumentResponse { // did_document is the retrieved DID document DIDDocument did_document = 1; // did_document_metadata contains metadata about the DID document DIDDocumentMetadata did_document_metadata = 2; } // QueryListDIDDocumentsRequest is the request type for the // Query/ListDIDDocuments RPC method. message QueryListDIDDocumentsRequest { // pagination defines an optional pagination for the request cosmos.base.query.v1beta1.PageRequest pagination = 1; } // QueryListDIDDocumentsResponse is the response type for the // Query/ListDIDDocuments RPC method. message QueryListDIDDocumentsResponse { // did_documents is the list of DID documents repeated DIDDocument did_documents = 1; // pagination defines the pagination in the response cosmos.base.query.v1beta1.PageResponse pagination = 2; } // QueryGetDIDDocumentsByControllerRequest is the request type for the // Query/GetDIDDocumentsByController RPC method. message QueryGetDIDDocumentsByControllerRequest { // controller is the controller to search for string controller = 1; // pagination defines an optional pagination for the request cosmos.base.query.v1beta1.PageRequest pagination = 2; } // QueryGetDIDDocumentsByControllerResponse is the response type for the // Query/GetDIDDocumentsByController RPC method. message QueryGetDIDDocumentsByControllerResponse { // did_documents is the list of DID documents controlled by the controller repeated DIDDocument did_documents = 1; // pagination defines the pagination in the response cosmos.base.query.v1beta1.PageResponse pagination = 2; } // QueryGetVerificationMethodRequest is the request type for the // Query/GetVerificationMethod RPC method. message QueryGetVerificationMethodRequest { // did is the DID that contains the verification method string did = 1; // method_id is the ID of the verification method string method_id = 2; } // QueryGetVerificationMethodResponse is the response type for the // Query/GetVerificationMethod RPC method. message QueryGetVerificationMethodResponse { // verification_method is the retrieved verification method VerificationMethod verification_method = 1; } // QueryGetServiceRequest is the request type for the Query/GetService RPC // method. message QueryGetServiceRequest { // did is the DID that contains the service string did = 1; // service_id is the ID of the service string service_id = 2; } // QueryGetServiceResponse is the response type for the Query/GetService // RPC method. message QueryGetServiceResponse { // service is the retrieved service Service service = 1; } // QueryGetVerifiableCredentialRequest is the request type for the // Query/GetVerifiableCredential RPC method. message QueryGetVerifiableCredentialRequest { // credential_id is the ID of the credential to retrieve string credential_id = 1; } // QueryGetVerifiableCredentialResponse is the response type for the // Query/GetVerifiableCredential RPC method. message QueryGetVerifiableCredentialResponse { // credential is the retrieved verifiable credential VerifiableCredential credential = 1; } // QueryListVerifiableCredentialsRequest is the request type for the // Query/ListVerifiableCredentials RPC method. message QueryListVerifiableCredentialsRequest { // pagination defines an optional pagination for the request cosmos.base.query.v1beta1.PageRequest pagination = 1; // issuer filters by issuer DID (optional) string issuer = 2; // holder filters by holder DID (optional) string holder = 3; // include_revoked includes revoked credentials (default: false) bool include_revoked = 4; } // QueryListVerifiableCredentialsResponse is the response type for the // Query/ListVerifiableCredentials RPC method. message QueryListVerifiableCredentialsResponse { // credentials is the list of verifiable credentials repeated VerifiableCredential credentials = 1; // pagination defines the pagination in the response cosmos.base.query.v1beta1.PageResponse pagination = 2; } // CredentialInfo wraps credential data with vault status message CredentialInfo { // credential can be either verifiable or WebAuthn oneof credential { VerifiableCredential verifiable_credential = 1; WebAuthnCredential webauthn_credential = 2; } // vault_id indicates if stored in vault (empty if not) string vault_id = 3; // is_encrypted indicates if encrypted in vault bool is_encrypted = 4; } // QueryGetCredentialsByDIDRequest is the request type for the // Query/GetCredentialsByDID RPC method. message QueryGetCredentialsByDIDRequest { // did is the DID to retrieve all credentials for string did = 1; // include_verifiable includes verifiable credentials (default: true) bool include_verifiable = 2; // include_webauthn includes WebAuthn credentials (default: true) bool include_webauthn = 3; // include_revoked includes revoked credentials (default: false) bool include_revoked = 4; // pagination defines an optional pagination for the request cosmos.base.query.v1beta1.PageRequest pagination = 5; } // QueryGetCredentialsByDIDResponse is the response type for the // Query/GetCredentialsByDID RPC method. message QueryGetCredentialsByDIDResponse { // credentials is the list of all credentials associated with the DID repeated CredentialInfo credentials = 1; // pagination defines the pagination in the response cosmos.base.query.v1beta1.PageResponse pagination = 2; } // QueryRegisterStartRequest is the request type for the // Query/RegisterStart RPC method. message QueryRegisterStartRequest { // assertion_did is the DID to register (did:sonr:email: or did:sonr:phone:) string assertion_did = 1; } // QueryRegisterStartResponse is the response type for the // Query/RegisterStart RPC method. message QueryRegisterStartResponse { // challenge for the attestation ceremony (32 bytes) bytes challenge = 1; // relying_party_id identifier string relying_party_id = 2; // user information (id, name, displayName) map user = 3; } // QueryLoginStartRequest is the request type for the // Query/LoginStart RPC method. message QueryLoginStartRequest { // assertion_did is the assertion DID (did:sonr:email: or did:sonr:phone:) string assertion_did = 1; } // QueryLoginStartResponse is the response type for the // Query/LoginStart RPC method. message QueryLoginStartResponse { // credential_ids associated with this assertion repeated string credential_ids = 1; // challenge for the assertion ceremony (32 bytes) bytes challenge = 2; // relying_party_id identifier string relying_party_id = 3; }