# 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