Toacin :. A Managed DAO Solution
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Toacin :. A Managed DAO Solution


ToAcin [toh-kuh n] is based on the Web 3.0 concept of a Token of Asset. Toacins serve to allow for real-world and/or digital assets to offer subscriptions (ie tokens), which facilitate a payable distribution of profit via an Ethereum Smart Contract.

Toacins are based on Ethereum's ERC20 Token Standard, with the following additional specifications:


  • isMaster (bool): Is this contract the current Master of the hierarchical chain?
  • Parent (address): The address of the parent for this contract (if available).
  • Child (address): The address of the child for this contract (if available).

Funding (Optional)

  • isFunding (bool): Is this contract currently funding a Toacin?
  • ToacinsPerEth (uint): Number of toacins received for each ether sent.
  • FundingStart (uint): Date/time (in seconds since epoch) of the funding launch.
  • FundingEnd (uint): Date/time (in seconds since epoch) of the funding completion.

(all amounts are denominated in bits)

Types of Toacin Funding

Funding Title Duration Description
Traction Builder < 30 days Discounts based on remaining quantity of subscriptions.
Daily Dutch 30 - 60+ days Daily lots awarded to the highest bidder(s).
Campaign 30 - 120+ days Extended fundraiser with discounts based on date/time of subscription.
Dutch Express < 7 days Timed (Hourly) lots awarded to the highest bidder(s).

Solidity Contracts

There are a total of 7* files that make-up the Toacin Framework:

  1. Toacin_<type>.sol (published on-chain)
  2. ToacinDb.sol (published on-chain)
  3. ToacinFinance.sol (published on-chain)
  4. ToacinFramework.sol
  5. ToacinFuncs.sol
  6. ToacinMath.sol
  7. ToacinSettings.sol

* In theory, this structure would be greatly reduced with improved "upgradeability" of Ethereum contracts.

Code Snippet

function transfer(address _to, uint _value) onlyPayloadSize(2 * 32) {
    /* Check if sender has balance and for overflows. */
    if (_balances[msg.sender] < _value) throw;

    /* Subtract value from sender's balance. */
    setBalance(msg.sender, ToacinMath.sub(_balances[msg.sender], _value));

    /* Update the receiver's balance. */
    setBalance(_to, ToacinMath.add(_balances[_to], _value));

    /* Notify anyone listening that this transfer took place. */
    Transfer(msg.sender, _to, _value);

Managed Decentralized Autonomous Organizations

coming soon...

View the FIRST100 Toacins →