Deployments
Certichain runs on the Ethereum Sepolia test network only. There is no production deployment; the production launch gate is a later step (P4-S09). This page records the state as of 2026-10-24, taken from the committed manifests, the decision records and the progress tracker.
Admin roles, pause state and registered issuers change without any change in the repository. Run cd blockchain && npm run governance:v03:sepolia (read only) or open the explorer before acting on anything below.
What is on Sepolia
Contract set 0.3.0 (active)
Deployed 2026-10-13 at block 11904844 (ADR-0060), verified on Etherscan. New credentials are issued here.
| Contract | Address |
|---|---|
IssuerRegistry | 0xf401fDe78884bd2a1809BC479Bcb67e0217578fA |
CredentialRegistry | 0x53Fb56822E507bAf5c0221D993108495CE1931ea |
StatusRegistry | 0x59A4298f3aACb6E5EA001C5a94DA7DE731bcB54E |
HolderRegistry | 0x58659C14c955B31B442f23822ae82d37961423d3 |
RecordTypeRegistry | 0x1ce73AF9DF31935d7F7231217a64660030670b3B |
Admin of the issuer and status registries: the Safe (accepted 2026-10-17). The Safe then nominated the timelock on both; the 3-day delay ended 2026-10-20T08:42:12Z, and the repository holds no record that the accept was scheduled and executed.
Contract set 0.5.0 (listed, not active)
Deployed 2026-10-17 at block 11932876 for the timelock rehearsal (ADR-0092). Contract version 0.5.0 adds issuer key retirement and guardian unpause.
| Contract | Address |
|---|---|
IssuerRegistry | 0x5c1cc061675BF1b83e16102F074c3f2c444bf94a |
CredentialRegistry | 0x1969950754144Af2ecEAa3A78F96e58Bf19D4297 |
StatusRegistry | 0x5df854C1380c8A48DE158ee02480309b837554A2 |
HolderRegistry | 0x882817b7f50C3be9c878b1E1146589570eB5DF96 |
RecordTypeRegistry | 0xa93Cf8f90CbFBd326A929D808432c8CB7216bA93 |
Admin: the timelock, on both registries. Two rehearsal issuers were added and one key retired through scheduled Safe batches. set:ready:sepolia blocks activation until the test issuers of 0.3.0 are registered here.
Governance accounts
| Account | Address |
|---|---|
| Safe (Safe 1.5.0, 2 of 3 owners) | 0x9cdd688d0e7682C6aBC8691425003Ef9F23fC288 |
CertichainTimelock (delay 3,600 seconds; the Safe proposes and cancels; anyone executes; no admin) | 0x33a22Cc4D86A62Ae141349B768C054b1DD794f33 |
| Guardian | 0xc389b2830680980fa24b5A78e2f20fc322D64667 |
The roles are explained in Governance and Timelock.
ZK access gate
Deployed 2026-10-16 at block 11924210 (ADR-0073), verified on Etherscan. It serves the 0.3.0 CredentialRegistry only.
| Contract | Address |
|---|---|
PoseidonT3 | 0x3333333C0A88F9BE4fd23ed0536F9B6c427e3B93 |
SemaphoreVerifier | 0xF562A9A42B6cDA79fd2d1f13699486251473b001 |
Semaphore | 0xF5B3531820E0fc5d77DEE52cbf3BBF82B7c14A8E |
CertichainAccessGate | 0xFd75Ee64dA6127BA4D61799920291E5016518af6 |
See Access gate. A Sepolia smoke with a wallet is still open.
Legacy v0.2 (release v2.0.0)
Deployed 2026-10-12 (ADR-0041), recorded in blockchain/deployments/sepolia.json:
| Contract | Address |
|---|---|
RecordStorage (library) | 0x3aba3A4Ed6822bABc7ef801Ed7d922F9f5e69dcc |
AcademicRecords | 0x475Bb8555d160c85f0175df117576193984C8083 |
StudentManagement | 0xA742a8C965468b1E59C84c5254Dcc507589accD1 |
A v0.2 build reads NEXT_PUBLIC_CONTRACT_ADDRESS instead of a manifest. See Legacy v0.2 contracts.
Where the addresses come from
| File | Contents |
|---|---|
src/contracts/v03/deployment.11155111.json | Both v0.3 sets, the active set and the timelock |
src/contracts/zk/deployment.11155111.json | The access gate and its pinned code hashes |
blockchain/deployments/sepolia.json | The v0.2 deployment |
The format is in Deployment manifest. The VersionAnnouncer contract is not in any manifest, and no committed record shows one deployed on Sepolia.
The hosted site
The site is a Next.js app on Vercel. There is no vercel.json or vercel.ts in the repository; the project uses Vercel's defaults for Next.js, and all settings are environment variables (Configuration).
| Item | State as of 2026-10-24 |
|---|---|
| Contract system | v0.3 on Sepolia (NEXT_PUBLIC_CONTRACT_VERSION=v03, chain 11155111) |
| Live smoke | Passed on 2026-10-17: wallet-free verify, issue with an encrypted upload, dashboard list, open document, revoke |
| Document gateway | gateway.pinata.cloud, because the dedicated Pinata gateway refused files of another account |
NEXT_PUBLIC_START_BLOCK | Still to be set (11898743, for the v0.2 share history) |
| Status lists | Off: no publisher key set |
| Verification API | Off: no signer key set |
| Monitor and monthly report | Off: no CRON_SECRET, webhook, schedule or Redis |
| Second pin copy | Off: no service chosen and no adapter |
| UI | The October 2026 redesign, merged into dev and main on 2026-10-24 |
These states come from the progress tracker, not from the Vercel dashboard. A manifest change (a new set, a new active set) reaches the site only after a rebuild, because manifests are bundled.
Tags and releases
| Tag | Points at | Meaning |
|---|---|---|
v2.0.0 | 691cd80 | v0.2 hardened MVP with its Sepolia deployment record; GitHub release published 2026-10-14 |
v0.3.0 | 0f66b5d | v0.3 testnet release; GitHub pre-release published |
v0.4.0 | 9403d58 | Phase 2 privacy layer pre-release, prepared early; stays open until the independent review is done |
v0.5.0 | 7598277 | Standards and integrations pre-release; published on GitHub 2026-10-16 |
v1.0.0, v1.0.1, v1.1.1, MVP1, MVP1.1 | 2025 | Earlier MVP history |
Release notes are in docs/release/notes-*.md. Contract set labels (0.3.0, 0.5.0) are ABI versions of the contracts, not app release numbers.
Source files
src/contracts/v03/deployment.11155111.json,src/contracts/zk/deployment.11155111.json,blockchain/deployments/sepolia.jsonblockchain/scripts/governance-status.ts,blockchain/scripts/check-set-ready.ts- Handbook:
docs/progress/PROGRESS.md,docs/progress/DECISIONS.md(ADR-0041, ADR-0060, ADR-0073, ADR-0092),docs/release/
Tests
src/contracts/v03/manifest.test.ts,src/contracts/zk/manifest.test.ts(manifest parsing and validation, including the Sepolia chain)blockchain/test/v03/ManifestFile.test.ts(reading every set of a manifest file)