I’m building a Solidity contract that uses a custom struct to store image information. Each struct holds details like the image file, name, summary, and cost. Users can input this data through my web interface. My question is about whether these digital assets would count as NFTs if users could buy and sell them between each other. Do I need to implement the ERC721 standard and host metadata externally for them to be real NFTs? Right now I’m just storing everything in my own data structure instead of using the standard NFT approach. I’m confused about what technically makes something an NFT versus just a tradeable digital item. Would love some clarity on this.
Having implemented contracts similar to yours, I can assure you that custom structs alone won’t qualify as real NFTs. The ERC721 standard is crucial as it ensures your tokens are recognized as “non-fungible” by wallets and marketplaces.
I encountered similar challenges when I first opted for custom structures, but quickly realized the limitations. Without following ERC721, you basically confine your tokens to your own platform with no support from external wallets, thus making ownership verification difficult.
Regarding the metadata, if you’re not concerned about gas fees, storing everything directly on-chain works, but IPFS could be a better choice for decentralized storage. You must ensure the tokenURI is implemented correctly for external access to your assets.
For broader acceptance and genuine ownership capabilities, transitioning to ERC721 is advisable. The initial effort is worthwhile for achieving ecosystem compatibility.
yep, u gotta implement the ERC721 standard for them 2 qualify as NFTs. without that, they’re just unique digital items. trading is cool, but it can be tough to get noticed in major markets without that standard backing.
hmm this is actually a really interesting question! technically, your custom structs could work like nfts for uniqueness and trading, but ray84’s right - they won’t be “official” nfts without erc721.
what are you trying to achieve though? planning to list these on opensea or other major marketplaces? if so, you’ll definitely need erc721 compliance. but if you’re building your own ecosystem and marketplace, your custom approach might work fine.
the real issue is interoperability. without erc721, other dapps and wallets won’t recognize your assets as nfts. they’ll just be data in your contract that only your interface can handle. is that a problem for your use case?
also - are you storing actual image data on-chain in your structs or just references? that could get expensive fast with gas fees if users upload larger images. what made you go custom instead of just implementing erc721 from the start?