I am using web3.js 1.0.0-beta.36 to connect to the blockchain. But unfortunately this code cannot connect to Metamask, if it has been enabled. var metamask = false; if (typeof web3 !== 'undefined') { web3 = new Web3(web3.currentProvider); metamask = true; web3.eth.defaultAccount = web3.eth.accounts[0]; } else { web3 = new Web3(new Web3.providers.HttpProvider(infuraUrl)); var address = web3.eth.accounts.create().address; } myContract = new web3.eth.Contract(abi,contractAddress); myContract.methods.Register((Name,Id).send({},function(error,result){ if (! error) console.log(result); else console.log(error); }); When we run this program with Metamsk it displays this error: Error: Returned error: Error: MetaMask Tx Signature: User denied transaction signature. but when I mention a fixed address it works: myContract.methods.Register((Name,Id).send({from: '0x...'},function(error,result){ if (! error) console.log(result); else console.log(error); }); For some reasons I can't bring the address itself in the source code and I want it to get the address from Metamask. What should I do?