NFT minting website with Web3.JS and Arweave.js
Budget: $30 – $250 USD
Website to mint NFT tokens with customised metadata on Arweave (AR) for game.
User logs into website with metamask via web3.js
Step0 - User pressing mint button to mint token from our contract ( only if user is whitelisted but this is already in contract)
Once mint is successful user can fill in the form to construct their token data:
Variables:
NFTimage - option for image to be uploaded by user in png format or use default png - this option is user choice. (choice is required)
About - max 200 txt characters.( required to fill in )
Content - max 100kb of text( required to fill in )
CustomContentupload - 1 file max 1mb ( optional for user )
(save button)
At this stage we need to save above content on our server against user ERC20 address - whichever method is simplest ( probably json files will be best solution rather than mysl or txt ) - at this point user can edit all above.
If user press "Submit" button then :
Upload user data to permaweb we need to create json file from user content and post JSON and data to Arweave by using Arweave-JS ( we need mechanism which will stop user from using our AR funds more than once per token id or abuse this in any other way - to avoid keeping all the records in database maybe we can use call function to contract ReadTokenUri and if is not blank then allow user to execute Arweave-JS via proxy kind of method so our key is not compromised )
If upload was successful user cannot edit their data any more.
If user has multiple tokens minted he need to have a choice to choose token on which SetTokenURI function will be executed - user can choose token id) - if try to setTOKENuri for token which already have TokenURI then error msg.
JSON for upload should looks like:
{
"description": " Content ",
"image": "ar://HASH/uploadedUserNFTimage.png OR defaultWebsiteImage.png",
"attributes": [
{
"trait_type: " About "
"value": " Title"},
{
"trait_type": "My File:",
"value": "ar://HASH//CustomContentupload.extenstion" - if user upload content on website
}
]
}
Contract is ready and have all functionality already what need to be done is the frontend part without graphic for above functionality and Arweave-JS logic.
This is non profit project so budget is limited.
User logs into website with metamask via web3.js
Step0 - User pressing mint button to mint token from our contract ( only if user is whitelisted but this is already in contract)
Once mint is successful user can fill in the form to construct their token data:
Variables:
NFTimage - option for image to be uploaded by user in png format or use default png - this option is user choice. (choice is required)
About - max 200 txt characters.( required to fill in )
Content - max 100kb of text( required to fill in )
CustomContentupload - 1 file max 1mb ( optional for user )
(save button)
At this stage we need to save above content on our server against user ERC20 address - whichever method is simplest ( probably json files will be best solution rather than mysl or txt ) - at this point user can edit all above.
If user press "Submit" button then :
Upload user data to permaweb we need to create json file from user content and post JSON and data to Arweave by using Arweave-JS ( we need mechanism which will stop user from using our AR funds more than once per token id or abuse this in any other way - to avoid keeping all the records in database maybe we can use call function to contract ReadTokenUri and if is not blank then allow user to execute Arweave-JS via proxy kind of method so our key is not compromised )
If upload was successful user cannot edit their data any more.
If user has multiple tokens minted he need to have a choice to choose token on which SetTokenURI function will be executed - user can choose token id) - if try to setTOKENuri for token which already have TokenURI then error msg.
JSON for upload should looks like:
{
"description": " Content ",
"image": "ar://HASH/uploadedUserNFTimage.png OR defaultWebsiteImage.png",
"attributes": [
{
"trait_type: " About "
"value": " Title"},
{
"trait_type": "My File:",
"value": "ar://HASH//CustomContentupload.extenstion" - if user upload content on website
}
]
}
Contract is ready and have all functionality already what need to be done is the frontend part without graphic for above functionality and Arweave-JS logic.
This is non profit project so budget is limited.