# API UML ```plantuml class Attribute { +Id: string +Name: string +Mapping: string +CRUDL() } class Query { +content: string } class CredentialTemplate { + Id: string + Name: string + Attributes: List<Attributes> + URI } class PresentationTemplate { + Id: string + Name: string + Attributes: List<Attributes> + Queries: List<Queries> + URI } class Organization { + Id + Name + List<Members> + Wallet } abstract class Wallet { + Id + List<Roles> + List<Credentials> + List<Presentations> + List<Contacts> } class Individual { + Id + Name + ContactMethod + Wallet } class Credential { + Issuer + CredentialTemplateId + AttributeValues + State } class VerifiableCredential { + @context: array<uri> + id: uri + type: array<string> + credentialSubject: array<CredentialSubject> + issuer: URI | object w/ id prop + issuanceDate: datetime + proof: Proof + expirationDate: datetime + status: enum {revoked| } } class Proof { + type: enum + created: datetime + proofPurpose: enum + verificationMethod: URI + jws } class CredentialSubject { + id: uri + claims<key, value> } class Presentation { + VerifierId + PresentationTemplateId + VerifiedData + State } Organization --> Wallet Individual --> Wallet CredentialTemplate --> Attribute PresentationTemplate --> Attribute PresentationTemplate --> Query ```