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

# Sphyre Issuers

> React dashboard for organizations that create schemas, issue credentials, and manage requests

# Sphyre Issuers

Sphyre Issuers is the organization dashboard for issuer onboarding, schema and template management, credential issuance, request approval, revocation, and analytics.

<CardGroup cols={2}>
  <Card title="Technology" icon="code">
    **Framework:** React `19.1.0`<br />
    **Build:** Create React App / `react-scripts` `5.0.1`<br />
    **Routing:** `react-router-dom` `7.7.1`<br />
    **Styling:** Tailwind CSS `3.4.3`
  </Card>

  <Card title="UI and Data Libraries" icon="chart-line">
    `lucide-react`<br />
    `react-icons`<br />
    `@heroicons/react`<br />
    `chart.js`, `react-chartjs-2`
  </Card>
</CardGroup>

## Implemented Pages

```text theme={null}
LoginPage
OnboardingPage
SeedPhraseSetup
SetupPinPage
RecoveryPage
RecoverySeedPhrasePage
dashboard/DashboardPage
credentials/CredentialsPage
verification/VerificationPage
settings/SettingsPage
```

## Main Workflows

* Register or authenticate an issuer wallet.
* Create schemas via `POST /api/issuer/:did/schemas`.
* Create and list templates via `POST /api/issuer/:did/templates` and `GET /api/issuer/:did/templates`.
* Review holder credential requests.
* Issue credentials through `POST /api/issuer/:did/issue`.
* Revoke issued credentials through `POST /api/issuer/:did/credentials/:credential_id/revoke`.
* Generate credential offers and QR payloads.
* Track dashboard metrics using Chart.js visualizations.

## Implementation Notes

The dashboard uses local crypto helpers in `src/utils/crypto.js`, API wrappers in `src/services`, layout components under `src/components/layout`, and modal components for schema, template, credential issuance, and PIN confirmation flows.

Use the existing Tailwind and icon-library patterns when extending the interface.

## Implemented API Calls

```text theme={null}
POST /api/issuer/:did/set-auth
POST /api/issuer/:did/authenticate
GET  /api/issuer/:did
PUT  /api/issuer/:did/update

POST /api/issuer/:did/schemas
GET  /api/issuer/:did/schemas
GET  /api/issuer/:did/schemas/:schema_id
PUT  /api/issuer/:did/schemas/:schema_id
DELETE /api/issuer/:did/schemas/:schema_id

POST /api/issuer/:did/templates
GET  /api/issuer/:did/templates
GET  /api/issuer/:did/templates/:template_id
PUT  /api/issuer/:did/templates/:template_id
DELETE /api/issuer/:did/templates/:template_id

POST /api/issuer/:did/issue
GET  /api/issuer/:did/credentials
GET  /api/issuer/:did/credentials/:credential_id
POST /api/issuer/:did/credentials/:credential_id/revoke

GET  /api/issuer/:did/requests
GET  /api/issuer/:did/requests/:request_id
GET  /api/wallet/issuer/:issuer_did/request/:request_id/challenge
POST /api/wallet/issuer/:issuer_did/request/:request_id/approve
POST /api/wallet/issuer/:issuer_did/request/:request_id/reject

POST /api/issuer/:did/offers
GET  /api/issuer/:did/offers
GET  /api/issuer/:did/offers/:offer_id/qr
GET  /api/issuer/:did/statistics
POST /api/wallet/:did/evidence/upload
```

## Operational Notes

* Schema attributes use the backend `attributes` model with `name`, `data_type`, `description`, and `required`.
* Credential templates map schema fields to holder or issuer input and can require evidence labels.
* Issuance creates a credential record, stores credential material through IPFS, and attempts blockchain anchoring when Fortro Engine has a configured blockchain client.
* Revocation updates backend state first and attempts on-chain revocation through the active registry.
