Open jacob-tucker opened 2 years ago
TYSM @jacob-tucker and Emerald City! We will be reviewing this proposal and will get back to you in the next 1-2 weeks. We appreciate all your work and are looking forward to diving in.
Hi @jacob-tucker! Thank you for your teams interest in this bounty. We are eager for you all to get started on it. Per the bounty requirements, can your team please:
Re: MainNet Deployment - Per the last step of Milestone 4 (Production-Grade Build Complete)
Definitely let us know if you have any questions on this feedback. Once those are updated in a revised PRD commented below, we'll review, wrap up any further questions or approve and count this bounty awardedπ
Thank you for response. We're super hyped to get started on this too.
Maintenance Plan It is important to me and the Emerald City community that this tool be maintained and branded by Emerald City since our success relies on people knowing and recognizing our free tooling. Thus, we will take the responsibility of hosting the website and making sure things are smooth sailing once launched. In addition, we will constantly update the site with new features to the NFT Metadata Standard.
I can confirm that we will build out all of the features listed:
In regards to MainNet deployment, I want to confirm the process for what the deployment will look like. Each user who uses this platform will be creating their own NFT, and thus their own contract. So when this bounty is completed and sent in, there will be no contracts to deploy. Rather, they will need to be deployed on the fly when a user creates their own NFT. This is not supported on Flow at the moment, as MainNet deployment is closed. As per my understanding, it will be possible in the upcomings months though. Does this seem like what you were thinking as well?
Thanks deayora!
@jacob-tucker we would like to build this in a way - and get it audited and signed-off on internally - so that users can deploy their contracts on the fly. We feel that if the template is tight enough and through the GUI users are only updates metadata/images, this should be possible and a great first step for people deploying at will on Flow.
We will need to get double confirmation on this plan internally -- but in the meantime, I think if we build with the plan for deployment to be owned by users and remain aware of any design needs/steps that would need to be baked in if in interim we manage for manual deployment if we are unable to give users this ability.
If you feel you can approach this with the two potential paths in mind - we can consider this bounty awarded and get to building :)
Sounds great. I will get our community moving on this right away.
We will prioritize users owning deployment, but keep the other option in the back of our minds as well. At the very least, deployment should be open for all in a few months time, so worst case we have that path developed out for when that time arrives
Best news!! Milestone #1 complete :) I will alert my team and they'll kick-off reaching out and getting payment in progress. CONGRATULATIONS, EMERALD CITY!
If it's okay, I have a clarifying question @deayora to make sure we deliver as expected.
The proposal mentions that users should be able to learn how to upload their metadata to IPFS, and then use that metadata for their NFT collection, as mentioned here: a.) Learn how to upload their assets and metadata to a service like IPFS; and b.) Upload the metadata for their NFT collection.
There are many ways to create an NFT Collection, but most popularly is "generative art" where a user uploads like 500 images, names, and descriptions for their NFTs, and each one of those bundles is tied to a certain NFT ID. For example, NFT with ID #0 is mapped to the first image with name X and description Y, and ID #1 is mapped to the second image with name N and description M, etc.
Thus, our imagined end-user workflow is this:
Is this the sort of functionality you were picturing for this bounty? I believe this is how https://721.so does it.
Thank you!
@jacob-tucker This workflow is awesome and sounds great - some small notes/thoughts π₯
Let me know any further thoughts or questions π€Έ
will this be project no.1 in the future
@deayora That sounds great, thank you <3
One more question I have for you: The bounty mentions creating the collections for the NFTs, which means our website will have to support people creating their own NFT collections. We are currently working on this right now. This means we don't have to include a page where users actually mint those NFTs from a collection, is this correct? The collection creator will handle this on their own.
Thanks again :)
@jacob-tucker missed this somehow! apologies :) sounds correct!
@deayora @zikewu I have some updaaaaates! :D :D
We are submitting just for Milestone #2 right now. We have the frontend clickable prototype: https://token-minter-kr7ibrjw1-emerald-dao.vercel.app/
It has both the guide and the collection generator. These are just prototypes and not finalized, but shows anticipated user workflow. Let us know what you think!
@jacob-tucker WOAH the prototype looks Awesome!!! I sent the prototype to DC team for review. Will get back to you next week!
Good morning! Apologies for delay here @jacob-tucker and team :) This prototype is looking really awesome. We have some fine-tuning details that we believe will help from a usability and product standpoint.
Really love the addition of Spanish to the user guide section. Are you planning to translate the collection generator section as well?
Same with the Discord Management Tool: We're eager to see the completed descriptions of the features on the main page in order to consider the front-end complete. In those descriptions, we especially want to make sure people understand what they're creating and how -- from landing page, to collection generator to user guide. Let us know if you have any questions there....
Thanks again - and as always - awesome work!
Hello there @deayora ! Apologies for the delay in response, we have been working very hard on trying to handle asset uploading to show a proper demo for our project :)
Milestone #2 (Ready for Review) We have taken all of your suggestions into account and implemented them, you can see them here: https://token-minter-sand.vercel.app/
At the moment we do not have translations for the collection generator part, however we will likely include translations for the extra part of this bounty. We actually have over 10 languages for our educational part already and are working on getting them on the demo.
Also, we have written descriptions on the front page in hopes of completing Milestone #2.
As always, thank you very much for the feedback, and let us know if we can fix anything else to complete Milestone #2! :D
Milestone #3 (Not Ready for Review) We have made significant progress for Milestone #3. So far, we have completed all the necessary steps to actually completing the process of the NFT Collection creation except for the actual uploading of the IPFS assets. Once we complete that, we'll be ready for Milestone #3 review.
Unrelated to the Bounty Even though this isn't a part of the bounty, we have decided to include a page to actually "Mint" NFTs from created collections! We will automatically set up a minting page for users to handle primary sales of their collections.
@jacob-tucker Great progress on this so far! One quick note from me -- is there an existing tutorial the team meant to link to for the IPFS Token, or is that something that still needs to be drafted?
Hey @markedconfidential , yes that is still under development. Once we have ironed out the upload to IPFS step we will have that ready
Hello @jacob-tucker ! Just a friendly reminder: phase 2 completion is still blocked by providing an IPFS Token and the tutorial on how to get that π
Hey there @zikewu , we have successfully completed the IPFS stage: https://token-minter-sand.vercel.app/
In order to test the asset uploading to IPFS, you an use these example files: Collection Data: https://github.com/emerald-dao/token-minter/blob/main/assets/set1_clean.csv Collection Images: https://github.com/emerald-dao/token-minter/tree/main/assets/set1_clean
Right now, the process works all the way through contract deployment. In fact, if you deploy to testnet, you will see the contract in your account.
The last step is to finalize uploading assets to the contract itself. This is trickier but we have most of it completed already. We have an example page to show you how users will upload assets to the contract once you deploy the contract. However, we are still finalizing this step. Once it is done, the platform will be ready to go! π₯³
Awesome progress @jacob-tucker ! Looking forward to the update on uploading assets to the contract! π
New Updates!
We have almost completed uploading assets to the contract. Right now, if you deploy the contract after following the steps above, you will be taken to an "Upload Metadata" stage. If you click the first button which upload from 0-499, it will successfully upload all of your assets. Will finalize this step soon.
We are also really happy to say that we have included a whole section to perform primary sales of your collection. We set up a buyers page automatically for the user. Here is an example of that: https://token-minter-sand.vercel.app/0x6c0d53c676256e8c/HatsNFT11
(some images are broken, but the general idea is there). We have also implemented purchasing directly from that page.
Hello once again!
We have completed the functionality of the upload metadata to contract stage. Most of the platform is now completed!
We are finalizing some other things to get the platform ready for production. Here are those things: π A way to show error on the Upload Metadata step if an error happens π A way to show all the uploading has been completed π A way to view NFT metadata when you click on it on the collection page (unrelated to this bounty) π I will make a youtube video as a guide for Token Minter and put it in the Guide
Will keep you updated as we make the final steps to greatness
@jacob-tucker Great progress! Quick Q - am trying to complete a run-through but am running into an error with my CSV file no matter how I format it. Any pointers on what I might be overlooking?
@markedconfidential Sorry about that! We just fixed that up.
If curious, the reason was because the csv file had an empty line at the end, so it thought it was reading a mal-formed piece of metadata. But we've accounted for this scenario now :)
@jacob-tucker hello! I'm currently trying to upload my csv and having some issues doing it successfully. Is there a required format for the required fields?
Hi @deayora !
The CSV we have been using to test are here: https://github.com/emerald-dao/token-minter/blob/main/assets/set1_clean.csv And here's a longer version of it we are also using to test: https://github.com/emerald-dao/token-minter/blob/main/assets/set2_clean.csv
We also tested @markedconfidential 's CSV above, which lives here: https://github.com/emerald-dao/token-minter/blob/main/assets/dc_test.csv
Following the format of those CSVs is probably best. If you want to make your own, the only requirements are that you have a name
, description
, and image
attribute.
This tutorial may help better describe as well: https://www.touchstone.city/guide/en/token-minter#upload-assets
Awesome - Thank you! Looking now :)
Awesome - Got it to work :) Going through the rest of the flow now - a few small product suggestions that could be really valuable to the user (and alleviate the risk of them thinking something is a bug vs. user error/need).
Will get back shortly on completing the process and with any further Qs. Thanks!
@deayora Great! We will make sure to incorporate these changes. As always, let us know any other feedback you may have. Cheers!
@deayora @markedconfidential Hello! We are a few weeks away from launching Touchstone out into the public. Wanted to catch up on the status of this bounty so we can get some funds to the team working on this, as we haven't reached Milestone #2 yet.
If there's anything we can do to progress further, just let us know :) Thanks a bunch
Going through https://token-minter-kr7ibrjw1-emerald-dao.vercel.app/ again:
Homepage
Collection Generator:
Upload
needs modal explaining what's required in CSV file, example of formatting and why that's important. Has less info than screenshot above. Left rail description
has some typos/is fairly hard to follow. This will likely be the hardest step for people, so over explaining with description and image examples will be key.NFT Generator
Once we get these things in place and can review the full flows, we can call #2 complete. Excited for it! Reach out with any other questions. Thanks!
Oh, sorry about that @deayora ! That is totally my fault. All of our updates are actually at https://touchstone.city/
That other link is very old, sorry to make you go through that!
That being said, I have tweaked some things (like changing Collection Generator -> Contract Generator). I believe the only remaining thing is adding a bit more description to the Upload Step. But we do have a whole guide on that here https://www.touchstone.city/guide/en/token-minter since it is hard to describe all those details during the process
Happens - no worries :) Will check it out now ~
I'm getting an error that my CSV and images do not match. I have created the "names" and then Under "image" I have file name (ie jpeg.jpeg). Any advice on what might be going wrong here?
Hey there @deayora ! Do you mind sending the files you're trying to use so I can try them out on my end?
Absolutely - Attached! And FTR: Trying to go through flow as "ignorantly" as possible - like if I'm a user who knows nothing/googles nothing, can I be successful π₯ So I'm sure this is on user-error side, but hoping it reveals some further tweaks/language we can add.
Hahahha I love the images - AND HARRY STYLES! Testing these now, will report back.
@deayora I just gave these a go, and weirdly enough it actually worked first try. What I did was take all the image file names and copy them into the metadata sheet. I will try to play around with it to see if I can produce an error when it shouldn't
<3 Harry :)
@jacob-tucker can you reshare the metadata sheet you used so I can see as reference where mine may have been off? I think regardless, taking the hand-holding approach of giving the user as much information as possible about the types of images they can upload and exactly how to fill out that metadata sheet the better (visual examples, written help, etc.). We know that will be the hardest step for people.
Sure thing! The file I used is below. metadata.-.Sheet1.2.csv
I am also adding some helpful error messages to the user to show what match isn't matching correctly
Sounds good - To description/how-to, clarifying that they should add "headers" to each column (oogle drname description image serial), what those should be, and any "exact" info required and where to pull that from - ie image = file names.
I think with those additions, we'll be good to check out again and give green light pending anything else that may come up! Very exciting!!! Almost there π₯
Hi there @deayora
One of the things we have been trying to avoid is cluttering the Contract Generator step since it will seem like a stressful experience. Instead, we encourage users to check out our User Guide first which has a detailed walkthrough of the process. Is it okay if we leave the explanations and examples to a separate User Guide, or do you think it is essential to have all in the same step? Either way, we will make it happen π
Hi @deayora @markedconfidential , just checking in
@deayora @markedconfidential
Hello,
I'm one of the translators that participated in the bounty for Emeraldy City. All of the content for Touchstone is completely translated to correct and beautiful Spanish.
I delivered 3/4 of the translations back on May. And translators needed to wait to translate the last section, since it was still being built out by the developers.
I translated and delivered the last section back on September to @jacob-tucker .
When will the bounty funds be finally released to us? The wait has just been overwhelming for me as a translator, since translations are fairly quick to finish (a couple of weeks at most), yet we must wait months until the whole project is done to be paid.
I look forward to your response!
@jacob-tucker Hey Jacob, pardon the delayed reply here. After further review, I think I understand where you're coming from RE: the Contract Generator, so as long as you feel you're sufficiently pushing users to review the User Guide before moving forward, I think we're in a solid place.
@markedconfidential @deayora @Andreandi @zikewu @jacob-tucker
Can someone from Dapper please answer my question above?
Hello @Curiosity-Flow, thank you for providing the beautiful translation on Touchstone! We are close to phase 2 front-end completion. Once it's approved we will transfer the 25% payment. In the meantime I'll coordinate with Emerald City and check if there is anyway we can prioritize the payment to translators. Thank you! π
@zikewu
Thank YOU for answering! And yes please about prioritizing the payment to translators. I can only speak for myself: my translation is 100% completed in Spanish and I shared the files with @jacob-tucker (as mentioned before).
I'll stay tuned on this page about any updates and progress on this. Thank you again!
Hey @zikewu , thank you for the updates.
If Milestone #2 is complete, that's awesome! Please let us know if there's anything we need to do to complete Milestone #3. I believe this is the code review step, and all the code can be found here: https://github.com/emerald-dao/token-minter
In the meantime, assuming the additional translation bounty is approved, we can prioritize distributing these payments. Thank you
Hellooo! This is Jacob Tucker, filling out an issue to initiate this bounty on behalf of Emerald City.
Team Members: The Building Guild of Emerald City. We have ~40 community members interested in building this out as a community and applying their talents to specific areas of the project.
Contact Info: You can reach out to me at jacobtucker818@gmail.com or ping me in Discord (tsnakejake#8364). Additionally, you will be able to see the progress of the development of this platform in an open-source format in our Discord: discord.gg/emeraldcity
Why should we take on this bounty? Emerald City has around 40 community members who are interested to take on this task. Because we have built projects/tools in an open-source format already (including the FLOAT platform and Emerald bot), we already know and identify the specific talents of our community members and can leverage that to build this platform quickly.
In addition, Emerald City treats the projects we build as a learning experience for Flow developers. We have a ton of members who recently graduated from our Academy who want to get their hands dirty with a full-scale DApp on Flow. In addition, some have not been a part of building full-scale projects in the past, and would like to use this as an opportunity to learn so they can create their own projects on Flow. They would not only learn how to tackle a "serious" application, but also learn how to make real MainNet projects on Flow.
Lastly, of course, we would use this as an opportunity to reward our experienced developers looking for work with this bounty and give them a place to contribute during the duration of the bounty.
Product Requirements Documentation and Tech Spec:
The NonFungibleToken standard as it currently stands requires that you have 1 type of NFT per contract. Platforms like Rarible, though, use 1 Contract for all of their NFTs, and differentiate them by the metadata within the NFT itself. We will take a different approach, which I believe is more aligned with the requirements of this bounty, to deploy a different NFT contract for each creator (which I also think is what the example platforms provided were doing).
In order for this to take place, it will be required to have access to MainNet deployment at some point, but that is something to worry about at the end. For the duration of the bounty, we will test this deployment of contracts to the user's account on Emulator + Testnet.
One interesting side effect of this platform is that it requires us to think more deeply about NFT Metadata. As we know, the NFT Metadata standard was released not too long ago on MainNet, and has sought to become adopted by projects across the ecosystem. This is a perfect opportunity to integrate the standard without having to go through the pain of encouraging developers to implement it. If we automate it directly in the code, every NFT Collection created will automatically implement the standard, allowing for greater NFT discoverability across the ecosystem.
The platform itself will be straightforward - it will allow a user to log in through Blocto, walk through a step-by-step process to fiddle with NFT Metadata (which will have IPFS integration for images/videos/etc), and then display a resulting modal with the configured contract. I also really liked that https://www.721.so/ displayed the contract on the side bar while you were configuring the contract because it allows for the creator to learn something about smart contracts in the process. So we will have that too.
At that point, it's just a matter of making things look pretty.