As I mentioned yesterday on Stellar Global, I am not in favor of an ERC721-like standard on Soroban/Stellar and here are some important reasons:
Inappropriate Paradigm: Ethereum employs an account-based model which necessitates the creation of contract interface standards like ERC20, ERC721 for modelling third party asset issuance. This is due to assets on Ethereum not being first-class citizens and requiring tracking ownership via smart contract data, i.e. an unsophisticated mapping system which also poses all sorts of challenges (e.g. state expiry, royalties...).
Stellar, in contrast, provides a practical and robust asset issuance layer hence importing the flawed Ethereum model for standardizing NFT issuance on Stellar seems inappropriate in most cases.
While I don't rule out some use-cases for Soroban-based NFTs, I think a standard, more so an Ethereum-based one, is counter-intuitive for builders and may lead them to produce many improper and limiting implementations.
**Loss of Interoperability: ** Stellar treats third-party assets as first-class citizens, resulting in de facto global interoperability.
For example, hardware wallets like Ledger currently allow Stellar users to bid, offer, sell, auction and generally interact with any NFT issued on Stellar without necessitating our apps/contracts to be greenlit/whitelisted/integrated by the Ledger ecosystem, or worse, requiring our users to engage in risky blind-signing transactions.
NFTs on Stellar are fundamentally Stellar assets and inherently integrate with these services. The need for a standard to issue NFTs has been unnecessary on Stellar to achieve such global interoperability on the ecosystem.
By contrast, Soroban-based assets are isolated from any service by default, unless the service explicitly supports a specific interface.
**Isolation from SDEX: ** Soroban unfortunately does not support SDEX operations. I think this is unfortunate because this could turn the SDEX into the first and biggest L1 price Oracle in the industry.
Importantly, Soroban-based assets being isolated from the SDEX means they cannot benefit from L1 discovery mechanisms across markets (paths) nor can they benefit from SDEX interoperability for market execution and overall trade operations.
This can drastically limit sales funnel and end-user options, important points to consider before deciding the issuance method for NFT assets. For example, Opensea, talking about their infamous struggles with on-chain royalty payment enforcement, explained on their blog that lack of interoperability is what “limits their [creators and collectors] sense of control over where their collections are sold."
Issues with Royalties Payment Enforcement: As mentioned above, major marketplaces like Opensea attempted and failed to standardize NFT payment enforcements because their solution (on-chain operator filter) required the whole Ethereum ecosystem to adopt a specific interface for NFT issuance, which did not happen. They are reverting to optional royalties.
Stellar, however, does not inherit these issues and it is my belief that we should leverage Stellar's tried-and-true method for issuing NFTs (classic) and utilize Soroban smart contracts for tasks other than modeling these assets. It feels like coercing Stellar technology.
This being said, it may be important to precise that if a consensus is reached on a Soroban-based NFT standard with widespread adoption potential, I would be okay to support it across the Litemint platform. However, my preference is clearly to encourage builders to design solutions that align with Stellar's inherent paradigm, which offers better futureproofing, security, interoperability and leverages Stellar strengths appropriately.