title: How to force the transfer of an NFT using Web3.js or Ethers.js
body: <p>I am trying to build an application, and part of it involves transferring an NFT from my account to the user's. Previously, I was using Moralis to accomplish this, but this code threw an error saying <code>Error: Contract with a Signer cannot override from (operation=&quot;overrides.from&quot;, code=UNSUPPORTED_OPERATION, version=contracts/5.6.0)</code>
  My previous code was:</p>
  <pre class="lang-js prettyprint-override"><code>async function giveNFTtoUser(address, token) {
    let userWallet = await getAddress();
    let web3 = await Moralis.enableWeb3({
          chainId: 0x13881,
          privateKey:
            &quot;{private key for my account}&quot;
    });
    console.log('in get nft')
    const options = {
        type: &quot;erc721&quot;,
    receiver: userWallet,
    contractAddress: address,
      tokenId: token
      };
    let transaction = await Moralis.transfer(options);
    let result = await transaction.wait();
    return result;
  }
  </code></pre>
  <p>How could I do something like this in web3 or ethers, where I use a different account's private key to transfer an NFT from that account to the account of the user that is logged in?</p>