I have coded a token that has about 5000 addresses. With token balances in them Each of these addresses will release tokens at a controlled rate.

I would like these tokens to represent shares and voting weight in a decentralized autonomous organization and the hardcoded 5000 addresses to be part of a blockchain congress. I do not necessarily want to have a crowdsale or a ICO per say. Can I deploy the DAO contracts on top of my token contract at a later date in time in this order.

1) deploy token contract 2) several weeks/months later deploy shareholder organization contract on top of token contract. 3) deploy blockchain congress contract

Do I have to make sure my token contract is Admined and make sure that only the eth address I deployed the token contract is able to deploy new code on top of it,making the tokens i created the official shares in the DAO.

Please excuse me if I seem like a noob. I just want to deploy the token first because it takes so much time to audit a DAO and testing to make it secure. I would feel better if I could deploy the 2 contracts on top of the token at a later date.

I did some tests where I was able to deploy the DAO on top of a crowdsale contract but I might want to opt out of a crowdsale and just distribute the token by other means then deploy the DAO contract on top of my token.

Is this possible and safe practice?

Can I deploy my token now and then deploy the DAO contracts on top of it at a much later date when I feel the code is secure and safely audited?

What is the best practice for doing something like this?

thank you in advance lots of smart people here.

2 Answers 2


It would be preferable to audit the token contract and deploy all of them simultaneously. Having said that, if you want people to have access to the token before the DAO is consolidated, there’s nothing stopping you in doing so.

  • If you want the contract to only be modifiable by you, that means you want to make it Ownable. OpenZeppelin has great resources on that.
  • To achieve upgradability, you could have a proxy contract which manages the current version of the contract, and multiple deployed instances of your token. Be wary that there are specific limitations and drawbacks though. Check out this thread for more details.

Thank you Paul. I am not really looking for upgradability in the token or dao contract once they are all deployed together My dream is to have it function and be unstoppable once it is safley deployed (it is my baby i have been working on this for years now). The token is very unique so i do not like the idea of multiple deployed instances of the token since the 5000 addresses are hardcoded into the token contract and already have special permissions and restrictions. Permissions in the token contract release a very small controlled amount of tokens that the owner of one of those addresses can liquidate at any time when permissible, however, the owner of that address can use all the tokens held in the hard coded address in the token contract as voting weight in the DAO but is unable to send more tokens to that address to increase the voting weight and is unable to spend them all at once.

SO correct me if I am wrong but I believe my best options are to

1) inherit all the contracts appropriately in the compiler and deploy them at once (I would like to avoid this as DAO contracts can be very unpredictable even when all measures are taken to make it secure as possible and I really need more time! Also if my all time hero and idol, Sergey Nazarov, solves the oracle problem that would be something I would want to DEFINITELY incorporate into a DAO!)

2) deploy the one single Token contract with the 5000 hard coded addresses, which has been done for over a year now, and make the Token own-able and safely deploy the DAO contracts on top of the token contract at a later date after I have already distribute the token to potential speculative share holders who will anticipate the Code I have yet to deploy on top of the own-able token.

Is option 2 viable?

3) Is making a token contract admined bad practice in this situation rather than using Ownable? Am I able to still deploy the shareholder organization contract and the blockchain congress contract on top of my token if i make all my contracts admined and use a modifier onlyAdmin. I was able to do that with a crowdsale contract then deploy the code on the crowdsale address later on my private net but with current regulations I want to avoid an ICO and just focus on the power of a DAO code. I learn little more everyday.

contract admined {
address public admin;

function admined() public {
    admin = msg.sender;

modifier onlyAdmin(){
    require(msg.sender == admin) ;

function transferAdminship(address newAdmin) onlyAdmin public {
    admin = newAdmin;


I think I might have answered my own question. :/ hope this threads helps someone.

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.