ERC20 DAO Token Smart Contract Module in Bunzz

We are excited to announce our new ERC20 DAO Token Module available in Bunzz and created by deep-quality-dev.

This contract allows you to get a snapshot of balances of all the token holders from a DAO and transfer tokens to multiple addresses after proposals are approved.

Supporting ERC20 standard, this contract is mainly used for DAO.

  • The main functionality of this contract is getting a snapshot of balances of all the token holders. Every time the proposal creators create the proposal, it creates the snapshot by the authorized user. The snapshot can be used as voting power according to the proposal strategy.
  • Another functionality of this contract is transferring tokens to multiple addresses. Once the proposal has been approved, sometimes it requires to transfer assets to the specified addresses if it is a funding proposal.

You can access this Module and the code here:

How to use

  1. Create a DAO token with a token name, symbol and decimals
  2. The owner can mint the totalSupply amount of tokens by calling the mint function and transfer all the tokens to a multi-sig wallet like Gnosis Safe.
  3. Determines the list of author addresses.
  4. The owner can grant snapshot authorization to this list of authors by calling the authorizeSnapshotter function.
  5. Before creating a proposal, the DAO authors create a snapshot by calling the snapshot function.
  6. Token holders have their token balance as voting power and to participate in voting.
  7. Proposal can be a funding proposal, once a funding proposal has been approved, governance contract can transfer assets to specific addresses calling the transferBulk function through a multi-sig wallet.



  • unpause
  • transferOwnership
  • transfer
  • transferFrom
  • transferBulk
  • pause
  • renounceOwnership
  • snapshot
  • increaseAllowance
  • mint
  • burn
  • deauthorizeSnapshotter
  • decreaseAllowance
  • authorizeSnapshotter
  • approve


  • owner
  • paused
  • symbol
  • totalSupplyAt
  • totalSupply
  • name
  • getCurrentSnapshotId
  • decimals
  • balanceOfAt
  • authorizedToSnapshot
  • balanceOf
  • allowance

You can access this Module and the code here:

If you still haven’t signed up to Bunzz, what are you waiting for?

Sign up here and get your smart contracts deployed in 5 minutes through our great GUI.

Share this article: