How the room is built
Everything below is checkable. Where something is a promise rather than a mechanism, it says so.
What we hold
Nothing you write. There is no account, no email, no password. The conversation runs through a proxy that does not log it. The session state lives in your browser, on your device, until you clear it. What you build is written there as you go and you download it when you finish.
We see one thing: the wallet address that paid. An address is not an identity, and we have no way to connect it to one. That is by design, not by policy.
Where a stored copy lives, if you choose to keep one
When you choose to store your kit, it is encrypted in your browser before it leaves, using a key that only your wallet can reconstruct. The encrypted copy is written to Walrus, a decentralised storage network, and leased there for the maximum the network allows, around 24 months.
The key is split across three independent operators using Seal, a threshold scheme. Two of the three must agree to release it, and they will only do so to the wallet that paid, inside its window. We are not one of the three. We cannot read the stored copy.
The three key servers, as configured in the room today. Each is a live endpoint and an on-chain object you can read.
Overclock, key-server 0.6.13 seal-mainnet-open.overclock.run · 0x145540d9…1208b6
H2O Nodes, key-server 0.5.11 seal.sui-mainnet.h2o-nodes.com · 0x4a65b4ff…27286a
Studio Mirai, key-server 0.6.14 open.key-server.mainnet.seal.mirai.cloud · 0xe0eb52eb…353fd10
Versions as each server reported them at its health endpoint on 10 September 2026; the links above read the same endpoint live. Threshold: two of three. The policy they check before releasing a key is journey::seal_approve in the package below: the request must come from the wallet that paid, before the session's expiry, for an identity under that session.
What reads your words while you are writing them
Here is the one place the room is not fully closed, and it is worth saying plainly.
Every reply is generated by a large language model run by a provider. To write a reply, the provider's systems read what you wrote. Every provider also runs automated safety scanning at inference time. That read is automated, not a person, and it is bounded: we route only to providers that keep nothing afterwards and train on nothing, and that boundary is enforced in the request itself, not in a dashboard setting. We tested it by forcing each provider in turn. Two served under those terms and two refused; only the two that served are eligible.
So the accurate sentence is: nothing you write is kept, and nothing is used for training, but an automated system reads each message once to answer it. A version of this room where that read happens inside sealed hardware is on the roadmap. It is not what you are using today.
The contracts
The purchase and the session are recorded on Sui by two Move packages, published in the open.
Source: github.com/aionchainops/cocoon-contracts
Journey package (purchase, session, the Seal policy): 0x682d456a9b6c051c9b70e2f67bcee9602b1244278b898e70348b8c6214c214ab
Pay package (the storage allowance placed in your wallet with your first purchase): 0xeccd5894241f950fbaf847403af7638328c0e8e478ee7e0cf3fb412a7c1afc9d
A purchase mints a Session object to the wallet that paid. It records which room, and when the window closes. It is the only credential the system uses, and it is yours, on chain, not in a list we keep.
The journey package keeps an upgrade capability. We have not destroyed it, and this page says why rather than hiding it: Seal is infrastructure we rely on but do not control, and destroying the capability would leave us unable to adapt if Seal's key-server interface changes. What that capability can and cannot do is written into the package's policy, which is readable on chain.
Upgrade capability: 0xfe6c6fbc751c9f76103c222644341dcdef072997245d81208f1cebb0212d3973
Policy today: 0, which Sui calls compatible. It permits upgrades that keep every existing function signature and every existing type, and nothing that removes or changes them. The Seal policy itself refuses to answer unless the package version it was compiled with matches the shared version object on chain, so an upgrade cannot silently leave an old policy answering requests.
Payment
You pay once, in USDC or USDsui, from any Sui wallet. Gas is sponsored, so you never hold SUI to use the room. The payment lands in a treasury address you can read on chain.
What this page will change
When something above changes, this page changes the same day, and the change is dated here.
10 September 2026Page published. Same day: the provider test sentence restored to its original form, on the operator's confirmation that the four-provider test was run personally.