Open tonymorony opened 3 years ago
Thanks for creating the issue!
I had a bit of an overview of various NFT marketplaces on ETH and BSC recently and they are completely different from exchanges :slightly_smiling_face: Our current UI with order books won't match it for sure, so I propose to consider starting with some UI mockups first taking existing products into account. This will also help us realize what endpoints we need from API.
The marketplaces I had a brief overview of: https://opensea.io/ https://www.bakeryswap.org/#/exchange/new-artworks https://juggerworld.com/
Related info EIP-721 EIP-1155 https://www.quicknode.com/guides/knowledge-base/look-up-all-nfts-for-a-given-address-on-ethereum-mainnet - works only on Ethereum mainnet.
So, after some research, I have discovered the following problems of implementing the support in a way described in the private doc:
So, for this task, we will likely need our own service/API for smooth experience. I guess depending on 3rd parties is undesirable, and doing everything client-side might be very suboptimal.
@tonymorony @ca333
To me it looks like we'll need to use 3rd party service for this feature anyway: running cloud/dedicated server archive Ethereum node is estimating for almost 100k$/year (crazy hardware is needed atm, especially storage) + we'll need to maintain it and so on
https://moralis.io/nft-api/ - this solution seems to has widest blockchains coverage (covering all the blockchains we might need) and stating Metamask/1inch and so on (and just closed 40M funding so seems to be pretty alive for now). I do propose to base our implementation on this API
Also here is a (just as backup plan): https://www.nftport.xyz/data-api this solution covers NFT on Ethereum, Polygon and Solana
It's the best way for sure to build stuff agnostic way without relying on 3rd parties but it looks like it might be suboptimal for this particular feature
todo for NFT Wallet support:
withdraw_nft
get_nft_transfers
Future refactors:
Future enhancements:
Bizdev research pointed on the fact that people also use NFTs on Polygon, it shouldn't change this feature design I guess since it's just EVM copypaste blockchains. Moralis NFT API support Polygon NFTs and also supports Avalanche and Fantom which are EVM clones as well so we can just support them all (I guess) as just NFT on EVM chain (so updated issue name accrodingly)
Necessary enhancements and todos for NFT SWAP part
NFT tokens adding should increase protocol usage possibilities. Let's research/brainstorm on these assets wallet/trading features integration @artemii235