We have been busy and have just released the App live with the NFT features! Our NFTs are art pieces that are procedurally generated from the user’s uploaded Moments - we use them to encourage our user’s to continue to use our app and wear their best fashion moments. Here are some details and publicity around the launch:
Here are some videos of the feature in the app (which of course you can just download and look at but saving you time):
The NFT contracts are on Mainnet and can be found here:
StoreyxDB: Harmony Blockchain Explorer
StoreyCoin: Harmony Blockchain Explorer
We are now going to move forward and publicise this more, and also build out the NFTs and release more drops to our users / community!
I hope this satisfies the next $10K Milestone @giv for launching on mainnet!
Congratulations on your steps to mainnet. I have some questions please:
Where is the NFT Stored? Is there any way to have the user store the NFT in their wallets like Metamask or others? Rather than save it in the main app wallet (if I didn’t understand properly).
So I can take a look that the NFT’s are being transferred to the users and that the app is working in Mainnet properly.
Hey there! The NFT is stored in custodian accounts created by the NFT Contract Creator. You can see the code here:
const account: Account = web3.eth.accounts.create(web3.utils.randomHex(32));
We store the credentials encrypted securely on thus:
newblockchainAccount.address = account.address;
newblockchainAccount.privateKey = encryptData(account.privateKey);
where encryptData uses sha512 (we also secure other keys with the same algorithm). If the user wants to “fully” own the NFT then they will be guided to set up a metamask wallet and we will transfer the NFT directly to them. Currently our users are not savvy to web3/NFTs and we will lose all of them if the initial steps to them experiencing this requires them installing and using metamask.
The NFT contract source code I can happily share - I tried to verify/publish in the actual explorer but it keeps saying that it compiles to different bytecode? The contract is very vanilla ERC721URIStorage so I don’t understand what the problem is…
Let me know if you need more pointers as right now everything is custodian controlled and we can make fixes!
The ERC721 contract is here Harmony Blockchain Explorer but as you can see for some reason it doesn’t ‘register’ as an HRC721…but if I talk to it via web3.js it works fine
Thank you for the fast response.
Sorry as it’s taking me more time as I can’t interact with a Metamask for transactions as this is a project of NFT given.
Is there any other way the user can take a look at his/her NFT’s other than in its own TakStorey app? Like through the MM?
Right now the easiest way to look at the NFT is on the Storey app. But the record is on the Blockchain - so in theory it should be viewable also on the Harmony Explorer when we give them their Custodian Wallet Account address (this is public). However - for some reason I cant get the explorer to show this!
If they actually have Metamask - they can actually view the NFT “Token” by adding the NFT address 0x425b4567571bbf61ab24cbbf6cf71a924904833c and it appears like in the screenshot as “SDB” but this is slightly weird because its an ERC721 and not an ERC720 - I’m not sure what is going on there…
If required I’m quite happy to post the source code too - its not that exciting as its a basic ERC721URIStorage from Openzeppelin
Don’t want to turn this into a big debug thread (maybe it should be!) but you can also check a transaction here detailing the safeTransferFrom call that transfers the NFT into the user custodian wallet:
Basically after minting a new NFT, I transfer ownership from the minter 0x54dd2f5151752e281afe4e2090c6e6bec76d226c to the custodian wallet 0xc75d6466b31614ab3281fa5f68e2b40b678231dd - you can see this clearly in both the Input section and also in the Logs Harmony Blockchain Explorer where a Transfer event is emitted.
However if you look at the account Harmony Blockchain Explorer it shows…nothing? I am not sure why. Again - if you use Metamask to login as 0xc75d6466b31614ab3281fa5f68e2b40b678231dd and import the NFT then it does kinda show up as ‘SBD’ (but clearly its not an ERC20)
Interestingly - the NFT contract doesn’t show up in Harmony Blockchain Explorer know what I have to do to make it appear there? Or is somehow the contract bytecode not being interpreted correctly? I use solidity 0.8.9 and the contracts are the latest OpenZeppelin ones…
It would be great to have the user know where to look at his/her NFT property like other apps that I know that if you connect your Metamask to NFTKEY - Discover, collect and trade NFTs - NFTKEY for example, you can see your property.
Could you do something like it?
For sure! Actually I think let me double check why my ERC721 contracts are not appearing there. It feels weird. Will reply after checking - thanks for the tip! Do you know if NFTKEY supports Harmony Testnet?
Not sure about Testnet sorry.
OK we have let our users know about the NFTKEY website, and how they can also move their NFTs around to their own Harmony Wallet. @giv Would you mind checking how this looks for the Grant?
Actually I fixed all of this and will also submit a “bug” to the Harmony Documentation around the Explorer and ERC721. The reason it doesn’t appear in the Explorer is because the ERC721 I made does not use the IERC721Enumerable interface, which is optional according to the ethereum eip-721 here EIP-721: Non-Fungible Token Standard (’ The enumeration extension is OPTIONAL for ERC-721 smart contracts (see “caveats”, below). This allows your contract to publish its full list of NFTs and make them discoverable.’). This should be made clear for future Harmony Developers In fact - NFTKey itself requires this optional interface to be implemented for your NFTs too.
Basically I would say my code is good, and is working as expected in Production. Users who receive this NFT can view it for ERC721 compliant dapps! @giv I think this is all working!
More screenshots of the NFT feature being showcased in the app on production:
Hi folks - is there any guidance for Milestone 3? Would appreciate a shout out (understand you’re busy) - but it is out on Mainnet and working well! @giv @lij
Hey @giv or @lij - is there an update on this please? Its been almost two weeks - can I get some information or guidance? Thanks.
Sorry @TakStorey . Tagging @jbeltran here so he can follow up.
Hello @TakStorey testing it, so I can check the task from the grant if they are completed.
Get back to you asap.
Thank you so much! Just let me know if there are certain things you want to see or even change. We are doing a ‘white glove’ managed service for our users so it is possible to do a lot behind the scenes as long as we continue to have the user trust, and that we can slowly educate them to onboard web3