I want to create a web app that will allow users to deploy a smart contract for ERC721 SBT (Soul-Bound Tokens) and then transfer those SBTs to specific accounts. However, I intend to keep it as a no-code platform where users with limited knowledge of Solidity can deploy the contract. As far as I understand, deploying the contract requires the ABI, bytecode, public key (wallet address), and private key. I possess the ABI and bytecode, and my users can share their wallet addresses, but they understandably won't share their private keys. Is there a method by which I can facilitate the deployment of the SBT contract using their addresses?
Several platforms are available that offer this capability. For instance: https://mintnite.io.
On Mintnite, users can perform this action for SBTs as well as other token types. In my specific use case, I only need this functionality for SBTs. Essentially, I am developing a substantial app centered around SBTs.
I aim to incorporate a feature similar to https://mintnite.io, allowing users to first deploy the SBT contract using their addresses, and subsequently issue these SBTs to others. While the second part of issuing SBTs is achievable, I'm encountering difficulties with the first part. The challenge lies in the fact that if I personally deploy the contract, I would become its owner. Consequently, only I would have the ability to issue SBTs to other accounts, not the users of my application.
I have the smart contract of SBT ready to be written using Solidity and I have the json ABI and bytecode too. I am building my platform using MERN stack.