# CREDO - OWF

In your KYCB Hub, you would use the OpenWallet Foundation (OWF) Credo-TS plugins to turn your simple Solana wallet into a "Financial Identity Agent."

Because Credo is a modular framework, the core handles the "plumbing" of identity, while plugins allow you to add specific features without bloating your code. In your case, you use them to bridge Solana on-chain tokens with off-chain W3C credentials.

***

### 1. Key Plugins for your KYCB Hub

#### 🔑 `@credo-ts/askar` (Secure Storage)

This is your most important plugin. Askar is a secure, encrypted storage and key management service implemented in Rust.

<a class="button secondary"></a>

* Why you need it: In an ERP/KYC system, you cannot store user credentials in a standard database or browser `localStorage`.
* The Use Case: It encrypts the user's private keys and Verifiable Credentials (VCs) on their device. Even if someone steals the device, the PII (Personally Identifiable Information) remains locked.

#### 🛂 `@credo-ts/tenants` (Multi-Tenancy)

Since you are building a "Hub" for multiple banks, you need a way to keep their data isolated.

* Why you need it: Instead of spinning up 100 different servers for 100 banks, this plugin allows one AdonisJS instance to manage multiple "virtual" agents.
* The Use Case: "Bank A" and "Bank B" share the same server resources but have completely separate cryptographic keys and credential stores.

#### 📱 `@credo-ts/push-notifications`

When a bank sends a KYC request, the user needs to know immediately.

* Why you need it: It allows your Credo agent to register with FCM (Firebase) or APNs (Apple) to receive real-time alerts.

  <a class="button secondary"></a>
* The Use Case: The bank clicks "Request Passport" in the Adonis Dashboard, and the user gets a push notification on their Vue/Mobile wallet to approve the share.

#### 🔗 `@credo-ts/openid4vc` (The "New Standard")

This is the protocol being adopted by the European Union (EUDI) and major tech firms.

* Why you need it: It replaces older, clunkier ways of issuing credentials with a simple QR code/link system.
* The Use Case: A user scans a QR code on the Bank’s website; this plugin handles the entire "handshake" to securely download the VC into their wallet.

***

### 2. The "Solana Bridge" Plugin Concept

While there isn't a "one-click" Solana plugin yet, you use Credo's Pluggable DID Resolver interface to create a custom bridge for `did:sol`.

* Action: You register a "Solana Plugin" (your own module) that tells Credo: *"When you see a request for `did:sol`, use the Solana Token-2022 program to verify the signature."*

***

### 3. Comparison: Core vs. Plugins

| **Feature**      | **In Credo Core**   | **Added via Plugin**                  |
| ---------------- | ------------------- | ------------------------------------- |
| Credential Logic | Basic W3C structure | Specialized formats like AnonCreds    |
| Networking       | Basic HTTP          | Push Notifications or Bluetooth (BLE) |
| Storage          | None (Memory only)  | Askar (Encrypted SQLite/Postgres)     |
| Multi-Tenancy    | Single Agent        | Tenant Management for multiple banks  |

***

### 4. Why this matters for the "Technical Dept."

When the bank’s IT team asks, *"How do we know the data isn't being leaked on your server?"* you point to your use of the Credo Askar Plugin.

It proves that the "Data in Transit" is handled by a standard, open-source library vetted by the Linux Foundation, not by custom code you wrote in a weekend.

Would you like me to help you write the initialization script for the `@credo-ts/askar` plugin inside your Vue app to secure your user's local storage?
