Token interoperability is a win-win for users and developers. The traditional app analog here is accepting multiple payment types. Users get more choice with no additional costs. Developers are able to offer users a better experience with minimal additional cost. Smart contract interoperability, on the other hand, is an unknown-lose(probably) for users and devs. The traditional app analog here is releasing the same app on multiple platforms. Developers are in for a headache. Contract interoperability means (1) deploying the same contract to every protocol you want to support and then (2) developing a way to propogate updates to all of those contracts every time a function is called in one of the contractsβin other words, managing state. This is a lot of work and raises the question of whether it's worth it.   Which leads us to challenge a large assumption about the interoperable future: smart contract protocols donβt have a network effect. If the need for contract interoperability is rare, smart contract protocols are actually more like operating systems than programming languages, which means there is high switching cost and the landscape will likely be more winner-takes-all (like operating systems) than the relatively fragmented adoption of programming languages. If we doubt contract interoperability, contracts and non-functional tokens can be considered bonded to their parent protocol.