Protocol Documentation¶
This page documents the Protobuf Services and Messages which compose the Trinsic API.
sdk/options/v1/options.proto¶
ServiceOptions¶
Configuration for Trinsic SDK Services
| Field | Type | Description |
|---|---|---|
| server_endpoint | string | Trinsic API endpoint. Defaults to prod.trinsic.cloud |
| server_port | int32 | Trinsic API port; defaults to 443 |
| server_use_tls | bool | Whether TLS is enabled between SDK and Trinsic API; defaults to true |
| auth_token | string | Authentication token for SDK calls; defaults to empty string (unauthenticated) |
Default ecosystem ID to use for various SDK calls; defaults to default string default_ecosystem = 5; |
services/trust-registry/v1/trust-registry.proto¶
Service - TrustRegistry¶
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| AddFramework | AddFrameworkRequest | AddFrameworkResponse | Add a governance framework to the ecosystem |
| RemoveFramework | RemoveFrameworkRequest | RemoveFrameworkResponse | Remove a governance framework from the ecosystem |
| SearchRegistry | SearchRegistryRequest | SearchRegistryResponse | Search the ecosystem's governance frameworks |
| RegisterMember | RegisterMemberRequest | RegisterMemberResponse | Register an authoritative issuer for a credential schema |
| UnregisterMember | UnregisterMemberRequest | UnregisterMemberResponse | Removes an authoritative issuer for a credential schema from the trust registry |
| GetMembershipStatus | GetMembershipStatusRequest | GetMembershipStatusResponse | Fetch the membership status of an issuer for a given credential schema in a trust registry |
| FetchData | FetchDataRequest | FetchDataResponse stream | Not implemented. |
AddFrameworkRequest¶
Request to register a new ecosystem governance framework in the current ecosystem
| Field | Type | Description |
|---|---|---|
| governance_framework_uri | string | URI of governance framework organization |
| name | string | Name of governance framework organization |
| description | string | Description of governance framework |
AddFrameworkResponse¶
Response to AddFrameworkRequest
| Field | Type | Description |
|---|---|---|
| id | string | Unique framework identifier |
| governing_authority | string | DID URI of Trinsic account which created the governance framework |
| trust_registry | string | URN of trust registry for governance framework |
FetchDataRequest¶
Not implemented.
| Field | Type | Description |
|---|---|---|
| governance_framework_uri | string | |
| query | string |
FetchDataResponse¶
Not implemented.
| Field | Type | Description |
|---|---|---|
| response_json | string | |
| has_more_results | bool | |
| continuation_token | string |
GetMembershipStatusRequest¶
Request to fetch membership status in governance framework for a specific credential schema.
Only one of did_uri, x509_cert may be specified.
| Field | Type | Description |
|---|---|---|
| governance_framework_uri | string | URI of governance framework |
| did_uri | string | DID URI of member |
| x509_cert | string | X.509 certificate of member |
| schema_uri | string | URI of credential schema associated with membership |
GetMembershipStatusResponse¶
Response to GetMembershipStatusRequest
| Field | Type | Description |
|---|---|---|
| status | RegistrationStatus | Status of member for given credential schema |
GovernanceFramework¶
Ecosystem Governance Framework
| Field | Type | Description |
|---|---|---|
| governance_framework_uri | string | URI of governance framework organization |
| trust_registry_uri | string | URI of trust registry associated with governance framework |
| description | string | Description of governance framework |
RegisterMemberRequest¶
Request to register a member as a valid issuer of a specific credential schema.
Only one of did_uri, wallet_id, or email may be specified.
| Field | Type | Description |
|---|---|---|
| did_uri | string | DID URI of member to register |
| wallet_id | string | Trinsic Wallet ID of member to register |
| string | Email address of member to register. Must be associated with an existing Trinsic account. | |
| schema_uri | string | URI of credential schema to register member as authorized issuer of |
| valid_from_utc | uint64 | Unix Timestamp member is valid from. Member will not be considered valid before this timestamp. |
| valid_until_utc | uint64 | Unix Timestamp member is valid until. Member will not be considered valid after this timestamp. |
| framework_id | string | ID of the governance framework that member is being added to |
RegisterMemberResponse¶
Response to RegisterMemberRequest
RemoveFrameworkRequest¶
Request to remove a governance framework from the current ecosystem
| Field | Type | Description |
|---|---|---|
| id | string | ID of governance framework to remove |
RemoveFrameworkResponse¶
Response to RemoveFrameworkRequest
SearchRegistryRequest¶
Request to search all governance frameworks within ecosystem
| Field | Type | Description |
|---|---|---|
| query | string | SQL query to execute against frameworks. Example: SELECT c from c where c.type == 'GovernanceFramework' |
| continuation_token | string | Token to fetch next set of results, from previous SearchRegistryResponse |
SearchRegistryResponse¶
Response to SearchRegistryRequest
| Field | Type | Description |
|---|---|---|
| items_json | string | JSON string containing array of resultant objects |
| has_more | bool | Whether more data is available to fetch for query |
| continuation_token | string | Token to fetch next set of results via SearchRegistryRequest |
UnregisterMemberRequest¶
Request to unregister a member as a valid issuer of a specific credential schema.
Only one of did_uri, wallet_id, or email may be specified.
| Field | Type | Description |
|---|---|---|
| did_uri | string | DID URI of member to unregister |
| wallet_id | string | Trinsic Wallet ID of member to unregister |
| string | Email address of member to unregister. Must be associated with an existing Trinsic account. | |
| schema_uri | string | URI of credential schema to unregister member as authorized issuer of |
| framework_id | string | ID of the governance framework that member is being removed from |
UnregisterMemberResponse¶
Response to UnregisterMemberRequest
RegistrationStatus¶
| Name | Number | Description |
|---|---|---|
| CURRENT | 0 | Member is currently authorized, as of the time of the query |
| EXPIRED | 1 | Member's authorization has expired |
| TERMINATED | 2 | Member has voluntarily ceased Issuer role under the specific EGF |
| REVOKED | 3 | Member authority under specific EGF was terminated by the governing authority |
| NOT_FOUND | 10 | Member is not associated with given credential schema in the EGF |
services/account/v1/account.proto¶
Service - Account¶
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| SignIn | SignInRequest | SignInResponse | Sign in to an already existing account |
| Login | LoginRequest | LoginResponse | Begin login flow for specified account, creating one if it does not already exist |
| LoginConfirm | LoginConfirmRequest | LoginConfirmResponse | Finalize login flow with two-factor confirmation code |
| Info | AccountInfoRequest | AccountInfoResponse | Get account information |
| ListDevices | ListDevicesRequest | ListDevicesResponse | List all connected devices |
| RevokeDevice | RevokeDeviceRequest | RevokeDeviceResponse | Revoke device access to the account's cloud wallet |
| AuthorizeWebhook | AuthorizeWebhookRequest | AuthorizeWebhookResponse | Authorize Ecosystem to receive webhook events |
AccountDetails¶
Account registration details
| Field | Type | Description |
|---|---|---|
| name | string | Account name |
| string | Email address of account | |
| sms | string | SMS number including country code |
AccountEcosystem¶
Deprecated
| Field | Type | Description |
|---|---|---|
| id | string | |
| name | string | |
| description | string | |
| uri | string |
AccountInfoRequest¶
Request for information about the account used to make the request
AccountInfoResponse¶
Information about the account used to make the request
| Field | Type | Description |
|---|---|---|
| details | AccountDetails | The account details associated with the calling request context |
| ecosystems | AccountEcosystem[] | Deprecated. Use ecosystem_id instead |
| wallet_id | string | The wallet ID associated with this account |
| device_id | string | The device ID associated with this account session |
| ecosystem_id | string | The ecosystem ID within which this account resides |
| public_did | string | The public DID associated with this account. This DID is used as the issuer when signing verifiable credentials |
| authorized_webhooks | string[] | Webhook events, if any, this wallet has authorized |
AccountProfile¶
Device profile containing sensitive authentication data. This information should be stored securely
| Field | Type | Description |
|---|---|---|
| profile_type | string | The type of profile, used to differentiate between protocol schemes or versions |
| auth_data | bytes | Auth data containg information about the current device access |
| auth_token | bytes | Secure token issued by server used to generate zero-knowledge proofs |
| protection | TokenProtection | Token security information about the token. If token protection is enabled, implementations must supply protection secret before using the token for authentication. |
AuthorizeWebhookRequest¶
Request to authorize Ecosystem provider to receive webhooks for events which occur on this wallet.
| Field | Type | Description |
|---|---|---|
| events | string[] | Events to authorize access to. Default is "*" (all events) |
AuthorizeWebhookResponse¶
Response to AuthorizeWebhookRequest
ListDevicesRequest¶
ListDevicesResponse¶
LoginConfirmRequest¶
Request to finalize login flow
| Field | Type | Description |
|---|---|---|
| challenge | bytes | Challenge received from Login |
| confirmation_code_hashed | bytes | Two-factor confirmation code sent to account email or phone, hashed using Blake3. Our SDKs will handle this hashing process for you. |
LoginConfirmResponse¶
Response to LoginConfirmRequest
| Field | Type | Description |
|---|---|---|
| profile | AccountProfile | Profile response; must be unprotected using unhashed confirmation code. Our SDKs will handle this process for you, and return to you an authentication token string. |
LoginRequest¶
Request to begin login flow
| Field | Type | Description |
|---|---|---|
| string | Email address of account. If unspecified, an anonymous account will be created. | |
| invitation_code | string | Invitation code associated with this registration |
| ecosystem_id | string | ID of Ecosystem to sign into. Ignored if invitation_code is passed. |
LoginResponse¶
Response to LoginRequest
| Field | Type | Description |
|---|---|---|
| challenge | bytes | Random byte sequence unique to this login request. If present, two-factor confirmation of login is required. Must be sent back, unaltered, in LoginConfirm. |
| profile | AccountProfile | Account profile response. If present, no confirmation of login is required. |
RevokeDeviceRequest¶
RevokeDeviceResponse¶
SignInRequest¶
Request for creating or signing into an account
| Field | Type | Description |
|---|---|---|
| details | AccountDetails | Account registration details |
| invitation_code | string | Invitation code associated with this registration |
| ecosystem_id | string | ID of Ecosystem to use Ignored if invitation_code is passed |
SignInResponse¶
Response for creating new account This object will indicate if a confirmation code was sent to one of the users two-factor methods like email, SMS, etc.
| Field | Type | Description |
|---|---|---|
| confirmation_method | ConfirmationMethod | Indicates if confirmation of account is required. |
| profile | AccountProfile | Contains authentication data for use with the current device. This object must be stored in a secure place. It can also be protected with a PIN, but this is optional. See the docs at https://docs.trinsic.id for more information on working with authentication data. |
TokenProtection¶
Token protection info
| Field | Type | Description |
|---|---|---|
| enabled | bool | Indicates if token is protected using a PIN, security code, HSM secret, etc. |
| method | ConfirmationMethod | The method used to protect the token |
ConfirmationMethod¶
Confirmation method type for two-factor workflows
| Name | Number | Description |
|---|---|---|
| None | 0 | No confirmation required |
| 1 | Email confirmation required | |
| Sms | 2 | SMS confirmation required |
| ConnectedDevice | 3 | Confirmation from a connected device is required |
| Other | 10 | Third-party method of confirmation is required |
services/common/v1/common.proto¶
Nonce¶
Nonce used to generate an oberon proof
| Field | Type | Description |
|---|---|---|
| timestamp | int64 | UTC unix millisecond timestamp the request was made |
| request_hash | bytes | blake3256 hash of the request body |
ResponseStatus¶
| Name | Number | Description |
|---|---|---|
| SUCCESS | 0 | |
| WALLET_ACCESS_DENIED | 10 | |
| WALLET_EXISTS | 11 | |
| ITEM_NOT_FOUND | 20 | |
| SERIALIZATION_ERROR | 200 | |
| UNKNOWN_ERROR | 100 |
services/provider/v1/provider.proto¶
Service - Provider¶
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| CreateEcosystem | CreateEcosystemRequest | CreateEcosystemResponse | Create new ecosystem and assign the authenticated user as owner |
| UpdateEcosystem | UpdateEcosystemRequest | UpdateEcosystemResponse | Update an existing ecosystem |
| GrantAuthorization | GrantAuthorizationRequest | GrantAuthorizationResponse | Grant user authorization to ecosystem resources |
| RevokeAuthorization | RevokeAuthorizationRequest | RevokeAuthorizationResponse | Revoke user authorization to ecosystem resources |
| GetAuthorizations | GetAuthorizationsRequest | GetAuthorizationsResponse | Retreive the list of permissions for this particular account/ecosystem |
| AddWebhook | AddWebhookRequest | AddWebhookResponse | Add a webhook endpoint to the ecosystem |
| DeleteWebhook | DeleteWebhookRequest | DeleteWebhookResponse | Delete a webhook endpoint from the ecosystem |
| EcosystemInfo | EcosystemInfoRequest | EcosystemInfoResponse | Get ecosystem information |
| GenerateToken | GenerateTokenRequest | GenerateTokenResponse | Generates an unprotected authentication token that can be used to configure server side applications |
| Invite | InviteRequest | InviteResponse | Invite a user to the ecosystem |
| InvitationStatus | InvitationStatusRequest | InvitationStatusResponse | Check the status of an invitation |
| GetOberonKey | GetOberonKeyRequest | GetOberonKeyResponse | Returns the public key being used to create/verify oberon tokens |
| GetEventToken | GetEventTokenRequest | GetEventTokenResponse | Generate a signed token (JWT) that can be used to connect to the message bus |
AddWebhookRequest¶
Request to add a webhook to an ecosystem
| Field | Type | Description |
|---|---|---|
| destination_url | string | Destination to post webhook calls to. Must be a reachable HTTPS URL. |
| secret | string | Secret string used for HMAC-SHA256 signing of webhook payloads to verify that a webhook comes from Trinsic |
| events | string[] | Events to subscribe to. Default is "*" (all events) |
AddWebhookResponse¶
Response to AddWebhookRequest
| Field | Type | Description |
|---|---|---|
| ecosystem | Ecosystem | Ecosystem data with new webhook |
CreateEcosystemRequest¶
Request to create an ecosystem
| Field | Type | Description |
|---|---|---|
| name | string | Globally unique name for the Ecosystem. This name will be part of the ecosystem-specific URLs and namespaces. Allowed characters are lowercase letters, numbers, underscore and hyphen. If not passed, ecosystem name will be auto-generated. |
| description | string | Ecosystem description |
| uri | string | External URL associated with your organization or ecosystem entity |
| details | services.account.v1.AccountDetails | The account details of the owner of the ecosystem |
CreateEcosystemResponse¶
Response to CreateEcosystemRequest
| Field | Type | Description |
|---|---|---|
| ecosystem | Ecosystem | Details of the created ecosystem |
| profile | services.account.v1.AccountProfile | Account profile for auth of the owner of the ecosystem |
| confirmation_method | services.account.v1.ConfirmationMethod | Indicates if confirmation of account is required. |
DeleteWebhookRequest¶
Request to delete a webhook from an ecosystem
| Field | Type | Description |
|---|---|---|
| webhook_id | string | ID of webhook to delete |
DeleteWebhookResponse¶
Response to DeleteWebhookRequest
| Field | Type | Description |
|---|---|---|
| ecosystem | Ecosystem | Ecosystem data after removal of webhook |
Ecosystem¶
Details of an ecosystem
| Field | Type | Description |
|---|---|---|
| id | string | URN of the ecosystem |
| name | string | Globally unique name for the ecosystem |
| description | string | Ecosystem description |
| uri | string | External URL associated with the organization or ecosystem entity |
| webhooks | WebhookConfig[] | Configured webhooks, if any |
EcosystemInfoRequest¶
Request to fetch information about an ecosystem
EcosystemInfoResponse¶
Response to InfoRequest
| Field | Type | Description |
|---|---|---|
| ecosystem | Ecosystem | Ecosystem corresponding to requested ecosystem_id |
GenerateTokenRequest¶
Request to generate an authentication token for the current account
| Field | Type | Description |
|---|---|---|
| description | string | Description to identify this token |
GenerateTokenResponse¶
Response to GenerateTokenRequest
| Field | Type | Description |
|---|---|---|
| profile | services.account.v1.AccountProfile | Account authentication profile that contains unprotected token |
GetAuthorizationsRequest¶
Fetch list of grants that the current account has access to in its ecosystem
GetAuthorizationsResponse¶
Response to GetAuthorizationsRequest
| Field | Type | Description |
|---|---|---|
| grants | Grant[] | Grants attached to account |
GetEventTokenRequest¶
Generates an events token bound to the provided ed25519 public key.
| Field | Type | Description |
|---|---|---|
| pk | bytes | Raw public key to generate event token for |
GetEventTokenResponse¶
Response message containing a token (JWT) that can be used to connect directly to the message streaming architecture
| Field | Type | Description |
|---|---|---|
| token | string | JWT bound to the public key provided in GetEventTokenRequest |
GetOberonKeyRequest¶
Request to fetch the Trinsic public key used to verify authentication token validity
GetOberonKeyResponse¶
Response to GetOberonKeyRequest
| Field | Type | Description |
|---|---|---|
| key | string | Oberon Public Key as RAW base64-url encoded string |
Grant¶
A grant authorizing actions on a resourceId
| Field | Type | Description |
|---|---|---|
| resourceId | string | the urn of the resource |
| actions | string[] | list of actions that are allowed |
| child_grants | Grant[] | any child grants |
GrantAuthorizationRequest¶
Grant permissions to a resource or path in the ecosystem
| Field | Type | Description |
|---|---|---|
| string | Email address of account being granted permission. Mutually exclusive with walletId. |
|
| walletId | string | Wallet ID of account being granted permission. Mutually exclusive with email. |
| resource | string | Resource string that account is receiving permissions for. Resources are specified as a RESTful path: /{ecoId}/{resource type}/{resource id}. ecoId may be omitted. |
| action | string | Action to authorize. Default is "*" (all) |
GrantAuthorizationResponse¶
Response to GrantAuthorizationRequest
InvitationStatusRequest¶
Request details for the status of an invitation
| Field | Type | Description |
|---|---|---|
| invitation_id | string | ID of invitation, received from InviteResponse |
InvitationStatusResponse¶
Response to InvitationStatusRequest
| Field | Type | Description |
|---|---|---|
| status | InvitationStatusResponse.Status | Status of invitation |
| status_details | string | Human-readable string with details about invitation status |
InviteRequest¶
Request to invite a participant to an ecosystem
| Field | Type | Description |
|---|---|---|
| participant | ParticipantType | Type of participant being invited (individual/organization) |
| description | string | Description of invitation |
| details | services.account.v1.AccountDetails | Account details of invitee |
InviteRequest.DidCommInvitation¶
InviteResponse¶
Response to InviteRequest
| Field | Type | Description |
|---|---|---|
| invitation_id | string | ID of created invitation |
| invitation_code | string | Invitation code -- must be passed back in LoginRequest |
RevokeAuthorizationRequest¶
Revoke permissions to a resource or path in the ecosystem
| Field | Type | Description |
|---|---|---|
| string | Email address of account having permission revoked. Mutually exclusive with walletId. |
|
| walletId | string | Wallet ID of account having permission revoked. Mutually exclusive with email. |
| resource | string | Resource string that account is losing permissions for. Resources are specified as a RESTful path: /{ecoId}/{resource type}/{resource id}. ecoId may be omitted. |
| action | string | Action to revoke. Default is "*" (all) |
RevokeAuthorizationResponse¶
Response to RevokeAuthorizationRequest
UpdateEcosystemRequest¶
Request to update an ecosystem's metadata
| Field | Type | Description |
|---|---|---|
| description | string | New description of the ecosystem |
| uri | string | New external URL associated with the organization or ecosystem entity |
UpdateEcosystemResponse¶
Response to UpdateEcosystemRequest
| Field | Type | Description |
|---|---|---|
| Ecosystem | Ecosystem | Current ecosystem metadata, post-update |
WebhookConfig¶
Webhook configured on an ecosystem
| Field | Type | Description |
|---|---|---|
| id | string | UUID of the webhook |
| destination_url | string | HTTPS URL to POST webhook calls to |
| events | string[] | Events the webhook is subscribed to |
| status | string | Last known status of webhook (whether or not Trinsic can successfully reach destination) |
InvitationStatusResponse.Status¶
| Name | Number | Description |
|---|---|---|
| Error | 0 | Onboarding resulted in error |
| InvitationSent | 1 | The participant has been invited |
| Completed | 2 | The participant has been onboarded |
| Expired | 3 | The invite has expired |
ParticipantType¶
Type of participant being invited to ecosystem
| Name | Number | Description |
|---|---|---|
| participant_type_individual | 0 | Participant is an individual |
| participant_type_organization | 1 | Participant is an organization |
services/universal-wallet/v1/universal-wallet.proto¶
Service - UniversalWallet¶
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| GetItem | GetItemRequest | GetItemResponse | Retrieve an item from the wallet with a given item identifier |
| Search | SearchRequest | SearchResponse | Search the wallet using a SQL syntax |
| InsertItem | InsertItemRequest | InsertItemResponse | Insert an item into the wallet |
| UpdateItem | UpdateItemRequest | UpdateItemResponse | Update an item in the wallet |
| DeleteItem | DeleteItemRequest | DeleteItemResponse | Delete an item from the wallet permanently |
DeleteItemRequest¶
Request to delete an item in a wallet
| Field | Type | Description |
|---|---|---|
| item_id | string | ID of item to delete |
DeleteItemResponse¶
Response to DeleteItemRequest
GetItemRequest¶
Request to fetch an item from wallet
| Field | Type | Description |
|---|---|---|
| item_id | string | ID of item in wallet |
GetItemResponse¶
Response to GetItemRequest
| Field | Type | Description |
|---|---|---|
| item_json | string | Item data as a JSON string |
| item_type | string | Type of item specified when item was inserted into wallet |
InsertItemRequest¶
Request to insert a JSON document into a wallet
| Field | Type | Description |
|---|---|---|
| item_json | string | Document to insert; must be stringified JSON |
| item_type | string | Item type (ex. "VerifiableCredential") |
InsertItemResponse¶
Response to InsertItemRequest
| Field | Type | Description |
|---|---|---|
| item_id | string | ID of item inserted into wallet |
SearchRequest¶
Request to search items in wallet
| Field | Type | Description |
|---|---|---|
| query | string | SQL Query to execute against items in wallet |
| continuation_token | string | Token provided by previous SearchResponse if more data is available for query |
SearchResponse¶
Response to SearchRequest
| Field | Type | Description |
|---|---|---|
| items | string[] | Array of query results, as JSON strings |
| has_more | bool | Whether more results are available for this query via continuation_token |
| continuation_token | string | Token to fetch next set of results via SearchRequest |
UpdateItemRequest¶
Request to update item in wallet
| Field | Type | Description |
|---|---|---|
| item_id | string | ID of item in wallet |
| item_type | string | Item type (ex. "VerifiableCredential") |
UpdateItemResponse¶
Response to UpdateItemRequest
services/verifiable-credentials/v1/verifiable-credentials.proto¶
Service - VerifiableCredential¶
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| Issue | IssueRequest | IssueResponse | Sign and issue a verifiable credential from a submitted document. The document must be a valid JSON-LD document. |
| IssueFromTemplate | IssueFromTemplateRequest | IssueFromTemplateResponse | Sign and issue a verifiable credential from a pre-defined template. This process will also add schema validation and revocation registry values to the credential. |
| CheckStatus | CheckStatusRequest | CheckStatusResponse | Check credential status in the revocation registry |
| UpdateStatus | UpdateStatusRequest | UpdateStatusResponse | Update credential status by setting the revocation value |
| CreateProof | CreateProofRequest | CreateProofResponse | Create a proof from a signed document that is a valid verifiable credential and contains a signature from which a proof can be derived. |
| VerifyProof | VerifyProofRequest | VerifyProofResponse | Verifies a proof by checking the signature value, and if possible schema validation, revocation status, and issuer status against a trust registry |
| Send | SendRequest | SendResponse | Sends a document directly to a user's email within the given ecosystem |
CheckStatusRequest¶
Request to check a credential's revocation status
| Field | Type | Description |
|---|---|---|
| credential_status_id | string | Credential Status ID to check. This is not the same as the credential's ID. |
CheckStatusResponse¶
Response to CheckStatusRequest
| Field | Type | Description |
|---|---|---|
| revoked | bool | The credential's revocation status |
CreateProofRequest¶
Request to create a proof for a Verifiable Credential using public key tied to caller.
Either item_id or document_json may be provided, not both.
| Field | Type | Description |
|---|---|---|
| reveal_document_json | string | A valid JSON-LD frame describing which fields should be revealed in the generated proof. If unspecified, all fields in the document will be revealed |
| item_id | string | ID of wallet item stored in a Trinsic cloud wallet |
| document_json | string | A valid JSON-LD Verifiable Credential document string with an unbound signature. The proof will be derived from this document directly. The document will not be stored in the wallet. |
CreateProofResponse¶
Response to CreateProofRequest
| Field | Type | Description |
|---|---|---|
| proof_document_json | string | Valid JSON-LD proof for the specified credential |
IssueFromTemplateRequest¶
Request to create and sign a JSON-LD Verifiable Credential from a template using public key tied to caller
| Field | Type | Description |
|---|---|---|
| template_id | string | ID of template to use |
| values_json | string | JSON document string with keys corresponding to the fields of the template referenced by template_id |
| framework_id | string | Governance framework ID to use with issuance of this credential. If specified, the issued credential will contain extended issuer metadata with membership info for the given ecosystem governance framework (EGF) |
IssueFromTemplateResponse¶
Response to IssueFromTemplateRequest
| Field | Type | Description |
|---|---|---|
| document_json | string | Verifiable Credential document, in JSON-LD form, constructed from the specified template and values; signed with public key tied to caller of IssueFromTemplateRequest |
IssueRequest¶
Request to sign a JSON-LD Credential using public key tied to caller
| Field | Type | Description |
|---|---|---|
| document_json | string | Valid JSON-LD Credential document to be signed, in string form |
IssueResponse¶
Response to IssueRequest
| Field | Type | Description |
|---|---|---|
| signed_document_json | string | Verifiable Credential document, signed with public key tied to caller of IssueRequest |
SendRequest¶
Request to send a document to another user's wallet
| Field | Type | Description |
|---|---|---|
| string | Email address of user to send item to | |
| did_uri | string | DID of recipient (presently unsupported) |
| didcomm_invitation_json | string | DIDComm out-of-band invitation JSON (presently unsupported) |
| document_json | string | JSON document to send to recipient |
SendResponse¶
Response to SendRequest
UpdateStatusRequest¶
Request to update a credential's revocation status
| Field | Type | Description |
|---|---|---|
| credential_status_id | string | Credential Status ID to update. This is not the same as the credential's ID. |
| revoked | bool | New revocation status of credential |
UpdateStatusResponse¶
Response to UpdateStatusRequest
ValidationMessage¶
Result of a validation check on a proof
| Field | Type | Description |
|---|---|---|
| is_valid | bool | Whether or not this validation check passed |
| messages | string[] | If validation failed, contains messages explaining why |
VerifyProofRequest¶
Request to verify a proof
| Field | Type | Description |
|---|---|---|
| proof_document_json | string | JSON-LD proof document string to verify |
VerifyProofResponse¶
Response to VerifyProofRequest
| Field | Type | Description |
|---|---|---|
| is_valid | bool | Whether all validations in validation_results passed |
| validation_messages | string[] | Deprecated. Use validation_results instead |
| validation_results | VerifyProofResponse.ValidationResultsEntry[] | Results of each validation check performed, such as schema conformance, revocation status, signature, etc. Detailed results are provided for failed validations. |
VerifyProofResponse.ValidationResultsEntry¶
| Field | Type | Description |
|---|---|---|
| key | string | |
| value | ValidationMessage |
services/verifiable-credentials/templates/v1/templates.proto¶
Service - CredentialTemplates¶
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| Create | CreateCredentialTemplateRequest | CreateCredentialTemplateResponse | Create a credential template in the current ecosystem |
| Get | GetCredentialTemplateRequest | GetCredentialTemplateResponse | Fetch a credential template by ID |
| List | ListCredentialTemplatesRequest | ListCredentialTemplatesResponse | Search credential templates using SQL, returning strongly-typed template data |
| Search | SearchCredentialTemplatesRequest | SearchCredentialTemplatesResponse | Search credential templates using SQL, returning raw JSON data |
| Delete | DeleteCredentialTemplateRequest | DeleteCredentialTemplateResponse | Delete a credential template from the current ecosystem by ID |
CreateCredentialTemplateRequest¶
Request to create a new template
| Field | Type | Description |
|---|---|---|
| name | string | Name of new template |
| fields | CreateCredentialTemplateRequest.FieldsEntry[] | Fields which compose the template |
| allow_additional_fields | bool | Whether credentials may be issued against this template which have fields not specified in fields |
CreateCredentialTemplateRequest.FieldsEntry¶
| Field | Type | Description |
|---|---|---|
| key | string | |
| value | TemplateField |
CreateCredentialTemplateResponse¶
Response to CreateCredentialTemplateRequest
| Field | Type | Description |
|---|---|---|
| data | TemplateData | Created template |
DeleteCredentialTemplateRequest¶
Request to delete a template by ID
| Field | Type | Description |
|---|---|---|
| id | string | ID of template to delete |
DeleteCredentialTemplateResponse¶
Response to DeleteCredentialTemplateRequest
GetCredentialTemplateRequest¶
Request to fetch a template by ID
| Field | Type | Description |
|---|---|---|
| id | string | ID of template to fetch |
GetCredentialTemplateResponse¶
Response to GetCredentialTemplateRequest
| Field | Type | Description |
|---|---|---|
| template | TemplateData | Template fetched by ID |
GetTemplateRequest¶
Unused
| Field | Type | Description |
|---|---|---|
| id | string |
GetTemplateResponse¶
Unused
| Field | Type | Description |
|---|---|---|
| data | TemplateData |
ListCredentialTemplatesRequest¶
Request to list templates using a SQL query
| Field | Type | Description |
|---|---|---|
| query | string | SQL query to execute. Example: SELECT * FROM c WHERE c.name = 'Diploma' |
| continuation_token | string | Token provided by previous ListCredentialTemplatesResponse if more data is available for query |
ListCredentialTemplatesResponse¶
Response to ListCredentialTemplatesRequest
| Field | Type | Description |
|---|---|---|
| templates | TemplateData[] | Templates found by query |
| has_more_results | bool | Whether more results are available for this query via continuation_token |
| continuation_token | string | Token to fetch next set of resuts via ListCredentialTemplatesRequest |
ListTemplatesRequest¶
Unused
ListTemplatesResponse¶
Unused
| Field | Type | Description |
|---|---|---|
| templates | TemplateData[] |
SearchCredentialTemplatesRequest¶
Request to search templates using a SQL query
| Field | Type | Description |
|---|---|---|
| query | string | SQL query to execute. Example: SELECT * FROM c WHERE c.name = 'Diploma' |
| continuation_token | string | Token provided by previous SearchCredentialTemplatesResponse if more data is available for query |
SearchCredentialTemplatesResponse¶
Response to SearchCredentialTemplatesRequest
| Field | Type | Description |
|---|---|---|
| items_json | string | Raw JSON data returned from query |
| has_more | bool | Whether more results are available for this query via continuation_token |
| continuation_token | string | Token to fetch next set of results via SearchCredentialTemplatesRequest |
TemplateData¶
Credential Template
| Field | Type | Description |
|---|---|---|
| id | string | Template ID |
| name | string | Template name |
| version | int32 | Template version number |
| fields | TemplateData.FieldsEntry[] | Fields defined for the template |
| allow_additional_fields | bool | Whether credentials issued against this template may contain fields not defined by template |
| schema_uri | string | URI pointing to template JSON schema document |
| context_uri | string | URI pointing to template JSON-LD context document |
| ecosystem_id | string | ID of ecosystem in which template resides |
| type | string | Template type (VerifiableCredential) |
| created_by | string | ID of template creator |
TemplateData.FieldsEntry¶
| Field | Type | Description |
|---|---|---|
| key | string | |
| value | TemplateField |
TemplateField¶
A field defined in a template
| Field | Type | Description |
|---|---|---|
| description | string | Human-readable description of the field |
| optional | bool | Whether this field may be omitted when a credential is issued against the template |
| type | FieldType | The type of the field |
FieldType¶
Valid types for credential fields
| Name | Number | Description |
|---|---|---|
| STRING | 0 | |
| NUMBER | 1 | |
| BOOL | 2 | |
| DATETIME | 4 |
services/options/field-options.proto¶
SdkTemplateOption¶
| Field | Type | Description |
|---|---|---|
| anonymous | bool | Whether the service endpoint allows anonymous (no auth token necessary) authentication This is used by the protoc-gen-trinsic-sdk plugin for metadata. |
| ignore | bool | Whether the SDK template generator should ignore this method. This method will be wrapped manually. |
File-level Extensions¶
| Extension | Type | Base | Number | Description |
|---|---|---|---|---|
| optional | bool | .google.protobuf.FieldOptions | 60000 | Whether field is optional in Trinsic's backend. This is not the same as an optional protobuf label; it only impacts documentation generation for the field. |
| sdk_template_option | SdkTemplateOption | .google.protobuf.MethodOptions | 60001 |
services/debug/v1/debug.proto¶
Service - Debugging¶
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| CallEmpty | .google.protobuf.Empty | .google.protobuf.Empty | |
| CallEmptyAuth | .google.protobuf.Empty | .google.protobuf.Empty |
services/event/v1/event.proto¶
APICall¶
| Field | Type | Description |
|---|---|---|
| source | string | |
| request | bytes | |
| response | bytes |
EGFCreated¶
Entity Governance Framework created and attached to ecosystem
| Field | Type | Description |
|---|---|---|
| id | string | UUID of the governance framework |
| ecosystem_id | string | UUID of the ecosystem that owns this EGF |
| trust_registry | string | Trust registry associated with this EGF |
| governing_authority | string | Wallet ID of the authority for this EGF |
| type | string | Type of EGF |
| name | string | User-friendly name for the EGF |
| description | string | Description of the EGF |
| governance_framework | string | URI for the EGF |
Event¶
Event
| Field | Type | Description |
|---|---|---|
| id | string | UUID of event |
| type | EventType | Type of event |
| timestamp | string | Timestamp event occurred, in ISO 8601 format (ex. 2022-07-07T08:09:10.11Z) |
| data | bytes | Event-specific payload, as an encoded protobuf message |
ItemReceived¶
Item inserted into wallet
| Field | Type | Description |
|---|---|---|
| id | string | UUID of the new item |
| received | string | Timestamp when the item was received, in ISO 8601 format (ex. 2022-07-07T08:09:10.11Z) |
Ping¶
Webhook test event
| Field | Type | Description |
|---|---|---|
| id | string | UUID of this ping |
| webhook_id | string | UUID of the webhook receiving the ping |
| timestamp | string | Timestamp ping was requested, in ISO 8601 format (ex. 2022-07-07T08:09:10.11Z) |
| message | string | Arbitrary message specified when ping was requested |
TemplateCreated¶
Template created in ecosystem
| Field | Type | Description |
|---|---|---|
| id | string | UUID of the template |
| ecosystem_id | string | UUID of the ecosystem that owns this template |
| name | string | Template name |
| type | string | Template type |
| created_by | string | WalletID that created the template |
EventType¶
All event types
| Name | Number | Description |
|---|---|---|
| PING | 0 | |
| LOG | 1 | |
| EGF_CREATED | 5 | |
| EGF_MEMBER_REGISTERED | 6 | |
| EGF_MEMBER_UNREGISTERED | 7 | |
| TEMPLATE_CREATED | 10 | |
| TEMPLATE_DELETED | 11 | |
| WALLET_CREATED | 15 | |
| ITEM_RECEIVED | 16 |
File-level Extensions¶
| Extension | Type | Base | Number | Description |
|---|---|---|---|---|
| event_type | EventType | .google.protobuf.MessageOptions | 60002 | Event type associated with this Event message. |