The Paper Problem
Every vessel subject to MARPOL Annex V must maintain a Garbage Record Book (GRB) — a chronological log of every piece of garbage generated, discharged, or incinerated at sea. In practice, this means paper forms that crew members fill out by hand, sign with a wet ink signature, and store in a binder that lives somewhere in the bridge.
The problems with this approach are well-known but rarely discussed openly:
- Illegible handwriting makes records difficult to verify during port state control inspections
- Missing signatures or incomplete entries create compliance gaps that can result in fines
- No automated compliance checking — crew don’t know a discharge is illegal until a port inspector tells them
- Hash chain integrity — paper records can be altered retroactively without detection
- No offline capability — many vessels still rely on paper because connectivity at sea is unreliable
- No audit trail — there’s no tamper-evident history of who changed what and when
The IMO’s 2023 guidelines on electronic record books acknowledge that digital solutions are permissible, but the industry has been slow to adopt. dGRB v2 is built to change that.
Getting started
The dGRB app is live at https://dgrb.ingeniat.eu — no signup required.
Demo account (frontend login):
[email protected]/admin123— admin role
What dGRB v2 Does
dGRB v2 is a fully offline-capable Digital Garbage Record Book that runs entirely in the browser of any device on the vessel — tablet, bridge workstation, or officer’s laptop. No server connectivity required to create, sign, or store entries. When connectivity is available, data syncs to a shore-based server for fleet management and regulatory oversight.
Cryptographic Signing & Hash Chain Integrity
Every entry is signed with the officer’s PIN using HMAC-SHA256 before being written to the record. Each entry also extends a SHA-256 hash chain — every new entry includes a hash of the previous entry’s data, creating an immutable, tamper-evident chain. If someone alters a past entry, the hash chain breaks and the tampering is detectable.
This is not just compliance theater. It’s the same cryptographic technique used in financial ledgers and supply chain logging — and it works entirely offline, with no blockchain needed.
Real-Time MARPOL Compliance Checking
Before an officer signs off on an entry, dGRB v2 runs a compliance check against the current position, garbage category, disposal method, and applicable special area rules. It evaluates:
- Distance from shore — different categories require different minimum distances (3nm, 12nm, etc.)
- Special areas — Mediterranean, Baltic, North Sea, Red Sea, Persian Gulf, Antarctic, and Arctic all have additional restrictions
- Particle size requirements — ground food waste must be ≤25mm to discharge between 3–12nm from shore
- HME cargo classification — Hazardous and Noxious Substances cargo residues require specific handling
- Flag state configuration — vessels can configure their flag state’s specific MARPOL discharge rules
If a discharge would be illegal, the officer sees a clear violation message before signing. The compliance result is stored with the entry.
Offline-First Architecture
The entire application — including the compliance engine, cryptographic functions, and database — runs client-side in the browser using WebAssembly and IndexedDB. An entry created at 400 nautical miles from the nearest server is identical in integrity and cryptographic validity to one created in port with a fiber connection.
Sync to the shore server is opportunistic: when connectivity is available, entries are pushed up with their full hash chain and audit trail. Shore-based environmental officers and fleet managers can review fleet-wide compliance, identify gaps, and monitor sync status.
Role-Based Access Control
Three roles with distinct permissions:
| Role | Access |
|---|---|
| Officer | Create and sign GRB entries, view assigned vessel’s data |
| Viewer | Read-only access to assigned vessel’s GRB data |
| Admin | Full fleet access, user management, configuration |
The auth system is token-based with httpOnly JWT cookies, meaning credentials are never stored in browser localStorage where they’d be vulnerable to XSS. Officers log in once per session; the token persists across page refreshes.
The Human Factors
Every digital compliance tool competes with the fundamental truth that crew are busy and forms are annoying. dGRB v2 was designed around this reality.
Entry wizard, not blank form. The 7-step entry flow — Vessel → Category → Amount → Position → Method → Review → Sign-off — guides the officer through exactly what the record requires. There’s no ambiguity about what fields are mandatory or in what format coordinates should be entered.
GPS auto-capture. The position step can auto-capture from the device’s GPS with a single button press. Manual coordinate entry is also available. The compliance engine immediately evaluates the position against the selected category and disposal method.
PIN-based signing. No wet ink, no countersignature, no witness. The officer enters their PIN, the entry is cryptographically signed with their identity bound to the record. The PIN is salted and hashed — not stored in plaintext anywhere.
Clear compliance feedback. Before signing, officers see a plain-language compliance result: “All compliance checks passed” or a specific list of violations with distance and particle size requirements. This isn’t just record-keeping — it’s crew education in real time.
Technical Architecture
Built on a stack chosen for longevity and auditability:
- Frontend: React 19, TypeScript, Vite 8, CSS Modules
- Compliance Engine: Pure TypeScript, no external MARPOL library — rules are implemented directly from the regulatory text
- Crypto: Web Crypto API (SubtleCrypto) for all hashing and HMAC operations — works in any modern browser
- Storage: IndexedDB (via Dexie.js) for structured local storage; cryptographic operations use the browser’s built-in crypto module
- Backend: Express.js, JWT (httpOnly cookies), file-based JSON store (production deployments should use PostgreSQL)
- Sync: Background sync with hash chain validation — a corrupted or incomplete chain is rejected on the server side
The compliance engine implements MARPOL Annex V as amended, including the 2016 modified annex which introduced the garbage categorization system (A–J) and the special area designations. Flag state-specific rules are configurable per vessel.
Deployment Options
Self-hosted: The backend is a single Express.js service with a file-based or database backend. Deploy to any VPS, container platform, or on-premise server. The frontend is a static build that can be served from any web server or served directly from the backend.
Air-gapped vessels: The frontend build can be installed directly on a vessel’s local server and served over the ship’s internal network. No external connectivity required for any core function.
Conclusion
dGRB v2 treats environmental compliance as what it actually is: an operational process with real-time constraints, real consequences for violations, and real value when done correctly.
The hash chain doesn’t lie. The compliance engine doesn’t guess. And the offline-first architecture means the record is complete whether the satellite link is up or down.
* MARPOL Annex V compliance is the vessel operator’s responsibility. dGRB v2 is a recording tool and does not constitute legal advice.
