Ethereum allows you to create a smart contract where you can place a non-fungible token (a digital collectible like a cryptokitty) for sale and anyone can buy it. On Ethereum the smart contract trustlessly ensures that the buyer only gets the token if the seller gets the money and neither one can cheat the other. The buyer and seller do not have to negotiate or even communicate at all as the smart contract knows the seller's desired price and handles the token transfer automatically. The seller does not need to be online when the buyer makes the purchase. After a successful sale the smart contract puts the money directly into the account of the seller.
Is something like this possible on Bitcoin, using the Bitcoin script language or otherwise? How would this work?
Does SLP / Wormhole / etc. help solve this problem? Would it work with 0-conf? If you buy a token from an auction smart contract do you have to wait for a confirmation before you are sure that you have won the auction? If two people try to buy the same token at the same time, which one gets it? Do you have to wait until the next block is confirmed to see which transaction was accepted? If two people both get their transaction accepted in the same block, how would you decide who was first?