Getting Started
From a fresh install to your first verified credential. This takes about fifteen minutes and assumes you can reach a server running PHP 8.2+ and MySQL 8+.
Requirements
| Component | Minimum | Notes |
|---|---|---|
| PHP | 8.2+ | With pdo_mysql and openssl extensions enabled. |
| MySQL | 8.0+ | A dedicated database and user with full privileges on it. |
| Web server | Apache or Nginx | Document root = the project root (the marketing site). |
| Dependencies | None | No Composer, no npm, no CDN. Everything is vanilla PHP/HTML/CSS/JS. |
Install BlockID
BlockID ships with a guided web installer. After copying the files to your server and pointing the document root at the project folder, open the installer in your browser:
The installer collects your database host, name, user, and password, tests the connection, imports the schema, creates your first Super Admin account, and writes the configuration file:
config/config.php ← generated by /install/index.php (DB_HOST, DB_NAME, DB_USER, …)
config/config.php, fix the directory permissions (the web user needs write access to config/ during setup) and reload. See Deployment → permissions.First login
The marketing site is the root of the application, and sign-in lives at a clean URL:
Sign in with the Super Admin credentials you created in the installer. On success you land on the dashboard:
In the top-right corner you'll find your profile dropdown (your initials, name, and role) with My Profile, Account Settings, Security Settings, a theme switch, and Sign Out. The sidebar groups collapse, breadcrumbs show where you are, and a dark/light toggle is remembered between visits.
The seven-step path
This is the canonical flow from an empty install to a credential you can verify. You can do all of it from the dashboard UI.
-
Create an organization
Every user, DID, schema, and credential belongs to exactly one organization (strict scoping). As Super Admin, create your first org under Organizations.
-
Create users & assign roles
Add an Org Admin, one or more Issuers, a Verifier, and your End Users. Roles control exactly what each person can see and do.
-
Create a DID
In the DID Registry, generate a decentralized identifier. BlockID mints
did:blockid:{uuid}and an RSA-2048 keypair — the private key signs credentials; the public key lets anyone verify them. -
Create a credential schema
Define the fields a credential will carry (for example
fullName,course,grade,issuedOn). Schemas keep your credentials consistent and machine-readable. -
Issue a credential
Pick a schema and a DID, fill in the values, and choose a holder and optional expiry. BlockID computes a canonical SHA-256 hash, signs it with RSA-SHA256, mints a verification token + QR, and writes a ledger entry.
-
Verify it
Open Verify and paste the verification token, the credential ID, or the credential JSON. You'll get a verdict — VALID when everything checks out — with a per-check breakdown.
-
Check ledger integrity
In the Ledger module, run Verify Ledger Integrity. BlockID re-walks the hash chain and confirms no record has been altered since it was written.
Lock down & clean up
-
Delete the installer
Remove the
/installdirectory the moment setup is done. Leaving it in place is a security risk.rm -rf /path/to/blockid/install -
Confirm sensitive dirs are denied
/config,/core, and/storagemust not be reachable over HTTP. Requesting them should return 403. See Deployment. -
Turn on HTTPS & security headers
Serve everything over TLS and add the recommended headers. Walk the production hardening checklist.
Database.php line 41), don't panic — it's a friendly page that replaces a raw exception. Work through the database error checklist in order.Where to next
How to Use →
The full, illustrated walkthrough for every role.
Admin Guide →
Organizations, users, tokens, and oversight.
API Guide →
Automate everything you just did by hand.