> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bluprynt.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Credentials

> Credential types, how a credential is issued, what it contains and how to verify it.

A credential is your organization's on-chain answer to "is this licensed?" or "has this been disclosed?". You define credential types, link each to a form, and the Compliance Hub issues a credential when an application is approved or a filing is submitted. Anyone can then check the credential against the on-chain registry.

## Key concepts

| Term | Meaning |
| - | - |
| **Credential type** | A kind of credential your organization issues, such as *Know Your Issuer* or *Proof of Collateral*. It's registered in the on-chain Credential Registry. |
| **Credential** | One issued instance of a type, for one organization or asset. A credential is a kind of attestation. |
| **Credential Registry** | The on-chain registry that lists credential types and the credentials issued under them. |
| **Compliance Engine Credential ID** | The credential type's identifier in the registry. |
| **Recipient** | The issuer organization or the asset that holds the credential. Set on the [form](/proof/form-manager). |

## How a credential is issued

```mermaid theme={"system"}
flowchart TD
  A[Admin registers a type] --> B[Form uses the type]
  B --> C{Form type}
  C -->|Application| D[Reviewer approves]
  C -->|Filing| E[Issuer submits]
  D --> F[Issuance job runs]
  E --> F
  F --> G[Credential on-chain]
  G --> H[Shown on Watchlist]
```

* **Application** forms issue the credential when the last approver approves. The confirmation reads *This action will approve the application and issue the credential.*
* **Filing** forms issue the credential when the issuer submits. No approval is needed.
* Issuance runs in the background, so the credential can appear a short time after the decision.
* Application forms issue a licence-kind attestation. Filing forms issue a disclosure-kind attestation.

## Manage credential types

<Steps>
  <Step title="Open Credentials">
    Click **Credentials** in the sidebar. The list shows each type, its description and status. Click a type's menu (2) to edit it.

    <Frame caption="Your organization's credential types">
      <img src="https://mintcdn.com/blupryntinc/BHQOL_NZlCg8lnoF/images/proof/credentials-list.webp?fit=max&auto=format&n=BHQOL_NZlCg8lnoF&q=85&s=68515ccaf6870d0210c8a5ffb82bf3dd" alt="Credentials page listing Know Your Issuer and Proof of Collateral as Active, with callouts on New Credential and the first row" width="2880" height="1800" data-path="images/proof/credentials-list.webp" />
    </Frame>
  </Step>

  <Step title="Create a credential type">
    Click **New Credential** (1). Enter a **Credential title** (1) and a **Description** (2). Click **Register credential** (3). The type is published to the Credential Registry and becomes available for issuance.

    <Frame caption="Create credential type">
      <img src="https://mintcdn.com/blupryntinc/BHQOL_NZlCg8lnoF/images/proof/credentials-new.webp?fit=max&auto=format&n=BHQOL_NZlCg8lnoF&q=85&s=03da858585eb06f98536f14d75b52e23" alt="Create credential type dialog filled with an example licence, with callouts on Credential title, Description and Register credential" width="2880" height="1800" data-path="images/proof/credentials-new.webp" />
    </Frame>
  </Step>

  <Step title="Find the registry ID">
    Open an existing type to edit it. **Compliance Engine Credential ID** (1) shows its registry identifier. Click **Copy** (2) to copy it.

    <Frame caption="Edit credential type">
      <img src="https://mintcdn.com/blupryntinc/BHQOL_NZlCg8lnoF/images/proof/credentials-edit.webp?fit=max&auto=format&n=BHQOL_NZlCg8lnoF&q=85&s=d58c9667732c0f77d49c865389ad2462" alt="Edit credential type dialog for Know Your Issuer with the registry ID redacted, and callouts on Compliance Engine Credential ID and Copy" width="2880" height="1800" data-path="images/proof/credentials-edit.webp" />
    </Frame>
  </Step>
</Steps>

## What a credential contains

