DocsKey log
Midnight, and Pigeon's key log
What Midnight is, who builds it, and the one thing Pigeon is building on it.
What Midnight is
Midnight is a blockchain built to keep data private. Its contracts are written in Compact, a language based on TypeScript, and run as zero-knowledge circuits: a transaction carries a zk-SNARK proving it followed the contract's rules, and only the proof and the public data reach the chain. Proofs are made locally by default, by a proof server on the user's side, so the private inputs stay there.
Midnight runs as a partner chain to Cardano. It reaches consensus with AURA for block production and GRANDPA for finality, and the choice of its validators draws on stake delegated by Cardano stake pool operators.
Who builds it
Midnight was started by Input Output (IOG), which ran its testnet in 2024. Its code and documentation are now published by the Midnight Foundation, in the midnightntwrk organization on GitHub, mostly under the Apache-2.0 licence; the Compact compiler is developed in the open at LFDT-Minokawa/compact. Pigeon is a separate company: we build on Midnight and have no part in running it.
What we are building toward
A public key log, so anyone can check that the key behind a handle is the real one, and notice if it is ever swapped. This is key transparency, and it is all Pigeon would put on Midnight.
- Off the chain: the log itself, its handles and their keys.
- On the chain: one commitment per period, a fingerprint of the whole log, which reveals no handle, key or identity. The contract can only add the next period; nothing in it edits a past one, and it has no admin, owner or upgrade path.
- Checking: apps read each period's commitment from the chain and compare the log's fingerprints with each other, so a log that shows different people different keys would be caught.
- Never on the chain: messages, and anything about who talks to whom. Sending a message never waits for Midnight.
The contracts are written and compiled; none is live, and no Pigeon app or server talks to Midnight today.
Why a chain for this
A key log is only useful if its operator can't quietly rewrite it. Publishing each period's commitment where no one, Pigeon included, can change it afterwards gives everyone the same fixed point to check against, and the zero-knowledge circuits let the contract enforce its rules without the chain learning anything the commitment doesn't already show.