Transferring NFT's without manually signing transactions

I have ERC-1155 NFT’s sitting on Polygon network. They are listed on OpenSea and Rarible so anybody can purchase them from there. I also would like to sell them on my own app without manually signing transactions (authentication) from my backend server. That blue “Sign” button on MetaMask (Firefox extension) is what I am referring to when I say manually signing transactions every time you transfer an NFT. Although I know there are websites where they allow you to batch send, they still require me to authenticate/sign manually.

Here is the scenario:

  1. Customer buys an NFT within my app (web or mobile)
  2. An API on my backend gets called

On the second step, I would like to automatically transfer the NFT to the destination wallet address without me signing the transaction.

I am new to the field and have done my research, and it is doable from what I understood. I do not want to jump in coding right away and perhaps I will realise after days of work that there is a huge part missing in the process or that it is not even easily possible that way and I basically will need to create my own wallet provider (like MetaMask).

I was wondering if this is possible via Moralis? If not, do I simply need to go with web3.js? If the answer is solely web3.js, then what are the steps that I need to follow?

I am happy to feed Moralis API’s/web3.js with my private key to my wallet address where all of my NFT’s are (because it is obvious to me that there is no other way).

Thanks in advance.

You can use a backend like Node.js/Express that uses ethers.js or web3.js. You create a wallet instance using your private key which allows you to programmatically sign any transactions you want in code.

Moralis’s SDK can be used with node and has ethers.js built in.