tony & guys, you should start advertising ByteBall as anonymous messenger with built-in crypto. It will have more potential for adoption right now. After that will come adoption for crypto on already established user base.
For that plan, support for profile data and search must be added. In-chat image support will be good to. With prices for storage of 0.5$ usd for 1MB on chain you can ever store photos in-place. (My company have 100kb-photos in Outlook)
Maybe we should start side chain with time-limited storage like in file sharing services with prices in bytes per month for data storage like in Sia-coin. Or publish that data on DHT P2P system (with constant republishing for refresh (like in Kademlia), say 1 week persistence after that data and user will be considered "offline" and be unavailable until user go back online and republish).
Or just built in support for Sia with built-in exchange like for GBYTE-BTC.
I suggest built in searchable profile storage on chain and image support on side-chain or Sia.
Also look for blockchains for content publishing have it on ByteBall will be good too. Maybe we should start developing desktop-size client for this.
In short, for beginning:
1. Add Kademlia support (google for "The Kademlia DHT in Javascript for Node.js")
2. Add user profile support, store it on Kad DHT, use built-in Kademlia search ability. Use wallet id to distinguish duplicates, part of wallet id can be communicated on side channel.
User profile at this stage can be non-anonymous. Maybe who seek anonymity should just activate Tor or I2P.
Then extend:
3. Consider some persistent distributed storage system for content (like photos) storage, like Sia. Use separate asset. Maybe issue it with proof-of-storage algorithm.
4. Add exchange bot for buying storage on (3).
Open questions:
Maybe hubs or witnesses can store profile data and we can skip DHT at beginning?
Some contact data can be used to automatically discover friends, like hash user phone with full name and publish wallet id, if friend have that data in contact list then it can discover friend's wallet id automatically.