Concepts
Certichain combines a public blockchain with client-side cryptography and open credential standards. This section explains each idea the code depends on, at the depth needed to read the rest of these docs and the source. Each topic has an In Certichain part: where the idea appears, which file implements it and why it was chosen.
If a word is unfamiliar, the Glossary defines it in one or two sentences.
Pages in this section
| Page | What it covers |
|---|---|
| Blockchain basics | Accounts, keys, transactions, gas, blocks, events and logs, chain ids, RPC endpoints, finality and reorganisations, test networks. |
| Hashing and commitments | SHA-256 and keccak-256, domain separation, salted commitments (subject, metadata, enrolment), the selective disclosure field tree, canonical JSON. |
| Signatures | ECDSA on secp256k1, EIP-191 and EIP-712, every typed-data structure Certichain signs, ERC-1271 contract wallets, deterministic signatures (RFC 6979) and why the app signs twice, Sign-In with Ethereum, Ed25519. |
| Encryption | AES-256-GCM with associated data, HPKE (RFC 9180) key wrapping, keys derived from wallet signatures, padding, share codes and capability links. |
| Zero-knowledge proofs | Groth16, Semaphore v4 (identity, commitment, group, nullifier, scope, message), trusted setup, pinned circuit files and key checks. |
| Standards | W3C Verifiable Credentials 2.0, Data Integrity proofs, did:pkh and did:key, the certichain-eip712-2026 cryptosuite, eddsa-rdfc-2022, Open Badges 3.0, Bitstring Status List, OpenAPI. |
| Storage and IPFS | Content addressing, CIDs, pinning, gateways, Pinata and the second pin provider. |
| Access control and governance | OpenZeppelin AccessControl, AccessControlDefaultAdminRules, Pausable, Safe multisig wallets, TimelockController, the guardian pattern. |
| Glossary | Every term used on this site and in the app's interface. |
How the ideas fit together
The chain stores only fingerprints and a signature. The holder's package carries everything needed to prove the fingerprints: the details, the salts and the document key. A verifier recomputes the fingerprints in the browser and compares them with the chain.
Source files
src/lib/eip712.ts,src/lib/commitments.ts,src/lib/credential-package.tssrc/lib/doc-crypto/(document encryption)src/lib/disclosure/(selective disclosure)src/lib/zk/(access proofs)src/lib/vc/(verifiable credentials, Open Badges, status lists)blockchain/contracts/v03/,blockchain/contracts/zk/