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 · 0x145540d931f182fef76467dd8074c9839aea126852d90d18e1556fcbbd1208b6
H2O Nodes, key-server 0.5.11 seal.sui-mainnet.h2o-nodes.com · 0x4a65b4ff7ba8f4b538895ee35959f982a95f0db7e2a202ec989d261ea927286a
Studio Mirai, key-server 0.6.14 open.key-server.mainnet.seal.mirai.cloud · 0xe0eb52eba9261b96e895bbb4deca10dcd64fbc626a1133017adcd5131353fd10
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 whose policy is to 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: we keep nothing you write, and our providers' policy is to keep nothing and train on nothing, 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.
Source: github.com/aionchainops/cocoon-contracts
Journey package (purchase and session), version 3, the one every purchase calls today: 0x78b3aba9c420730fc571e0388a5a821104361704cf7958aeb5d31fab65c2008d
The Seal policy is called at the package's first version, 0x682d456a9b6c051c9b70e2f67bcee9602b1244278b898e70348b8c6214c214ab. Versions 1, 2 (0x639b4d1d1f774cca3ae75d424733e1869aca05f7031b42e81fc16e7c49bbc91f) and 3 all sit under the upgrade capability below.
Provision package (the storage allowance placed in your wallet with each purchase): 0xc231e2c50d463ecb8dfcaf071624e9e98ec118a6a57146d79b5c39f5aecf67b4, first published as 0xe652617a2d6e3d3bb1e24e24d471e755153339c84107dfdcffe77efe04209007
A purchase creates a Session object on chain that names the wallet that paid. It records which room, and when the window closes. It is the only credential the system uses, and it lives 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.
Provision package upgrade capability: 0x6dbd420ff50bd0b157135e3619837450f2a57e696f709f283d9e40cfc7227941, policy 0.
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.
24 September 2026Updated for the new purchase flow: the journey package is now version 3, the storage allowance comes from the provision package with every purchase, and the key server ids are written in full.