My understanding is that all cryptocurrencies(including bitcoin) have a public/private key pair that is needed to perform transactions. I am curious how exchanges program these wallets and generate the keypair for all the cryptocurrencies. I assumed there would be a wallet SDK for each cryptocurrency so that developers could program their own wallets, but did not find any such thing. Also, how do they programmatically submit transactions to the network? I assume you need to provide some IP, but since this is a decentralized network what IP would you provide?
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.