---
# System prepended metadata

title: V2 Product Spec - Out of date

---

# V2 Product Spec - Out of date
For the latest spec, go here: https://www.notion.so/trinsic/Okapi-Product-Spec-d412c9f2da9a43c2a239b042a26c269b


In this doc, we'll introduce the products, the product concepts, and the technical concepts for our next platform

Communication Tools:
- Here is a high level view in [video form (5 min)](https://www.loom.com/share/b22f2e53712646b5bd3a10dcc1ac7fcc)
- Here is the [MVP powerpoint](https://streetcredid0-my.sharepoint.com/:p:/g/personal/michael_trinsic_id/EYE97fp-X_VHglFchscCVJYBbg6MikZ-fWMgA-eoY1Fnlg?e=DfvDT4)




### Credential Templates


## SDK
A Trinsic SDK available in most major programming languages and frameworks. The SDK will be a hybrid of remote and local function calls to do all the operations around key management, credential management, and authentication. 

## Robust Architecture
API versioning, end to end test coverage, and container orchestration will be built into the our core backend service from day one. 


# Product Concepts
```plantuml
@startuml
    
  package IssuerService {
      class Credential {
        + Issuer
        + CredentialTemplateId
        + AttributeValues
        + State
        + issuanceDate
        + expirationDate
      }
  }
  
  package VerifierService {
    class Presentation {
        + VerifierId
        + PresentationTemplateId
        + VerifiedData
        + State
      }
  }
  
  package HolderService {
    class Individual {
      + Id
      + Name
      + ContactMethod
      + Wallet
    }
  }
  class Wallet {
     + Id
     + List<Roles>
     + List<Credentials>
     + List<Presentations>
     + List<Contacts>
   }
   
package "Provider Service" {
    class Registry {
      + Id
      + List<Organization>
      + CRUDL()
    } 
    
    class Organization {
        + Id
        + Name
        + List<Members>
        + Wallet
        + List<CredentialTemplate>
        + List<PresentationTemplate>
        + CRUDL()
    }
        
    class CredentialTemplate {
      + Id: string
      + Name: string
      + Attributes: List<Attributes>
      + CRUDL()
    }
    
    class *PresentationTemplate {
      + Id: string
      + Name: string
      + Attributes: List<Attributes>
      + CRUDL()
    }
    
    class Attribute {
      +Id: string
      +Name: string
      +Type: enum
      +CRUDL()
    }
  }
@enduml
```

## Template
A named list of attributes used to describe what is included in a credential.

## Credential
A verifiable credential that includes a list of attributes and values, sent from a specific issuer 

## Wallet
A secure place to store credentials. We will host cloud wallets that are authorized by keys generated in the SDK. All walelts can store, present, and verify credentials

### Capabilities

#### Issuer
Can issue credentials. If an organization is given the Issuer capability, they will have some additional settings in an *issuer configuration*, which specify how a credential should be issued

## Organization
Includes things only a company will need. 

## Individual
Includes things an individual would need.

# Solution Components
A *very* rough draft of the pieces of the SDK + backend
![](https://i.imgur.com/NmyfGnd.png)
Lucid Chart Diagram: https://lucid.app/lucidchart/ec088f19-28f0-438f-b103-ee6de3f72e0a/edit?shared=true

## Provider Service
Everything a provider needs

### Open Questions
- Where will we host a list of trusted organizations?

## Wallet Service
Everything a wallet can do

### Open Questions
- What happens when a wallet is created?

## Issuer Service
Everything a wallet with an issuer capability can do

Lot's of technical decisions to still make
[Tomislav's description of tech components](https://www.notion.so/trinsic/Platform-V2-Tech-Stack-59f1e387994847cd8f56f359355b9790)

[Some Open Questions](https://www.notion.so/trinsic/Implementation-Plan-03816bef94124a34b44744222548a7f6)

# Timeline
## End Goal


# Pricing
We'll start our pricing with the early adopter program. 