Yes, I did not jump in earlier because I realize from past discussions (e.g. Phoenix was working on a similar standard) that my take on this topic differs from everyone here š But always happy to articulate my opinion again, I believe an NFT standard is inadequate for Stellar.
I came across this proposed vision for ledger programmability a couple weeks ago (apologies for the XRPL ref) but that summarizes where I am coming from:
Anti-objectives :
- Being exactly the same as some existing design (at the expense of what is best for the XRPL)
- Replacing XRPLās existing building blocks with smart contracts (its primitives are a key selling point)
Basically, we should not be copying Ethereum when it is done at the expense of what is best for [Stellar], and that would typically be the case here. Ethereum and Stellar designs are strongly contrasting when it comes to asset issuance because of the Stellar first class asset model.
To be specific, on the key points from this NFT SEP motivations:
- making it difficult to ensure interoperability between different NFT contracts and applications.
This initial statement is incorrect. Every asset issued on Stellar is de facto interoperable (first-class citizen) with all services and wallets i.e. transferable, tradable everywhereāunlike contract-based issuance.
- SAC is mainly designed for Fungible tokens
Likely incorrect too. Stellar assets non-fungibility is modeled via the properties (unique, locked supply) of a unique class so unlike on Ethereum with ERC20 vs ERC721, Stellar design is fully agnostic to asset fungibilityāagain, all assets on Stellar enjoy the same primitives.
- Metadata handling, Permission controls, Customizability
These features can also be achieved by decoupling asset issuance from the contract, unlike Ethereum forced into coupling by-design, specifically:
-
Metadata handling: The best for [Stellar] is to standardize Soroban data storage, not to import the ERC721 issuance model. Standardizing on-chain storage would preserve the ability for decoupled issuance and keep the ability for Stellar to treat assets as first-class abstractions.
-
Permission controls: I reckon it is not perfect (especially in regards to intuitiveness) but here is an example of decoupling for royalties avoiding the limitation and pitfalls that come with adopting the Ethereum model (points also discussed in my blog).
So I agree that we're missing some crucial tools but these shortcomings require ad hoc solutions and/or adequate protocol updates making it more intuitive for developers on our use casesānot juxtaposing an ERC721-based standard.
As said earlier, Stellar assets already enjoy full interoperability along with strong security guaranteesāthis quality is fully reusable with decoupling. NFT standardization efforts should be aiming at that imho.
On a positive note, I am always glad to see more NFT related efforts on Stellar, but not at the cost undermining its core design and importing serious long-term issues which Ethereum as yet to solve.