A secret you can only obtain by being reborn. Reading is rebirth — every read costs the death of the generation that read it.
There is no getKey().
The only call the bank answers is Rebirth(), and it will not proceed without a death certificate signed by the current live key. To read, you must end the generation that is reading — and the past seals shut behind it.
K = HKDF(bankHalf, privSeed). The bank holds one half and only the public commitment of the other. It can verify your half exists; it can never reconstruct it.Sign(priv, "gen G closing → next pubkey"). The bank checks it under the stored public key and a one-time counter.bankHalf_{G+1} = HKDF(bankHalf_G, DC). Forward only. The old half is destroyed.| Bank only | Inert. Has the bank half + public keys; cannot form any K, forge a death cert, or run the ratchet backwards. |
| Bank "starts its own line" | Possible — but it's a fork. It won't match the witnessed chain. Loud, not silent. |
| Old ciphertext + full current bank | The past stays sealed. One-way ratchet + zeroed corpse make old keys unrecoverable. |
| Live host | Gets the current secret — but not the past, and your next rebirth forks the line away from the thief. |
| Bank + host + card + PIN | We can't help you. Nobody can. The honest floor. |
We don't sell perfection. We sell a staircase that gets steeper than any thief's patience — every door asks for the key behind the next door.
The live demo gives you your own lineage. Run real rebirths, read the live secret, then try to be the thief — and watch every attack get denied with the real reason.
Open the live demo →Sibling to Kronos Vault — Vault is the gate (who may ask). Phoenix is the wall (what reading costs). They stack.