Bluprynt credentials follow the [W3C Verifiable Credentials](https://www.w3.org/TR/vc-data-model/) data model. A KYI credential has this shape:

```json KYI credential (example values) theme={"system"}
{
  "@context": [
    "https://www.w3.org/2018/credentials/v1",
    "https://schema.bluprynt.com/attestation/v1"
  ],
  "id": "kyi-<subject address>-<timestamp>",
  "type": ["VerifiableCredential", "Attestation"],
  "issuer": "<issuer identifier>",
  "issuanceDate": "2026-01-15T12:00:00.000Z",
  "credentialSubject": {
    "id": "<verified authority address>",
    "wallet": "<verified authority address>",
    "assetSymbol": "EXMPL",
    "attestationClass": "INFORMATIONAL",
    "category": "ISSUER_FILLING",
    "verificationLevel": "ISSUER",
    "status": "VERIFIED"
  },
  "proof": null
}
```

| Field | Meaning |
| - | - |
| `@context` | The W3C and Bluprynt schemas the credential follows |
| `id` | The credential's identifier |
| `type` | Always includes `VerifiableCredential` and `Attestation` |
| `issuer` | Who issued it |
| `issuanceDate` | When it was issued, ISO 8601 |
| `expirationDate` | When it expires, if it does |
| `credentialSubject.wallet` | The verified authority wallet of the asset |
| `credentialSubject.assetSymbol` | The asset's symbol |
| `credentialSubject.attestationClass`, `category`, `verificationLevel` | How the claim was verified |
| `credentialSubject.status` | The claim's status, for example `VERIFIED` |
| `proof` | Signature metadata when present. `null` in the KYI payload. |

The Compliance Hub also keeps a record for each issued credential: its type, issuer, asset, application, jurisdiction, status, issue and expiry dates, and the IPFS content ID of the stored payload.

## Verify a credential

<Steps>
  <Step title="Check it in the Watchlist">
    Open **Watchlist**, then the **Credentials** tab (1). Each row shows the credential, its asset, jurisdiction, status, and issue and expiry dates.

    <Frame caption="Credentials on the Watchlist">
      <img src="https://mintcdn.com/blupryntinc/g347_GY0e0vbB9tj/images/proof/registry-credentials.webp?fit=max&auto=format&n=g347_GY0e0vbB9tj&q=85&s=7620ff3f746e0bf1cb30c5b949af713b" alt="Watchlist Credentials tab with columns Credential, Asset, Jurisdiction, Status, Issued On and Expires On, and a callout on the tab" width="2880" height="1800" data-path="images/proof/registry-credentials.webp" />
    </Frame>
  </Step>

  <Step title="Check the status">
    Trust a credential only when its status is **Active** and it hasn't expired.
  </Step>

  <Step title="Check it outside the Compliance Hub">
    KYI credentials are public. Look one up with [KYI](/tools/kyi) or the [Public API](/api/public/overview).
  </Step>
</Steps>

## Reference

### Credential statuses

| Status | Meaning |
| - | - |
| **Active** | Valid |
| **Pending review** | Not yet active |
| **Deactivated** | Revoked or switched off. Don't rely on it. |

### Supported networks

The attestation service supports KYI verification on Solana, Ethereum and Plume.

## Worked example

You register a credential type *Example Licence*. You create an **Application** form for **Issuer** recipients that uses it. An issuer applies, and your two approvers approve. The issuance job writes the credential on-chain, and it appears on the Watchlist **Credentials** tab as **Active**. An exchange checks the issuer's status with [KYI](/tools/kyi) before listing their token.

## Errors and troubleshooting

| Problem | Cause | What to do |
| - | - | - |
| **New Credential** is missing | You aren't an admin | Ask an Organization Admin. |
| Approved, but no credential yet | Issuance runs in the background | Wait, then reload the **Credentials** tab. |
| Status is **Deactivated** | The credential was switched off | Treat the claim as no longer valid. |

## FAQ

<AccordionGroup>
  <Accordion title="Are credentials private?">
    The type and issued credential are written to the on-chain registry. Your forms and answers stay in your organization.
  </Accordion>
</AccordionGroup>

## Related pages

* [Form manager](/proof/form-manager)
* [Applications](/proof/applications)
* [KYI](/tools/kyi)
* [Proof of Collateral](/tools/proof-of-collateral)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.