I’ve been playing with ideas for a canister where you can exchange control of a canister for ICP.
I’ve posted some sample canisters from a mock CCG game. These gorgeous original artworks can be traded today!
One goal is to rely on native IC features rather than, say, maintain a list of keys and URLs that live on the canister. If the app disappears, then completed deals are unaffected: the ledger canister records who has the ICP, and the controller of a canister is stored on the canister itself.
Due to the asynchronous nature of the IC, the market works by having buyers deposit ICP in an escrow account and taking control of the listed canisters.
Thanks to subaccounts, ICP held in escrow is also recorded on the ledger canister, and not by the app, so can be recovered in a disaster.
In contrast, canisters listed for sale are at risk. For now, after a disaster, such canisters would wind up being solely controlled by the market app, who no longer has any idea who originally controlled the canister, though I have ideas on how to fix this, without relying on something like Canister History Proposal.