Here is a very high level overview of the research I have done on this.

I am planning to connect a "web3" and wallet code as a plugin in the C++ layer of HiFi. There doesn't exist a full C++ "web3" project that I could find. I will create one using these projects as start:

https://github.com/Sufi-Al-Hussaini/eth-rpc-demo-cpp

https://github.com/firefly/wallet/tree/master/source/libs/ethers

This one is critical to performance: https://quickblocks.io/

I will make that a separate 2 libraries, web3.c++ and rpcwallet or something.

I will make a plugin like I did for the OpenAI Gym stuff that will expose the web3 functionality in the HiFi JavaScript. This is where people will be able to make Dapps. It should be easier to port existing browser Dapps like district0x marketplaces to this.

I will put the wallet functionality directly in the right place in the client so that other people can't fake it with their domain or other JavaScript code. This will be purely C++. Think of it like the "MetaMask" of HiFi.

Once this is done I can implement uPort for identity and permission management similar to what we are doing for Nuhanse Totems.

I want to put IPFS in there too and that's just as simple as running the daemon and using this https://github.com/vasild/cpp-ipfs-api or just embedded using this https://github.com/Agorise/c-ipfs