Trust Center
Every HazSeal verdict is traceable to an edition, a set of articles and a data manifest. This page explains where the data comes from and what we do when we cannot verify something.
ADR 2025 data extracted from the official UNECE text (ECE/TRANS/352), dual-extraction verified, manifest edda6235.
The engine refuses to load any dataset whose sha256 does not match the pinned manifest, and refuses records not stamped ADR2025 — it fails closed, never open.
- The edition seal
- edition: ADR2025 · records: 2939 · manifest: edda6235 · rules: f3089d9a
- Current head
- 6cbfdb4a
- Last anchor
- 2026-09-16 03:10:01 UTC
Every API answer carries { edition: ADR2025, articles, manifest: edda6235, generatedAt } so an auditor can reproduce it against the exact same text.
Declared exceptions
A sealed evidence file must not be rewritten (Constitution §8). When an exception is granted by the guardian, it is named here with both versions — never a silent pardon.
On 6 August a sealed evidence file's two lines were corrected after sealing. The content moved toward the truth; the method was wrong — both versions remain in history. Detail ▸
- File
- data/audit/a_inis13_son.md
- Class
- Constitution §8 violation
- Date
- 6 August
- What changed
- iki satır — ata sayısı 26 → 28 · birleşim satırı yüzey/uç commit'leriyle netleştirildi
- Ruling
- İçerik gerçeğe YAKLAŞTI (26 sayısı yanlıştı, 28 doğrudur), yöntem YANLIŞ: mühürlenmiş bir kanıt dosyasının geçmiş satırı yeniden yazılamaz; düzeltme yeni bir kayıtla (ekleme) yapılmalıydı. İki sürüm de tarihte kalır, hiçbiri silinmez.
▸ Technical basis
▸ Technical: data/audit/a_inis13_son.md · ANAYASA_8_IHLALI · blob 17004c8d → 1ad7213a · content 753a1552 → 62497c83 · declared 2026-08-16
Data provenance
IMDG 41-22 TR Dangerous Goods List: T.C. UAB Turkish publication (unofficial translation; English text prevails), dual-line extract + bekçi-sealed canon, manifest 7eab27ec · 3075 records / 2336 UNs. Part 7 matrix/categories provisionally from mutually-agreed Hat-A rules (status both) until B’s sealed rules canon lands.
Mixed packing (MP) rules: ADR 4.1.10.4 canonical dataset (mp_rules) — 24 records (22 OK + 1 RESERVED + 1 table). Live packing ladder decisions seal against this pin; a verdict without this künye is refused.
Class 1 quantity basis (NEQ): ADR 1.1.3.6.3 / 1.2.1 — when net explosive mass is not declared, the engine assumes the whole gross mass is explosive and surfaces that assumption on every result surface.
Overpack (same pallet) — ADR 5.1.2, verbatim clauses; the engine re-derives the rule from the stored text at run time.
Künye history — which dataset fingerprint was current in which period. A seal is verified against the künye of the day it was issued, not today's; this table is what makes that checkable. It is derived from the repository's own tags and commits, never typed by hand.
Ayırma grupları (SGG) — birlikte paketleme kararının dayanağı: IMDG 7.2.5 sütun 16b + ADR 4.1.1.6 dört ölçüt.
Condition summaries (human TR/EN): plain-language lines for the ladder upper layer. Not regulation text; missing codes show “condition summary not written yet” and never invent wording. Künye sha8 07b9f04e.
- Ambalajlama talimatları (123 kayıt) yüklü — henüz hüküm üretmiyor (Faz-2).
- Ambalaj sözlüğü yüklü — henüz hüküm üretmiyor (Faz-2).
- Ambalaj işaretleri (15 kayıt) yüklü — henüz hüküm üretmiyor (Faz-2). packaging_marks künye tarihçesinde açık pencereyle kapsanıyor (sha8 8bdff298).
Künye validity windows
Doctrine 21: a seal is verified in its own era. Which künye was current when is not a claim we ask you to take on trust — these are the windows /verify judges every seal against, derived from git by pipeline/build_manifest_history.py. The gate column marks the sets the landing gate pins before a release may ship.
| Dataset | Künye | Valid from | Valid until | Tag | Landing gate |
|---|---|---|---|---|---|
| condition_summaries | f234c52f | 2026-08-05 | 2026-08-16 | v1.12-muhur | ✓ |
| condition_summaries | 07b9f04e | 2026-08-16 | current | v1.14-muhur | ✓ |
| imdg | 2962c37f | 2026-08-02 | 2026-08-03 | — | — |
| imdg | 7eab27ec | 2026-08-03 | current | v1.3-muhur | — |
| imdg_rules | 633a1df2 | 2026-08-03 | 2026-08-03 | — | — |
| imdg_rules | f1e69225 | 2026-08-03 | 2026-08-03 | v1.3-muhur | — |
| imdg_rules | b6a9dc11 | 2026-08-03 | current | v1.7-muhur | — |
| mp_rules | dc879ee4 | 2026-08-03 | 2026-08-03 | — | ✓ |
| mp_rules | 67e40fbc | 2026-08-03 | 2026-08-04 | v1.8-muhur | ✓ |
| mp_rules | 707ee480 | 2026-08-04 | 2026-08-04 | v1.9-muhur | ✓ |
| mp_rules | dc6bc5a6 | 2026-08-04 | 2026-08-05 | — | ✓ |
| mp_rules | a2609b87 | 2026-08-05 | current | v1.12-muhur | ✓ |
| neq_rules | 2ac43282 | 2026-08-04 | current | v1.11-muhur | — |
| overpack_rules | 4ac381be | 2026-08-05 | current | v1.12-muhur | ✓ |
| p200_footnotes | 61099195 | 2026-08-17 | current | v1.15-muhur | — |
| packaging_dictionary | 3bbe384e | 2026-08-06 | 2026-08-17 | v1.13-muhur | ✓ |
| packaging_dictionary | 33ab4e2f | 2026-08-17 | current | v1.15-muhur | ✓ |
| packaging_marks | 8bdff298 | 2026-08-18 | current | v1.16-muhur | — |
| packing_instructions | 1aef2e98 | 2026-08-05 | 2026-08-05 | — | ✓ |
| packing_instructions | 04607c36 | 2026-08-05 | current | v1.12-muhur | ✓ |
| rules | f3089d9a | 2026-08-02 | current | v1.1-muhur | — |
| segregation | e8c66857 | 2026-08-06 | 2026-08-17 | v1.13-muhur | ✓ |
| segregation | 07e33051 | 2026-08-17 | current | v1.15-muhur | ✓ |
| special_packing_codes | a453254a | 2026-08-16 | current | v1.15-muhur | — |
| tableA | dbdb64bb | 2026-08-02 | 2026-08-05 | v1.1-muhur | ✓ |
| tableA | edda6235 | 2026-08-05 | current | v1.12-muhur | ✓ |
15 künyeli set · 8'i iniş kapısında · 15'si motor açılış kilidinde · mühür yalnız karara girenleri damgalar.
Source lineage
Our data is derived from official, publicly available state/UN publications; each source identity is below.
lineage künye: fa02bd0d · measured: 2026-08-17
| Source | Publisher | sha8 | Edition stamp |
|---|---|---|---|
| Republic of Türkiye MoTI (UAB), IMDG Code 41-22 Turkish Vol. 1–2 (uhdgm.uab.gov.tr — BYTE-equal local raw) | T.C. Ulaştırma ve Altyapı Bakanlığı (UAB) | ddbb7a16 · 8c3fd9c0 | AMENDMENT 41-22 |
| Republic of Türkiye MoTI (UAB), ADR 2023 Turkish Vol. 1–2 (uhdgm.uab.gov.tr — baskı-tespiti sha) | T.C. Ulaştırma ve Altyapı Bakanlığı (UAB) | 57cce5b2 · b12da356 | ADR 2023 TR · Cilt 1 vurgusuz · ADR 2023 TR · Cilt 2 vurgusuz |
| UNECE, ADR 2025 ECE/TRANS/352 (English Vol. I–II; local raw sha measured — remote UNECE byte N/A here: 403) | UNECE | abb98cda · 702d0ae5 | ADR applicable as from 1 January 2025 · ECE/TRANS/352 (Vol.I) · ADR applicable as from 1 January 2025 · ECE/TRANS/352 (Vol.II) |
Decision-dataset pin set
edition: ADR2025 · records: 2939 · manifest: edda6235 · rules: f3089d9a
edition: IMDG41-22TR · records: 3075 · uns: 2336 · dgl: 7eab27ec · rules: b6a9dc11
edition: ADR2025 · MP rules · records: 24 (22 OK + 1 RESERVED + 1 table) · manifest: a2609b87 · source: ADR 4.1.10.4
edition: ADR2025 · NEQ rules · manifest: 2ac43282 · source: ADR 1.1.3.6.3 / 1.2.1
edition: ADR2025 · overpack rules · manifest: 4ac381be · source: ADR 5.1.2
künye history · windows: 26 (current: 14) · tags: 20 · manifest: c4353fa6 · derived from git by pipeline/build_manifest_history.py
edition: IMDG41-22TR · segregation groups: 18 · UN: 954 (çift hat mutabık 953, ayrışan 1) · gözlenen aile çifti: 89 · manifest: 07e33051 · source: IMDG 7.2.5 + ADR 4.1.1.6
edition: ADR2025 · condition summaries · coverage 12/31 · sha8: 07b9f04e · human TR/EN (not regulation text)
Loaded, but not deciding. These datasets are extracted, hash-pinned and published — and they produce no verdict yet. We list them so their absence from the decision künye set above is a stated fact rather than a silence.
Ambalajlama talimatları (123 kayıt) yüklü — henüz hüküm üretmiyor (Faz-2).
▸ Technical basis
packing instructions (ADR 4.1.4) · instructions: 123 · manifest: 04607c36 · VERİ YÜKLÜ — HENÜZ KARAR ÜRETMİYOR (Faz-2)
Ambalaj sözlüğü yüklü — henüz hüküm üretmiyor (Faz-2).
▸ Technical basis
packaging dictionary (ADR 4.1.4 / 3.5.1.2 / 3.4) · instructions: ? · manifest: 33ab4e2f · VERİ YÜKLÜ — HENÜZ KARAR ÜRETMİYOR (Faz-2)
Ambalaj işaretleri (15 kayıt) yüklü — henüz hüküm üretmiyor (Faz-2). packaging_marks künye tarihçesinde açık pencereyle kapsanıyor (sha8 8bdff298).
▸ Technical basis
packaging_marks · records: 15 · manifest: 8bdff298 · rol: YÜKLÜ, karar üretmiyor · K7: packaging_marks künye tarihçesinde açık pencereyle kapsanıyor (sha8 8bdff298).
Seal ledger transparency record
The earliest records on this chain belong to the development and test period.
Total records: 19 · test/demo: 11 · declarant not recorded: 8 · declarant recorded: 0
No record was deleted. Deletion is unacceptable on a chain that claims tamper-evidence.
▸ Technical basis
Counts are read from seals/chain.jsonl on each request (same file as the nightly anchor count). Classes: test/demo = declarant.kind TEST|DEMO or test:true or known smoke names; declarant not recorded = empty/missing name; declarant recorded = named non-test declarant (Beyan Esası — a name was stored, not an identity check). No row is invented.
Chain Anchor
The Bronze seal ledger is hash-chained: the head (hash of the last record) commits to every byte of every record before it. We periodically publish this head hash — an external immutability anchor. Anyone holding a published head can re-verify that the ledger was not rewritten.
- Current head
- 6cbfdb4a
- Records
- 19
- Last anchor
- 2026-09-16 03:10:01 UTC
Fail-closed by design
The ADR 2025 Volume II rules (7.5.2 mixed loading matrices, 8.6.4 tunnel table, 5.3 placarding) are now verified and sealed (rules manifest f3089d9a) — the former NEEDS_REVIEW fallbacks and split-code assumptions were replaced by verbatim-grounded verdicts. Anything still not derivable from the sealed data (e.g. EHS status per 2.2.9.1.10, carriage temperature) is surfaced as an explicit check prompt, never guessed.
Modes and licensing
Road (ADR) is live. Road + Sea (ADR + IMDG 41-22TR) is live as v0 (segregation / stowage / EmS) with honest edition and translation notes.
The edition seal
Every API answer carries { edition: ADR2025, articles, manifest: edda6235, generatedAt } so an auditor can reproduce it against the exact same text.
{
"result": { ... },
"basis": {
"edition": "ADR2025",
"articles": ["1.1.3.6.3", "1.1.3.6.4"],
"manifest": "edda6235",
"generatedAt": "2026-08-01T12:00:00.000Z"
}
}Personal data
HazSeal collects as little personal data as it can and says exactly what it does with it. Today the only personal data we store is the waitlist e-mail address, and only with your explicit consent.
Data controller: Doğan Kirden (sole proprietorship — this will be updated once the business is incorporated).
Retention: kept until the launch-notification purpose ends, at the latest 6 months after launch. If you withdraw your consent, the record is deleted immediately.
- ·Waitlist: e-mail address only, stored solely to notify you about the product launch / founder pre-sale, on the legal basis of your explicit consent (KVKK m.5/1, GDPR art.6(1)(a)). The consent record keeps the timestamp and the version of the notice you accepted.
- ·Compliance checks: the UN numbers and quantities you enter are processed to compute the verdict. Optional SDS PDF uploads are processed in memory and discarded — never stored. Seal records store a hash of the checked payload and its edition basis — not your identity.
- ·No advertising, no profiling, no sale of data to third parties, and no transfer of waitlist e-mails to anyone else.
- ·Erasure or access: send us an e-mail and your waitlist record is removed. We answer within 30 days (KVKK m.11 / m.13, GDPR art.15-17).
- ·Empty-search log: when a search returns no result we store only the query text, timestamp and UI language — no IP address, user id or cookie — so the synonym dictionary can improve; this is not personal data processing.
Data requests: kvkk@hazseal.comkvkk-2026-08-v2