BlockID Portal — Docs

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

ComponentMinimumNotes
PHP8.2+With pdo_mysql and openssl extensions enabled.
MySQL8.0+A dedicated database and user with full privileges on it.
Web serverApache or NginxDocument root = the project root (the marketing site).
DependenciesNoneNo 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:

OPENhttps://your-domain/install/index.php

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, …)
Tip. If the installer can't write 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:

OPENhttps://your-domain/login.php

Sign in with the Super Admin credentials you created in the installer. On success you land on the dashboard:

DASHBOARDhttps://your-domain/dashboard.php

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

Prefer code? Every one of these steps has an API equivalent. Once you've created an API token, jump to the API Guide for issuance, verification, revocation, and DID-creation examples.

Lock down & clean up

  1. Delete the installer

    Remove the /install directory the moment setup is done. Leaving it in place is a security risk.

    rm -rf /path/to/blockid/install
  2. Confirm sensitive dirs are denied

    /config, /core, and /storage must not be reachable over HTTP. Requesting them should return 403. See Deployment.

  3. Turn on HTTPS & security headers

    Serve everything over TLS and add the recommended headers. Walk the production hardening checklist.

If the dashboard shows a database error (for example a message referencing 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

No matching topics on this page.