Practitioner Portal
Incorrect password. Please try again.
Not signed in
Complete identity verification first
One-time identity setup. Your keypair is generated on your device and never transmitted. Verification proves to the registry that you are the actual GOC registrant — not someone who looked up your name on the public GOC list.
Details & Keys
GOC Email
ID Upload
Confirmed
Step 1 — Your Details & Identity Keypair
Enter your details exactly as they appear on the GOC register. Your keypair is generated locally — the private key never leaves this device.
Step 2 — Verify Your GOC-Registered Email
We send a one-time verification code to the email address on your GOC registration record. This proves you are the actual registrant — not someone who copied your details from the public GOC list. The email on the GOC register is not public; only you have access to it.
Step 3 — Identity Document Upload
Upload a photo of your GOC registration certificate or a government-issued photo ID. This is reviewed by the RxVerify team (or an automated ID verification service like Onfido/Yoti in production) before your public key is approved on the registry. This step prevents someone from impersonating you even if they know your GOC email.
Option A — GOC Certificate
📄
Click to upload GOC registration certificate
Option B — Photo ID + Selfie
🪪
Click to upload passport / driving licence + selfie
What happens next: Your documents are reviewed within 1 working day (production: within minutes via automated ID verification). You'll receive an email when your public key is approved and live on the registry. Until approved, you can still use the tool locally — your prescriptions will be marked as "pending registry verification".
Step 4 — Verification Submitted
✓ Your identity verification has been submitted successfully.
Name:
GOC:
Email verified:
ID document: Under review (demo: auto-approved)
Registry status: Pending Approval
While pending, your keypair is marked unverified in the registry. Prescriptions you issue are cryptographically signed but verifiers will see a "pending" flag next to your entry. Once approved, all previously issued prescriptions automatically become fully verified — the signature is what matters, not when the registry entry was approved.
Practice identity & locum delegation. A prescription carries two layers: your personal GOC identity and the practice you're prescribing from. Locums link their GOC keypair to each practice via a signed delegation certificate — valid for a defined period.
Two-Layer Identity Model
Layer 1 — Your GOC Identity (permanent)
One keypair per optometrist
Anchored to GOC registration
Never changes between practices
Verified once at registration
Signs every prescription you issue
Layer 2 — Practice Context (per-location)
One keypair per practice
Managed by superintendent OD
Carries branding, address, logo
Locums issued delegation certs
Co-signs prescriptions issued there
Locum example: Dr. Patel works at Vision Express on Monday, Specsavers on Wednesday, and her own practice on Saturday. She has one GOC keypair (hers forever) and three delegation certificates — one from each practice, each time-limited and co-signed by the superintendent. Each prescription shows the correct practice branding and address for that day.
My Practice — Register or Load
If you own or manage a practice, register it here. This generates a practice keypair. If you are a locum, skip to "Locum Delegation" below.
Locum Delegation — Request or Issue a Certificate
A delegation certificate is signed by both parties: the optometrist's GOC keypair and the practice keypair. It authorises the optometrist to prescribe on behalf of the practice for a defined period. In production, the practice superintendent issues this; the locum accepts it.
No practices registered yet. Register a practice above, or add demo practices below.
Import from PMS PDF
Drag your prescription PDF here to auto-populate the form. Patient details and refraction values will be extracted automatically.
📄
Drop Prescription PDF here
or click to browse
Patient Details
Name & DOB are hashed — no PII stored in the signed prescription.
Spectacle Refraction
SphereCylinderAxisAddPrismBase
R (OD)
L (OS)
Recall Period
6 months
1 year
2 years
3 years
Custom…
Paste a signed prescription JSON to verify. In production, pharmacies scan the QR code. Anyone can verify — no account needed.
Paste Signed Prescription JSON
No prescription issued yet. Go to Issue Rx first.
The public registry is how anyone can independently confirm a public key belongs to a GOC-registered optometrist. It also shows practice keypairs and delegation certificates — the full trust chain.
Trust Chain — How Verification Works End to End
🏛
1. GOC — Root of Trust
The GOC public register (optical.org/goc/registrants) is the authoritative source. In production, RxVerify works with the GOC to establish a verified key registry — similar to how NHS Digital operates the NHS Login identity service. The GOC-registered email address is the binding mechanism: only the actual registrant can access that inbox.
🔑
2. Identity Verification — Multi-Factor Binding
Optometrist submits: GOC number + name (public) → verified GOC email OTP (proves inbox access) → photo of GOC certificate or government ID + selfie (proves physical identity). Human review (or automated Onfido/Yoti in production) approves before the public key is published. This prevents anyone from harvesting the public GOC list and impersonating registrants.
📋
3. Transparency Log — Append-Only Public Record
Every key registration, practice registration, delegation certificate, and revocation is written to an append-only transparency log. Entries are chained and timestamped — nothing can be altered retroactively. Anyone can download the full log and audit it. Revocations don't delete entries; they add a signed revocation event, so historical prescriptions remain verifiable.
🏥
4. Practice Layer — Dual Keypairs for Locums
Practices register their own keypair (managed by superintendent). Locums receive signed delegation certificates — valid for a defined period, co-signed by both parties. Every prescription carries both the optometrist's GOC signature and the practice co-signature. Verifiers confirm: is this person GOC-registered? Are they currently delegated to this practice? Both must be true.
5. Dual Cross-Check — Cryptography + GOC Register
Even if RxVerify's registry went offline, verifiers can still cross-reference the GOC number embedded in every prescription directly against the GOC public register. The cryptography proves the prescription is unmodified; the registry + GOC register prove the signer is who they claim to be. No single point of failure.
Live Demo Registry — Registered Optometrists
No entries yet — complete the Register tab to populate this.
Live Demo Registry — Registered Practices
No practices registered yet.
Live Demo Registry — Active Delegation Certificates
No delegation certificates issued yet.
Verify a GOC Number or Public Key
GET /api/v1/registry/optometrist/{goc_number}
GET /api/v1/registry/pubkey/{hex}
GET /api/v1/registry/practice/{practice_id}
GET /api/v1/registry/delegations/{goc_number}
GET /api/v1/registry/log