I was researching the ERC721 standard on Openzeppelin and I have noticed that there is not public or external "transfer" function.
I see internal "_transfer" function, that is called by "_safeTransfer" (which has internal visibility too) and transferFrom (public function).
I want to make sure that the only way to transfer an ERC721 token (NFT) is using the "transferFrom" function. Is there any other way to let users transfer their NFTs directly from their wallets, without requiring to indicate their address in "transferFrom" function?
In ERC20 standard the "transfer" function gets the owner using msg.sender property. Why ERC721 does not implement the same mechanism?