Suppose we have an address, call it "Receiver", which receives a certain amount of Ether from various investors. We also have a second wallet, call it "Sender", which is holding all of our newly created tokens.

Now the ICO finishes, and we want to issue the correct amount of tokens to each investor.

The question is, how can we create a "Sender" so that it can scan through "Receiver", calculate the corresponding tokens, and then send them to each investor?

  • What don't you make a smart contract? – Florian Castelain Jan 26 '18 at 3:01
  • Only "Sender" can use Smart Contracts. "Receiver" should be a simple address; without you having any access to it (unknown private key). – enriquejr99 Jan 26 '18 at 3:04
  • Then I don't understand what you are trying to do. For an ICO, just make a smart contract that give tokens every time it receives ether. – Florian Castelain Jan 26 '18 at 3:09
  • I do understand how to make a standard ICO. My question is, would this type of ICO be possible? Sorry if I did not make this clear, this is just a theoretical question. – enriquejr99 Jan 26 '18 at 3:12
  • If receiver is JUST an address (normal "account"), then you have no way to check, only using the blockchain (uncless you go through all transactions receipts), who sent what, and then no way to send tokens to their theoratical owners. – Florian Castelain Jan 26 '18 at 3:13

I'm not sure why you would want to do this but anyways. Lets say you start your ICO at block 4,900,900 and continue until block 4,900,999. After you conclude the ICO, you could run a python script that searches the transaction history in between those blocks, calculating the total amount of ether sent from each address. Afterwards, you can have the same python script calculate how many tokens each person is to receive, and then utilizing web3py (or another web3 library) you can contact your token contract, and tell it to send X coin to Y address.

That being said I have no idea why you wouldn't just write a smart contract to do an ICO. Not only would it probably require significantly LESS development time, testing, and lines of code but it would all be handled autonomously via on-chain processes through the use of smart contracts.

Also I would never invest in an ICO where the recipient address is a plain old address and not a contract as it would look like a scam just an FYI. I imagine many other people will feel the same way.

And yes its entirely possible to tell an address, from a contract address. You could use the assembly opcode extcodesize(addr) amongst other tactics.


I can't remember the name but there was an ICO that scammed it's investors and the recipient address was a plane old address not a contract address.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.