Using Ethereum wallet if I create a token and deploy it I can then interact with it and use the functions of that token (e.g. transfering tokens).

However, if I deploy a crowdsale contract and that contract creates the tokens by calling the constructor of the token contract within it I cannot interact with the tokens. I have added the tokens to the watch list using the name, symbol, decimals and contract address, so that I can see correct balances for my wallets, but I cannot use the tokens' functions (such as the transfer function).

How can I make these token functions usable?

1 Answer 1


The deployer is not specially privileged in most ERC20 implementations, except for one important detail. Generally, the initial supply of tokens is given to whoever deployed the ERC20 contract. If that's the case, then the CrowdSale probably has them and only the CrowdSale can send them. You can check that explanation by inspecting the ERC20 contract balanceOf(address crowdSale).

That might even be ideal if the crowdSale is meant to exchange them for ether. If not, you could include an onlyOwner function to summon the CrowdSale to forward tokens to the wallet where you want them.

Hope it helps.

  • Thanks Rob, the actual crowdsale part works. Users can buy tokens by sending ether to the crowdsale address and their balances show correctly when they add the custom token to their watch list in Ethereum wallet. What I am asking is how can a user actually use the functions of the ERC20 tokens they buy (transfer, approve, transferfrom, etc.) The tokens have these functions, but when bought from the crowdsale there seems to be no way to interact with them. Thanks if you can help me out, I appreciate it. Commented Mar 6, 2018 at 9:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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