# Provider Level Operations ## Organizations ``` CreateOrganization() ListOrganizations GetOrganization RemoveOrganizationFromEcosystem ``` ```json= AgentController: { id: string name: string } ``` ## Credential Templates ``` createCredentialTemplate(CredentialTemplate template) ``` ``` CredentialTemplate { Manifest: {...} Schema: {..} } ``` ``` Manifest: { } ``` ## Proof Templates ## Registry ## Analytics # Issuance https://w3c-ccg.github.io/vc-http-api/#/Issuer/issueCredential https://learn.mattr.global/api-ref#operation/createCredential https://docs.trinsic.id/reference#createcredential ## Operations ```javascript createCredential sendCredential revokeCredential ``` ## Models ``` { "credential": { "@context": [ "https://www.w3.org/2018/credentials/v1", "https://www.w3.org/2018/credentials/examples/v1" ], "id": "http://example.gov/credentials/3732", "type": [ "VerifiableCredential", "UniversityDegreeCredential" ], "issuer": "did:example:123", "issuanceDate": "2020-03-16T22:37:26.544Z", "credentialSubject": { "id": "did:example:123", "degree": { "type": "BachelorDegree", "name": "Bachelor of Science and Arts" } } }, "options": { "verificationMethod": "did:example:123#z6MksHh7qHWvybLg5QTPPdG2DgEjjduBDArV9EF9mRiRzMBN", "proofPurpose": "assertionMethod", "created": "2020-04-02T18:48:36Z", "domain": "example.com", "challenge": "d436f0c8-fbd9-4e48-bbb2-55fc5d0920a8" } } ``` # Verifier https://w3c-ccg.github.io/vc-http-api/#/Verifier/verifyPresentation https://identity.foundation/presentation-exchange/ ## Operations *verifyPresentation* *createPresentationDefinition* ## Models ``` VerifiablePresentationRequest { "verifiablePresentation": { "@context": [ "https://www.w3.org/2018/credentials/v1", "https://www.w3.org/2018/credentials/examples/v1" ], "holder": "did:example:123", "type": "VerifiablePresentation", "verifiableCredential": [ { "@context": [ "https://www.w3.org/2018/credentials/v1", "https://www.w3.org/2018/credentials/examples/v1" ] }, { "id": "http://example.gov/credentials/3732" }, { "type": [ "VerifiableCredential", "UniversityDegreeCredential" ] }, { "issuer": "did:example:123" }, { "issuanceDate": "2020-03-16T22:37:26.544Z" }, { "credentialSubject": { "id": "did:example:123", "degree": { "type": "BachelorDegree", "name": "Bachelor of Science and Arts" } } }, { "proof": { "type": "Ed25519Signature2018", "created": "2020-04-02T18:28:08Z", "verificationMethod": "did:example:123#z6MksHh7qHWvybLg5QTPPdG2DgEjjduBDArV9EF9mRiRzMBN", "proofPurpose": "assertionMethod", "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..YtqjEYnFENT7fNW-COD0HAACxeuQxPKAmp4nIl8jYAu__6IH2FpSxv81w-l5PvE1og50tS9tH8WyXMlXyo45CA" } } ], "proof": { "type": "Ed25519Signature2018", "created": "2020-04-02T18:28:08Z", "verificationMethod": "did:example:123#z6MksHh7qHWvybLg5QTPPdG2DgEjjduBDArV9EF9mRiRzMBN", "proofPurpose": "assertionMethod", "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..YtqjEYnFENT7fNW-COD0HAACxeuQxPKAmp4nIl8jYAu__6IH2FpSxv81w-l5PvE1og50tS9tH8WyXMlXyo45CA" } }, "options": { "verificationMethod": "did:example:123#z6MksHh7qHWvybLg5QTPPdG2DgEjjduBDArV9EF9mRiRzMBN", "proofPurpose": "assertionMethod", "created": "2020-04-02T18:48:36Z", "domain": "example.com", "challenge": "d436f0c8-fbd9-4e48-bbb2-55fc5d0920a8" } } ``` ## Scan QR Code # Credential Store ## Models ``` Credential: { state: CredentialState {issued, revoked} @context: [..] subjectId: issuer: {..} template: {..} claims: {..} } CredentialTemplate: { } ``` ## Operations ``` getCredential listCredentials deleteCredential generateProof verifyProof ``` ## Embed in website <hr/> # Story ## I set up an ecosystem *I can use the cli to set up my ecosystem. I'll need to follow some steps,* ### Create a credential template #### Choose a template ``` name? attributes? primary color secondary color t credential create --def=asdf --demo ``` *find the list of supported schemas and who is using them. search based on use case, credential type, etc* I can do quick search on schema.org for what I'm looking for. I can generate a credential very quickly - see who else is currently using the same schemas - see the attributes #### Customize template - add any custom attributes if needed. - Tweak the styling ### Create Issuer Organization(s) #### Invite admins #### linkOrganizationToTemplate ### Create Registry A registry is a list of public organizations and credential templates that can be trusted by a verifier #### Publish Registry on trinsic A registry can be published optionally on trinsic, their own website, or on ION. ## My issuer issues a credential ### createCredential inputs the values to create a w3c verifiable credential ### sendCredential can send a credential to a DID, sms, email. can use QR code, landing page, etc. ## I verify a credential from a holder ### Generate Definition I use a presentation definition ### Submit Proof I submit a proof that includes a definition ## I manage the credentials in my wallet ### ListCredentials ### GetCredential ### DeleteCredential ### *ProposeCredential ### GenerateProof