Programming cryptocurrency wallets
I can help to answer about how wallet submits transactions to the network. Bitcoin wallet clients solve this problem with several methods. Several reliable peers are registered in DNS under the name bitseed.xf2.org. By doing a nslookup, a client gets the IP addresses of these peers, and hopefully one of them will work. If that doesn't work, a seed list of peers is hardcoded into the client.

The hardcoded peer list in the Bitcoin client is in chainparams.cpp in the array vSeeds.