I’d like to know if there is some sort of standard smart contract for a NFT Marketplace that has already emerged on Celo?
To give a bit of context, at Primus Money we have a webapp that lets very easily create personal NFTs, that we call “deeds”, and that can be transferred in p2p mode. Think of it as “I’m proposing one hour of my time evey week for a couple of months” (e.g. to give language lessons), and that it’s ok if people are transferring the NFT to someone else who wants to attend the calls for a couple of weeks.
We are in the process of adapting this webapp to Celo, and, moreover, we are planning to ease the monetization and exchange of these “deeds” by connecting to an NFT marketplace.
We could deploy a smart contract building for example on this article How to Build a NFT Marketplace DApp on Ethereum or Optimism - Truffle Suite
But it could make sense to directly connect to a smart contract already deployed on Celo, if it has an open source implementation clearly published and supported.
Would there be a smart contract in a github repo and a contract address on Celo’s mainnet that would meet this?
Thx for any pointer
Celo is EVM compatible so you can deploy both ERC721 and ERC 1155 smart contracts with OpenZeppelin standards without problems.
Which standard uses the NFT of your Dapp?
Some Marketplaces on Celo only support ERC721
Our webapp is deploying ERC721 NFTs (OpenZeppelin implementation).
To make things a bit more visual, here is an exemple of an NFT I created to offer coaching sessions, 1 hour per week, during 2 months back in 2021. At the bottom, it’s possible to see the list of clauses attached to this deed/NFT
The idea of adapting this webapp to Celo would be first to leverage user friendly wallets like Valora to ease monetization for the deeds anyone can issue, then to connect to a marketplace to make resell even fluider for anyone who would like to trade deeds they have acquired.
I suggest you to connect with the guys at Cyberbox, a native Celo NFT Marketplace, to create a page for your project where people who own NFTs coming from the smart contract you deployed can trade it safely.
Thx for the pointer, I’ll try to connect with Cyberbox.
To give more context to what I’m looking for, I’d want our webapp to directly interact with a marketplace smart contract. I’d like to offer a seamless experience where people who have created an NFT (without really knowing/caring it’s an NFT) could list it on a marketplace from the webapp without having to open a web page.
Actually, I think that the marketplace smart contract I’m thinking of could be a common on Celo to let anyone exchange NFTs from any interface they want.
Happy to connect you to them if needed!
Thanks for the offer. My email is [email protected]
I’ve had a quick look at GitHub - cybertime-eth/CyberBox-NFT-Marketplace: CyberBox NFT Marketplace
To qualify my interest, I’m investigating the potential of mutualizing efforts on the development of smart contracts for a general purpose NTF marketplace and possibly the economic interest of having a single deployment. I’d be more interested in a technical discussion first, then in a reflection on the economic sense for each parties to share such developments.
Cyberbox team should be reaching out to you
I think in this case, it sounds like you’re looking to build a generic NFT Marketplace contract, there are many templates for this already available. Most of these would be built as an extension of the IERC721.sol interface.
The only thing your web app will be doing is ensuring the user has some wallet connected to it (you can use something like rainbowkit for that).
So to return to your initial question; the ‘Celo Standard’ is the same as the Ethereum standard for NFTs (ERC721, ERC1155 OpenZeppelin standards as 0xGoldo pointed out).
You can extend these with other functionality as you require. But these should be enough to create basic ones for your web app.
If you’re then hoping to be able to mint NFTs on your own web app that can also be sold to a different NFT Marketplace (like OpenSea for example, you would need to ensure the metadata for your NFT matches that of the desired platform’s specification [see for example: Metadata Standards] to make the integration possible)