using MoralisUnity.Web3Api.Models;
using MoralisUnity.Platform.Objects;
using Nethereum.Hex.HexTypes;
public async void transferNFT721()
string EIPTransferNFTABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]";
MoralisUser user = await Moralis.GetUserAsync();
string fromAddress = user.authData["moralisEth"]["id"].ToString().ToLower();
string toAddress = "0xE6502...";
// change the contract address to transfer different tokens
string BAYCContractAddress = "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D";
string FunctioName = "transferFrom";
// params - fromAddress, toAddress, tokenId
object[] inputParams = { fromAddress, toAddress, 2 };
HexBigInteger value = new HexBigInteger("0x0");
HexBigInteger gas = new HexBigInteger("800000");
HexBigInteger gasprice = new HexBigInteger("230000");
string result = await Moralis.ExecuteContractFunction(contractAddress: BAYCContractAddress, abi: EIPTransferNFTABI, functionName: FunctioName, args: inputParams, value: value, gas: gas, gasPrice: gasprice);
Debug.Log("Txhash :" + result);
Debug.Log("Error :" + error);