Ganache is as server node to ethereum chain and you can using standart ethereum rpc api (attention, look port , default,7545 , but bettet to check, see here more details about configuration ganache https://www.trufflesuite.com/docs/ganache/reference/workspace-default-configuration)
For calling method to only getting data from smart you should using https://...
Yes, you can generate one Wallet contract per every EOA of your user, and this contract may act on behalf of the user, being the user who controls it with its signature. To see an example, check Augur's Wallet contracts here: https://github.com/AugurProject/augur/blob/0a12a20a3ab0f4a822ec2c5070136e3e4a8180c4/packages/augur-core/src/contracts/...
Note for these you will need the ABI of the contract.
@ethersproject/abi (part of the umbrella package ethers)
Use @ethersproject/abi, it's the safest approach of all. Ethers is ...