> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.adid.dev/llms.txt.
> For full documentation content, see https://docs.adid.dev/llms-full.txt.

# Verifier Onboarding

#### When to use

Your organisation needs to *check* credentials presented by holders — for KYC, age verification, ticket admission, or any other identity-bound flow. Onboarding establishes your verifier identity and creates the workspaces for proof-request templates and trusted-issuers configuration.

#### Before you begin

* A signed-in IDA account.
* An organisation profile (legal name, country, contact email).
* A purpose statement (regulatory or business — used for transparency on user consent screens).

#### Steps

1. Navigate to `/verifier/onboarding`.
   2\. **Step 1 — Organisation details**: name, country, website, primary contact.
2. **Step 2 — Verifier DID**: pick or create a DID — used to sign proof-request envelopes.
3. **Step 3 — Purpose statement**: free text shown on consent screens before holders share data with you. Required by GDPR + EU AI Act ([§12.13](#eu-ai-act)).
4. **Step 4 — Initial trusted issuers**: pre-populate your trust list with the platform-recommended issuers (you can always edit later — §5.5.1).
5. **Step 5 — Submit**.

After submission, your role becomes `verifier`. The Verifier Portal sidebar appears.

#### API

#### Verify

```bash
curl https://adid.dev/api/v1/auth/me \
  -H "Authorization: Bearer $ACCESS_TOKEN"
```

returns `{ "user": { "role": "verifier", "verifierProfile": { "legalName":"...", "did":"did:adi:0xVer...", "purpose":"..." } } }`.

#### Troubleshooting

| Symptom                      | Cause                     | Fix                                 |
| ---------------------------- | ------------------------- | ----------------------------------- |
| Role does not update         | JWT cache                 | Sign out / sign in.                 |
| Cannot pick DID at step 2    | No DIDs yet               | Create one inline (§3.1.2).         |
| Consent screens look generic | Purpose statement missing | Edit `/verifier/profile` to set it. |