Skip to main content

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.

Read the chain before relying on this

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.

ContractAddress
IssuerRegistry0xf401fDe78884bd2a1809BC479Bcb67e0217578fA
CredentialRegistry0x53Fb56822E507bAf5c0221D993108495CE1931ea
StatusRegistry0x59A4298f3aACb6E5EA001C5a94DA7DE731bcB54E
HolderRegistry0x58659C14c955B31B442f23822ae82d37961423d3
RecordTypeRegistry0x1ce73AF9DF31935d7F7231217a64660030670b3B

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.

ContractAddress
IssuerRegistry0x5c1cc061675BF1b83e16102F074c3f2c444bf94a
CredentialRegistry0x1969950754144Af2ecEAa3A78F96e58Bf19D4297
StatusRegistry0x5df854C1380c8A48DE158ee02480309b837554A2
HolderRegistry0x882817b7f50C3be9c878b1E1146589570eB5DF96
RecordTypeRegistry0xa93Cf8f90CbFBd326A929D808432c8CB7216bA93

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​

AccountAddress
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
Guardian0xc389b2830680980fa24b5A78e2f20fc322D64667

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.

ContractAddress
PoseidonT30x3333333C0A88F9BE4fd23ed0536F9B6c427e3B93
SemaphoreVerifier0xF562A9A42B6cDA79fd2d1f13699486251473b001
Semaphore0xF5B3531820E0fc5d77DEE52cbf3BBF82B7c14A8E
CertichainAccessGate0xFd75Ee64dA6127BA4D61799920291E5016518af6

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:

ContractAddress
RecordStorage (library)0x3aba3A4Ed6822bABc7ef801Ed7d922F9f5e69dcc
AcademicRecords0x475Bb8555d160c85f0175df117576193984C8083
StudentManagement0xA742a8C965468b1E59C84c5254Dcc507589accD1

A v0.2 build reads NEXT_PUBLIC_CONTRACT_ADDRESS instead of a manifest. See Legacy v0.2 contracts.

Where the addresses come from​

FileContents
src/contracts/v03/deployment.11155111.jsonBoth v0.3 sets, the active set and the timelock
src/contracts/zk/deployment.11155111.jsonThe access gate and its pinned code hashes
blockchain/deployments/sepolia.jsonThe 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).

ItemState as of 2026-10-24
Contract systemv0.3 on Sepolia (NEXT_PUBLIC_CONTRACT_VERSION=v03, chain 11155111)
Live smokePassed on 2026-10-17: wallet-free verify, issue with an encrypted upload, dashboard list, open document, revoke
Document gatewaygateway.pinata.cloud, because the dedicated Pinata gateway refused files of another account
NEXT_PUBLIC_START_BLOCKStill to be set (11898743, for the v0.2 share history)
Status listsOff: no publisher key set
Verification APIOff: no signer key set
Monitor and monthly reportOff: no CRON_SECRET, webhook, schedule or Redis
Second pin copyOff: no service chosen and no adapter
UIThe 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​

TagPoints atMeaning
v2.0.0691cd80v0.2 hardened MVP with its Sepolia deployment record; GitHub release published 2026-10-14
v0.3.00f66b5dv0.3 testnet release; GitHub pre-release published
v0.4.09403d58Phase 2 privacy layer pre-release, prepared early; stays open until the independent review is done
v0.5.07598277Standards and integrations pre-release; published on GitHub 2026-10-16
v1.0.0, v1.0.1, v1.1.1, MVP1, MVP1.12025Earlier 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.json
  • blockchain/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)