2.0 users can access a WebApp to create a Wallet and mint NFTs without any 3.0 knowledge, they can upload an image and decide if they want to mint it. We will handle the process of creating the Wallet and deliver to the user the seed phrase public address and private key, we don't handle this information. They can see their NFTs in the dashboard and mint new ones. At the end, they have a wallet with NFTs, and they can decide if they want to keep their profiles at the platform or burn it, but keeping the wallet and their information in the blockchain.
This project uses Web3Auth, user logs in with their email address, if they decide to create a wallet, with ethers library I generate the wallet but the only thing I will store is the public address to link the email with that public address.
This process will deliver the user the seed phrase and private key.
Why do we need the public key? To query the contracts minted with that address.
If the user decides to mint an NFT they will have to sign the tx with the private key which will ask to sign.
We will eventually need to fund this account for testing purposes with a MATIC faucet in mumbai network.
The stack for the project NextJS, Firebase, Web3Auth, Moralis, Truffle, Polygon.