I'd like to make raising funds in ETH as easy as possible. This is the flow that I'm imagining for my average user:
1) User visits my ICO page
2) They download a key and address file generated in-browser
3) They're also shown a second address that says "send ETH here to convert it to a token in the wallet you just downloaded"
4) (Important) because the user is only a trader, they go to their exchange page and type in the address from step 3
5) When the exchange processes the withdrawal, they get tokens from the address in step 2
What I'm asking is how to optimize this process from a smart contract perspective. The way I see it, each user needs a "token receipt" address (to receive their tokens; downloaded from my page) and a "eth receiving" address (to send ETH to from the exchange; already recognized by the smart contract). But, while "token receipt" addresses can be generated on the fly, there should be "eth receiving" addresses already in the smart contract (so that a user can load the page and already have an eth receiving address assigned to them).
I guess my first question is, are there any existing smart contract libraries already available that enable the overrall scope of this question? No need to re-invent the wheel.
If there aren't, what's the best approach to do? Launch the smart contract with 10,000 "eth receiving" addresses? Is there any way I can automatically forward money sent to the "Eth Receiving" addresses to a single multi-sign address? (To protect funds better and not have 10000 of keys for each eth transaction received).