Protocol Documentation
This page documents the Protobuf Services and Messages which compose the Trinsic API.
Top
services/file-management/v1/file-management.proto
Service - FileManagement
DeleteFileRequest
Request to delete a file from Trinsic's CDN by ID
Field |
Type |
Description |
id |
string |
ID of file to delete |
DeleteFileResponse
Response to DeleteFileRequest
. Empty payload.
File
Contains information about a file stored in Trinsic's CDN
Field |
Type |
Description |
id |
string |
ID of file, generated randomly by Trinsic on upload |
uploader_id |
string |
Wallet ID of uploader |
size |
uint32 |
Size, in bytes, of file |
mime_type |
string |
Uploader-provided MIME type of file |
uploaded |
string |
ISO 8601 timestamp of when file was uploaded to Trinsic |
url |
string |
CDN URL of file |
GetFileRequest
Request to fetch information about a stored file
Field |
Type |
Description |
id |
string |
ID of file to fetch |
GetFileResponse
Response to GetFileRequest
Field |
Type |
Description |
file |
File |
File specified by id parameter of GetFileRequest . |
GetStorageStatsRequest
Request to get statistics about files uploaded by this account
GetStorageStatsResponse
Response to GetStorageStatsRequest
Field |
Type |
Description |
stats |
StorageStats |
Statistics about files uploaded by the calling account |
ListFilesRequest
Request to list files
Field |
Type |
Description |
query |
string |
Query to search with. If not specified, will return the most recent 100 files. |
continuation_token |
string |
Token provided by previous ListFilesRequest if more data is available for query |
ListFilesResponse
Response to ListFilesRequest
Field |
Type |
Description |
files |
File[] |
Files 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 ListFilesRequest |
StorageStats
Represents aggregate statistics of all files uploaded by a single issuer
Field |
Type |
Description |
num_files |
uint32 |
Number of files uploaded by this account |
total_size |
uint64 |
Sum total size of all files, in bytes |
UploadFileRequest
Request to upload a file to Trinsic's CDN
Field |
Type |
Description |
contents |
bytes |
Raw content of file |
mime_type |
string |
MIME type describing file contents |
UploadFileResponse
Response to UploadFileRequest
Field |
Type |
Description |
uploaded_file |
File |
Information about newly-uploaded file |
Top
services/account/v1/account.proto
Service - Account
AccountDetails
Account registration details
Field |
Type |
Description |
name |
string |
Account name |
email |
string |
Email address of account |
sms |
string |
SMS number including country code |
AccountEcosystem
Deprecated
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 |
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
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 |
email |
string |
Email address of account. If unspecified, an anonymous account will be created. |
invitation_code |
string |
Deprecated. DEPRECATED, will be removed April 1st 2023 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. |
SignInRequest
Request for creating or signing into an account
Field |
Type |
Description |
details |
AccountDetails |
Account registration details |
invitation_code |
string |
Deprecated. DEPRECATED, will be removed April 1st 2023 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 |
Email |
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 |
Top
services/event/v1/event.proto
APICall
GovernanceFrameworkCreatedV1
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 |
timestamp |
string |
Timestamp event occurred, in ISO 8601 format (ex. 2022-07-07T08:09:10.11Z ) |
ItemReceivedV1
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 ) |
wallet_id |
string |
ID of wallet |
ecosystem_id |
string |
Ecosystem where this event originated, if any. |
PingV1
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 |
ecosystem_id |
string |
Ecosystem where this event originated, if any. |
TemplateCreatedV1
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 |
timestamp |
string |
Timestamp event occurred, in ISO 8601 format (ex. 2022-07-07T08:09:10.11Z ) |
EventType
All event types
Name |
Number |
Description |
PING |
0 |
|
LOG |
1 |
|
GOVERNANCE_FRAMEWORK_CREATED |
5 |
|
GOVERNANCE_FRAMEWORK_MEMBER_REGISTERED |
6 |
|
GOVERNANCE_FRAMEWORK_MEMBER_UNREGISTERED |
7 |
|
TEMPLATE_CREATED |
10 |
|
TEMPLATE_DELETED |
11 |
|
WALLET_CREATED |
15 |
|
ITEM_RECEIVED |
16 |
|
CREDENTIAL_ISSUED |
17 |
|
File-level Extensions
Extension |
Type |
Base |
Number |
Description |
event_type |
EventType |
.google.protobuf.MessageOptions |
60002 |
Event type associated with this Event message. |
Top
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 |
|
SupportedDidMethod
Enum of all supported DID Methods
https://docs.godiddy.com/en/supported-methods
Name |
Number |
Description |
KEY |
0 |
The did:key method -- all wallets use this by default |
ION |
1 |
The did:ion method -- Sidetree implementation on top of Bitcoin by Microsoft |
INDY |
2 |
The did:sov method -- Hyperledger Indy based by Sovrin Foundation |
Top
services/options/field-options.proto
AnnotationOption
Field |
Type |
Description |
active |
bool |
Is this annotation active |
message |
string |
Custom annotation message to provide |
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. |
no_arguments |
bool |
Whether the SDK template generator should generate this method without arguments, eg ProviderService.GetEcosystemInfo() where the request object is empty |
experimental |
AnnotationOption |
This endpoint is experimental. Consider it in beta, so documentation may be incomplete or incorrect. |
deprecated |
AnnotationOption |
This endpoint is deprecated. It will be removed in the future. |
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 |
|
Top
services/provider/v1/access-management.proto
Service - AccessManagement
Access Management service provides methods to manage access to ecosystem resources
such by assigning roles and permissions to wallet accounts
AddRoleAssignmentRequest
Role management
Field |
Type |
Description |
role |
string |
Role to assign |
email |
string |
Email address of account to assign role. Mutually exclusive with walletId and didUri . |
wallet_id |
string |
Wallet ID of account to assign role to. Mutually exclusive with email and didUri . |
did_uri |
string |
DID URI of the account to assign role. Mutually exclusive with email and walletId . |
AddRoleAssignmentResponse
ListAvailableRolesRequest
Request to fetch the available roles in the current ecosystem
ListAvailableRolesResponse
Field |
Type |
Description |
roles |
string[] |
List of roles |
ListRoleAssignmentsRequest
Request to fetch the list of roles assigned to the current account
Field |
Type |
Description |
email |
string |
Email address of account to list roles. Mutually exclusive with walletId and didUri . |
wallet_id |
string |
Wallet ID of account to list roles. Mutually exclusive with email and didUri . |
did_uri |
string |
DID URI of the account to list roles. Mutually exclusive with email and walletId . |
ListRoleAssignmentsResponse
Field |
Type |
Description |
roles |
string[] |
List of roles |
RemoveRoleAssignmentRequest
Field |
Type |
Description |
role |
string |
Role to unassign |
email |
string |
Email address of account to unassign role. Mutually exclusive with walletId and didUri . |
wallet_id |
string |
Wallet ID of account to unassign role. Mutually exclusive with email and didUri . |
did_uri |
string |
DID URI of the account to unassign role. Mutually exclusive with email and walletId . |
RemoveRoleAssignmentResponse
Top
services/provider/v1/provider.proto
Service - Provider
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 |
Deprecated. External URL associated with your organization or ecosystem entity |
details |
services.account.v1.AccountDetails |
The account details of the owner of the ecosystem |
domain |
string |
New domain URL |
CreateEcosystemResponse
Response to CreateEcosystemRequest
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 |
Deprecated. External URL associated with the organization or ecosystem entity |
display |
EcosystemDisplay |
Display details |
domain |
string |
Domain |
EcosystemDisplay
Field |
Type |
Description |
light |
EcosystemDisplayDetails |
Removed the Dark after discussion with team, as we don't provide a dark UI anywhere (yet) in our platform. EcosystemDisplayDetails dark = 1; |
EcosystemDisplayDetails
EcosystemDisplayDetailsRequest
Field |
Type |
Description |
color |
string |
|
logo_data |
bytes |
|
logo_format |
string |
MIME type of the file |
EcosystemDisplayRequest
Field |
Type |
Description |
light |
EcosystemDisplayDetailsRequest |
Removed the Dark after discussion with team, as we don't provide a dark UI anywhere (yet) in our platform. EcosystemDisplayDetailsRequest dark = 1; |
EcosystemInfoRequest
Request to fetch information about an ecosystem
EcosystemInfoResponse
Response to InfoRequest
Field |
Type |
Description |
ecosystem |
Ecosystem |
Ecosystem corresponding to current ecosystem in the account token |
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 |
GetPublicEcosystemInfoRequest
Request to fetch information about an ecosystem
Field |
Type |
Description |
ecosystem_id |
string |
|
GetPublicEcosystemInfoResponse
Response to InfoRequest
IndyOptions
Options for creation of DID on the SOV network
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
InviteRequest
Request to invite a participant to an ecosystem
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 |
IonOptions
Options for creation of DID on the ION network
Field |
Type |
Description |
name |
string |
Public name of this ecosystem |
domain |
string |
Public domain for the owner of this ecosystem |
domain_verified |
bool |
Trinsic verified the domain is owned by the owner of this ecosystem |
style_display |
EcosystemDisplay |
Style display information |
description |
string |
Description of the ecosystem |
RefreshDomainVerificationStatusRequest
RefreshDomainVerificationStatusResponse
Field |
Type |
Description |
domain |
string |
Domain URL verified |
domain_verified |
bool |
Specifies if the above domain was successfully verified |
RetrieveDomainVerificationRecordRequest
RetrieveDomainVerificationRecordResponse
Response message containing a TXT record content for domain url verification
Field |
Type |
Description |
verification_record_name |
string |
TXT record name to use for domain verification |
verification_record_Value |
string |
TXT code for domain verification |
SearchWalletConfigurationResponse
Field |
Type |
Description |
results |
WalletConfiguration[] |
Results matching the search 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 SearchRequest |
SearchWalletConfigurationsRequest
Search for issuers/holders/verifiers
Field |
Type |
Description |
query_filter |
string |
SQL filter to execute. SELECT * FROM _ WHERE [**queryFilter**] |
continuation_token |
string |
Token provided by previous SearchResponse if more data is available for query |
UpdateEcosystemRequest
Request to update an ecosystem's metadata
Field |
Type |
Description |
description |
string |
New description of the ecosystem |
uri |
string |
Deprecated. New external URL associated with the organization or ecosystem entity |
domain |
string |
New domain URL |
display |
EcosystemDisplayRequest |
Deprecated. Display details |
UpdateEcosystemResponse
Response to UpdateEcosystemRequest
Field |
Type |
Description |
Ecosystem |
Ecosystem |
Current ecosystem metadata, post-update |
UpgradeDidRequest
Request to upgrade a wallet
Field |
Type |
Description |
email |
string |
Email address of account to upgrade. Mutually exclusive with walletId and didUri . |
wallet_id |
string |
Wallet ID of account to upgrade. Mutually exclusive with email and didUri . |
did_uri |
string |
DID URI of the account to upgrade. Mutually exclusive with email and walletId . |
method |
services.common.v1.SupportedDidMethod |
DID Method to which wallet should be upgraded |
ion_options |
IonOptions |
Configuration for creation of DID on ION network |
indy_options |
IndyOptions |
Configuration for creation of DID on INDY network |
UpgradeDidResponse
Response to UpgradeDIDRequest
Field |
Type |
Description |
did |
string |
New DID of wallet |
WalletConfiguration
Strongly typed information about wallet configurations
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) |
IndyOptions.IndyNetwork
Name |
Number |
Description |
Danube |
0 |
|
SovrinBuilder |
1 |
|
SovrinStaging |
2 |
|
Sovrin |
3 |
|
IdUnionTest |
4 |
|
IdUnion |
5 |
|
IndicioTest |
6 |
|
IndicioDemo |
7 |
|
Indicio |
8 |
|
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 |
IonOptions.IonNetwork
Name |
Number |
Description |
TestNet |
0 |
|
MainNet |
1 |
|
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 |
Top
services/trust-registry/v1/trust-registry.proto
Service - TrustRegistry
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.
Field |
Type |
Description |
framework_id |
string |
The ID of the ecosystem governance framework. This ID may be found in the 'trustRegistry' field in the verifiable credential model |
did_uri |
string |
DID URI 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 |
email |
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 |
email |
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 |
Top
services/universal-wallet/v1/universal-wallet.proto
Service - UniversalWallet
Service for managing wallets
DeleteItemRequest
Request to delete an item in a wallet
Field |
Type |
Description |
item_id |
string |
ID of item to delete |
DeleteItemResponse
Response to DeleteItemRequest
DeleteWalletRequest
Request to delete a wallet
Field |
Type |
Description |
email |
string |
Email address of account to delete. Mutually exclusive with walletId and didUri . |
wallet_id |
string |
Wallet ID of account to delete. Mutually exclusive with email and didUri . |
did_uri |
string |
DID URI of the account to delete. Mutually exclusive with email and walletId . |
DeleteWalletResponse
Response to DeleteWalletRequest
. Empty payload.
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
Top
services/verifiable-credentials/v1/verifiable-credentials.proto
Service - VerifiableCredential
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 |
reveal_template |
RevealTemplateAttributes |
Information about what sections of the document to reveal |
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. |
use_verifiable_presentation |
bool |
Wrap the output in a verifiable presentation |
nonce |
bytes |
Nonce value used to derive the proof. If not specified, a random nonce will be generated. This value may be represented in base64 format in the proof model. |
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) |
save_copy |
bool |
Save a copy of the issued credential to this user's wallet. This copy will only contain the credential data, but not the secret proof value. Issuers may use this data to keep track of the details for revocation status. |
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 |
RevealTemplateAttributes
Field |
Type |
Description |
template_attributes |
string[] |
A list of document attributes to reveal. If unset, all attributes will be returned. |
SendRequest
Request to send a document to another user's wallet
Field |
Type |
Description |
email |
string |
Email address of user to send item to |
wallet_id |
string |
Wallet ID of the recipient within the ecosystem |
did_uri |
string |
DID URI of the recipient |
send_notification |
bool |
Send email notification that credential has been sent to a wallet |
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 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
Top
services/verifiable-credentials/templates/v1/templates.proto
Service - CredentialTemplates
AppleWalletOptions
Configuration options for Apple Wallet when
Field |
Type |
Description |
background_color |
string |
Background color, in hex format, of credential when stored in an Apple Wallet. |
foreground_color |
string |
Foreground color, in hex format, of credential when stored in an Apple Wallet. |
label_color |
string |
Label color, in hex format, of credential when stored in an Apple Wallet. |
primary_field |
string |
The ID of the template field which should be used as the primary field of a credential. |
secondary_fields |
string[] |
The secondary fields of the credential. This is a mapping between the order of a secondary field (0 or 1) and the field name. |
auxiliary_fields |
string[] |
The auxiliary fields of the credential. This is a mapping between the order of an auxiliary field (0 or 1) and the field name. |
CreateCredentialTemplateRequest
Request to create a new template
Field |
Type |
Description |
name |
string |
Name of new template. Must be a unique identifier within its ecosystem. |
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 |
title |
string |
Human-readable name of template |
description |
string |
Human-readable description of template |
field_ordering |
CreateCredentialTemplateRequest.FieldOrderingEntry[] |
Optional map describing how to order and categorize the fields within the template. The key of this map is the field name . If not provided, this will be auto-generated. |
apple_wallet_options |
AppleWalletOptions |
Options for rendering the template in Apple Wallet |
CreateCredentialTemplateRequest.FieldOrderingEntry
CreateCredentialTemplateRequest.FieldsEntry
CreateCredentialTemplateResponse
Response to CreateCredentialTemplateRequest
DeleteCredentialTemplateRequest
Request to delete a template by ID
Field |
Type |
Description |
id |
string |
ID of template to delete |
DeleteCredentialTemplateResponse
Response to DeleteCredentialTemplateRequest
FieldOrdering
Ordering information for a template field
Field |
Type |
Description |
order |
int32 |
The order of the field; must be unique within the Template. Fields are sorted by order ascending when displaying a credential. Field orders must be contiguous from 0 to the number of fields minus 1. |
section |
string |
The human-readable name of the section this field appears in; used to group together fields when displaying a credential. Sections must be contiguous with respect to order . |
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 |
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 |
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 |
Deprecated. 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 |
date_created |
string |
Date when template was created as ISO 8601 utc string |
title |
string |
Human-readable template title |
description |
string |
Human-readable template description |
field_ordering |
TemplateData.FieldOrderingEntry[] |
Map describing how to order and categorize the fields within the template. The key of this map is the field name . |
apple_wallet_options |
AppleWalletOptions |
Options for rendering the template in Apple Wallet |
TemplateData.FieldOrderingEntry
TemplateData.FieldsEntry
TemplateField
A field defined in a template
Field |
Type |
Description |
title |
string |
Human-readable name of the field |
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 |
annotations |
TemplateField.AnnotationsEntry[] |
Deprecated. Do not use. Annotations for the field that may be used to add additional information. |
uri_data |
UriFieldData |
How to deal with this URI field when rendering credential. Only use if type is URI . |
TemplateField.AnnotationsEntry
TemplateFieldPatch
A patch to apply to an existing template field
Field |
Type |
Description |
title |
string |
Human-readable name of the field |
description |
string |
Human-readable description of the field |
uri_data |
UriFieldData |
How to deal with this URI field when rendering credential. Only use if type is URI . |
UpdateCredentialTemplateRequest
Request to update display information for a template
UpdateCredentialTemplateRequest.FieldOrderingEntry
UpdateCredentialTemplateRequest.FieldsEntry
UpdateCredentialTemplateResponse
Response to UpdateCredentialTemplateRequest
Field |
Type |
Description |
updated_template |
TemplateData |
The Template after the update has been applied |
UriFieldData
Data pertaining to a URI Field
Field |
Type |
Description |
mime_type |
string |
Expected MIME Type of content pointed to by URI. Can be generic (eg, "image/") or specific ("image/png"). Defaults to "application/octet-stream". |
render_method |
UriRenderMethod |
How to display the URI value when rendering a credential. |
FieldType
Valid types for credential fields
Name |
Number |
Description |
STRING |
0 |
|
NUMBER |
1 |
|
BOOL |
2 |
|
DATETIME |
4 |
|
URI |
5 |
|
UriRenderMethod
How to display a URI value when rendering a credential.
Name |
Number |
Description |
TEXT |
0 |
Display URI as text |
LINK |
1 |
Display URI as a clickable link |
INLINE_IMAGE |
2 |
Display URI as an inline image. Only takes effect if the template field's MIME Type is an image type. |
Top
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; |
Scalar Value Types
.proto Type |
Notes |
C++ |
Java |
Python |
Go |
C# |
PHP |
double |
|
double |
double |
float |
float64 |
double |
float |
float |
|
float |
float |
float |
float32 |
float |
float |
int32 |
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. |
int32 |
int |
int |
int32 |
int |
integer |
int64 |
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. |
int64 |
long |
int/long |
int64 |
long |
integer/string |
uint32 |
Uses variable-length encoding. |
uint32 |
int |
int/long |
uint32 |
uint |
integer |
uint64 |
Uses variable-length encoding. |
uint64 |
long |
int/long |
uint64 |
ulong |
integer/string |
sint32 |
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. |
int32 |
int |
int |
int32 |
int |
integer |
sint64 |
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. |
int64 |
long |
int/long |
int64 |
long |
integer/string |
fixed32 |
Always four bytes. More efficient than uint32 if values are often greater than 2^28. |
uint32 |
int |
int |
uint32 |
uint |
integer |
fixed64 |
Always eight bytes. More efficient than uint64 if values are often greater than 2^56. |
uint64 |
long |
int/long |
uint64 |
ulong |
integer/string |
sfixed32 |
Always four bytes. |
int32 |
int |
int |
int32 |
int |
integer |
sfixed64 |
Always eight bytes. |
int64 |
long |
int/long |
int64 |
long |
integer/string |
bool |
|
bool |
boolean |
boolean |
bool |
bool |
boolean |
string |
A string must always contain UTF-8 encoded or 7-bit ASCII text. |
string |
String |
str/unicode |
string |
string |
string |
bytes |
May contain any arbitrary sequence of bytes. |
string |
ByteString |
str |
[]byte |
ByteString |
string |