Sealed data with CIPNFT
CIPNFT is GenesisL1's protocol for encrypted intellectual-property NFTs. A COLLAB DAO can own such sealed assets, buy and sell them, share them with its members and make them public, all by vote. This page is for members of a DAO that holds or plans to hold sensitive data, and for the key stewards who look after its key. It explains how the DAO's key works, how data is sealed, bought, sold, revealed and declassified, how post-quantum keys fit in, how a DAO works with several CIPNFT contracts, and what can never be taken back. Read What can't be undone before you put sensitive data in a DAO.
How a DAO holds sealed data
On CIPNFT, a dataset, a protocol or a result is encrypted with a data key. The NFT carries the encrypted data and the data key sealed to its owner's public encryption key, and a hash of the data key is public, so anyone can check a key without seeing the data. Ownership changes through an escrowed offer, a delivery that re-seals the data key to the buyer, and a final step that releases the payment.
A DAO is a contract, and contracts cannot keep secrets: everything on chain is public. So each DAO holds its CIPNFT identity through people it elects. Three parts work together:
- The DAO key: an encryption key pair. Its public half is registered for the treasury on CIPNFT, so sellers and minters seal data to the DAO. Its private half exists only as copies sealed to each key steward.
- The key vault: one of the DAO's own contracts. It records the DAO's keys and the copies, and runs reveals, declassifications and the checked steps of purchases and sales.
- The COLLAB keyring: where members publish their own public encryption keys, so stewards can seal copies to them. Private keys never go on chain.
A DAO can use several CIPNFT contracts, the ones it lists as integrations, with one DAO key for all of them; the key vault refuses any other contract. Sealed data (CIPNFT) proposals act on them.
Key stewards and key epochs
Key stewards are up to 9 people who hold copies of the DAO key and can decrypt everything the DAO owns, on every CIPNFT contract it uses. The founders choose the first ones; after that, Elect key stewards replaces the list, and it always uses the critical rules. A frozen steward loses steward powers.
Key epochs. Each DAO key is an epoch, and a new epoch replaces the key:
- A steward presses Create a new DAO key in the Sealed data section. Their browser generates a key pair, optionally with a post-quantum part (Include a post-quantum key (ML-KEM-768)), and seals a copy of the private half to each steward's registered encryption key, shown with its fingerprint. Only sealed copies leave the browser. One transaction posts the public key and the copies.
- A proposal with Activate a DAO key registers the epoch's key for the treasury on every CIPNFT contract the DAO uses and makes it the DAO key. Registering the DAO's keys decides who can read data delivered to the DAO, so it uses the critical rules in every DAO. Until it executes, assets keep using the current key.
Activation checks that the key registered on each listed contract matches the epoch. An epoch with a post-quantum key needs it registered on every listed contract, and one without is refused while any of them holds a post-quantum key for the DAO, because CIPNFT cannot clear one. A listed contract that does not answer for the DAO's key blocks rotation until it is removed; one Governance rules proposal can remove it and activate the waiting epoch.
Copies for new stewards. A steward who holds the key can post copies to stewards who lack one, with Post … missing copies in the key stewards list. A copy can be replaced only by the steward who posted it, by any steward once its author is no longer an active steward, or by any steward once the recipient has changed their encryption key since. One steward cannot overwrite another's current copies.
Moving an asset to a new key. After a rotation, Move an asset to the active DAO key re-seals an asset's data key to the active key, so stewards no longer need an older key to open it. A steward who holds the older key prepares the new envelope in their browser. It always uses the critical rules.
Your encryption key
To receive revealed data, and to serve as a steward, register an encryption key: in the Sealed data section, under Your encryption key, press Create my key. Your wallet signs one message, which costs nothing. The signature becomes your key in this browser tab, and one transaction registers its public half in the keyring. Signing again on any device gives the same key back, as long as your wallet signs deterministically; wallets that do not cannot recreate it.
- The message names your account, the chain and the keyring, but deliberately not the site, so every copy of COLLAB on this deployment derives the same key. Anyone who can make your wallet sign that same message gets your key; sign it only on a COLLAB site you trust.
- The key stays in memory in this tab. Lock forgets it; switching account or closing the tab does too.
- Rotate key registers a new version. Copies posted to you before keep opening with the old version, which you can still unlock.
- Your key fingerprints are shown, and a steward sees the same fingerprint before sealing anything to you, so you can compare them.
Sealing data
A DAO gets sealed data by minting it or by buying it. Both need an active DAO key: a steward creates one, then a vote activates it.
Mint sealed data from a file encrypts a file in your browser to the DAO's key and mints it as a CIPNFT the DAO owns, when the proposal executes. The CIPNFT contract may charge a mint fee, a flat amount plus an amount per byte, which the treasury pays; the composer shows it. A CIPNFT contract can require its current terms to be accepted before an account mints: Accept CIPNFT terms accepts them for the DAO, and a proposal that adds a contract does so when needed. Minting stops unless the contract holds the DAO's active key, read again through your wallet's network.
Buying and selling
Buying. Buy a CIPNFT places an escrowed offer in L1 for the asset and approves the purchase in the key vault, with a price ceiling and an expiry.
- The seller delivers: they seal the data key to the DAO key.
- A steward presses Verify and complete. Their browser opens the delivered key with the DAO key and decrypts the data with it, to be sure the key opens it, then completes the purchase, naming the exact delivery it checked.
- The escrow goes to the seller and the asset to the treasury.
The vault refuses to complete if the seller has replaced the delivery since it was checked, if the price is above the ceiling, or if nothing was delivered. It approves and completes only offers sealed to the DAO's active key, so after a rotation an older offer has to be cancelled and made again. If the offer expires, anyone can return the escrow to the treasury (Return the escrow). Cancel a purchase approval and Withdraw the DAO's offer undo a purchase that has not completed. When a delivery keeps a view key, the page warns that anyone the seller gives the view key to can decrypt the asset, also after the DAO owns it.
Selling. Sell or unlist an asset sets the CIPNFT listing of an asset the DAO owns. A buyer escrows the listing price; a steward then delivers with Deliver the data key: their browser opens the data key with the DAO key and seals it to the buyer's key recorded with the offer. The buyer's final step pays the treasury.
The buyer can read the data as soon as a steward delivers, and CIPNFT lets a buyer withdraw the offer after a delivery and keep the data. That is CIPNFT's design: deliver only to a buyer the DAO trusts.
Which rules. A proposal that calls CIPNFT's own completion or delivery directly skips the vault's checks, so those calls use the critical rules in every DAO. Where treasury spends are critical, offers that carry L1, minting with a fee and opening a listing need the critical rules too. Purchases, sales, reveals and declassifications each name the CIPNFT contract they concern, so the same token number on two contracts never gets mixed up.
Reveals to members
Reveal an asset to members opens a reveal of a DAO asset until a date, optionally only for members with a minimum number of shares. It always uses the critical rules.
- Stewards then post the data key sealed to each eligible member's registered key: members who are not frozen and hold enough voting shares at that moment. Copies use a member's post-quantum key where they registered one. The steward's browser reads every member's key again through the steward's wallet network before sealing.
- Each member checks the key against the asset's public hash before trusting it. The page says when a copy is on its way, and the member's copy opens in their tab with their encryption key.
- Close a reveal stops stewards from posting further copies. Members who already received a copy keep it.
- A reveal also stops if the DAO removes the CIPNFT contract from its integrations.
Declassifying
Make an asset public opens a declassification, and always uses the critical rules. After it executes, anyone holding the data key, usually a steward with Publish the data key, can publish it on chain. The key vault accepts it only if it matches the asset's public hash. From then on, anyone in the world can decrypt the asset, forever.
Post-quantum keys
The data itself is always encrypted with XChaCha20-Poly1305 under its data key. COLLAB seals data keys and key copies in two ways: Classic, an X25519 sealed box, and Post-quantum, ML-KEM-768 with XChaCha20-Poly1305. A DAO key epoch, and each member's key, can include a post-quantum part.
- Copies for an account without a post-quantum key use classic encryption only, which a future quantum computer could break, and they stay on chain permanently. When some stewards have no post-quantum key, the key creation dialog says so.
- Once a CIPNFT contract holds a post-quantum key for the DAO, every later epoch needs one.
Working with several CIPNFT contracts
A DAO lists up to 8 CIPNFT contracts. Adding one is a critical Governance rules proposal (Integrations) that, in one go, lists the contract, lets the key vault complete purchases and deliver sales there, accepts its terms where the contract asks for that, and registers the DAO's active key on it. If adding fails when the proposal executes, the whole proposal reverts.
Removing a contract moves nothing: the DAO's assets stay where they are, but the key vault refuses unlisted contracts, so no reveal, purchase or sale can happen there. Close the DAO's listings and cancel its offers there first; an offer left open is refunded once it expires, and anyone can trigger the refund. When the DAO removes its last CIPNFT contract, sealed data stops working until another one is added. See Integrations for the checks and the contracts' outside administrators.
What can't be undone
- Stewards can read everything. They hold the DAO's key, so they can decrypt every sealed asset the DAO holds, at any time, without a vote. Votes decide what the DAO does officially, not what stewards can technically see. Elect stewards you would trust with the data itself.
- A reveal cannot be taken back. Once a member has received a data key, closing the reveal or freezing the member does not take it back.
- A declassified key is public forever on GenesisL1.
- A new key does not erase what people know. A new key epoch keeps former stewards out of assets the DAO acquires afterwards, but any data key they could open before stays known to them. Create a new DAO key when stewards change.
- A delivered key stays delivered. A buyer who received the data key keeps it, even if they withdraw their offer.
- Classic copies stay on chain permanently, readable by whoever can break them in the future.
- The chain cannot see inside a sealed envelope. It checks who receives one; members and stewards verify the key themselves against the public hash.
- Holding the data is not owning the IP. A CIPNFT gives the DAO control of the encrypted data and its key, not by itself the intellectual property in it; see Data, models and IP rights.
The Sealed data section
The Sealed data section of a DAO is at /dao/<web address>/sealed: "Research data the DAO holds encrypted on CIPNFT." Buy a CIPNFT and Mint from a file start the two proposals.
- A line at the top says whether you are a key steward and how many tasks wait for one, whether you still need to register an encryption key, and whether anything is shared with you (Shared with you).
- Sealed assets lists what the treasury owns on each CIPNFT contract, with its access level (Stewards only, Revealed to members or Public), its size, open offers and where it came from.
- Purchases follows each purchase through Approved, Escrowed, Delivered and Checked and paid, with the steward's Verify and complete when it is due.
- DAO key shows the key epochs (Active, Waiting for a vote, Earlier), where each is registered, and Unlock the DAO key and Create a new DAO key for stewards.
- Key stewards shows which stewards hold a copy of which epoch, with Post … missing copies when some are missing.
- Your encryption key, described above.
Stewards' tasks appear as one list, Waiting for a steward: complete a purchase, deliver a sale, post reveal copies, publish a declassified key, post missing key copies. Each says what the steward's browser will do before it does it.
