> For the complete documentation index, see [llms.txt](https://rc.sunbird.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://rc.sunbird.org/learn/readme/workflows.md).

# Workflows

How users, issuers, holders and verifiers move through Sunbird RC — from onboarding to verification.

<figure><img src="https://1708923393-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5AiA9iZeHXWMn8BoXoxo%2Fuploads%2FS1MvdIcHZgmRx1CeOtOK%2Fworkflow.png?alt=media&#x26;token=eef8d060-f91f-4262-8bc1-6987b798f5ed" alt=""><figcaption></figcaption></figure>

The full flow runs from a trusted record to a verified credential. Each step is handled by one of Sunbird RC's two components:

| Step                        | Component                                                            |
| --------------------------- | -------------------------------------------------------------------- |
| Registration and onboarding | Registry                                                             |
| Credential issuance         | Credentials                                                          |
| Credential storage          | Holder's wallet (not part of Sunbird RC)                             |
| Credential verification     | Verifier, using Credentials APIs or any standards-compliant verifier |

You can start at either component. If you use the Registry, records flow from it into issuance. If you only use Credentials, issuance starts from your existing system of record instead.

{% stepper %}
{% step %}

### User registration and onboarding (Registry)

Users can join a registry in three ways:

* Self-registration
* Registration via invitation
* Integration with existing registries
  {% endstep %}

{% step %}

### Verifiable credential issuance (Credentials)

The issuer creates the credential from a trusted record — a Sunbird RC Registry entry or a record from another system — and digitally signs it using a cryptographic key that only the issuer can use (as JSON-LD, JWT, SD-JWT or mdoc, depending on the configured credential format).

The signature is generated with the issuer's private key and attached to the credential, so verifiers can confirm the credential hasn't been altered since it was issued. The public key associated with the issuer's private key can also be included in the credential, letting verifiers check the signature.
{% endstep %}

{% step %}

### Verifiable credential storage (Holder)

Once issued, the credential is stored in an eLocker, digital wallet or other digital storage controlled by the credential holder. The wallet gives the holder a secure, convenient way to manage and share their credentials with others.
{% endstep %}

{% step %}

### Verifiable credential verification (Verifier)

When the holder presents a credential to an accepting party or verifier — such as a potential employer — the verifier checks its authenticity using cryptographic techniques. Verifying the issuer's digital signature confirms that the credential hasn't been tampered with since it was issued, and checking its status confirms it hasn't been revoked.
{% endstep %}
{% endstepper %}

## Wallet-based flows

The Credentials component also supports standards-based flows that work with **any compliant wallet**, not just a Sunbird-built one. These are provided by the optional OID4VC service.

{% tabs %}
{% tab title="Issuance (OpenID4VCI)" %}
The issuer publishes a credential offer; the wallet resolves it, exchanges a pre-authorized code for an access token, and fetches the signed credential directly into wallet storage — a standardized, wallet-interoperable alternative to manual download.
{% endtab %}

{% tab title="Verification (OpenID4VP)" %}
The verifier describes the claims it needs using DCQL; the wallet returns a signed presentation containing only those claims, which the verifier checks against the issuer's public key.
{% endtab %}
{% endtabs %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://rc.sunbird.org/learn/readme/workflows.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
