Token SNGLS

 

Overview [ERC-20]

Price
$0.00 @ 0.000000 Eth
Fully Diluted Market Cap
Max Total Supply:
1,000,000,000 SNGLS

Holders:
12,103 ( -0.008%)

Transfers:
-

 
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

OVERVIEW

A Blockchain Entertainment Studio, Smart Contract Rights Management Platform and Video On-Demand Portal

Profitability / Loss

Since Initial Offer Price
:$0.02 99.42%

Market

Volume (24H):$0.01
Market Capitalization:$103,533.00
Circulating Supply:890,000,000.00 SNGLS
Market Data Source: Coinmarketcap

ICO Information

ICO Start Date : Oct 02, 2016   
ICO End Date : Oct 02, 2016
Total Cap : $7,500,000
ICO Price  : $0.02 
Country : Channel Islands

# Exchange Pair Price  24H Volume % Volume
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SingularDTVToken

Compiler Version
v0.3.5+commit.5f97274

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2016-10-05
*/

/// Implements ERC 20 Token standard: https://github.com/ethereum/EIPs/issues/20

/// @title Abstract token contract - Functions to be implemented by token contracts.
/// @author Stefan George - <[email protected]>
contract Token {
    // This is not an abstract function, because solc won't recognize generated getter functions for public variables as functions
    function totalSupply() constant returns (uint256 supply) {}
    function balanceOf(address owner) constant returns (uint256 balance);
    function transfer(address to, uint256 value) returns (bool success);
    function transferFrom(address from, address to, uint256 value) returns (bool success);
    function approve(address spender, uint256 value) returns (bool success);
    function allowance(address owner, address spender) constant returns (uint256 remaining);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}



contract StandardToken is Token {

    /*
     *  Data structures
     */
    mapping (address => uint256) balances;
    mapping (address => mapping (address => uint256)) allowed;
    uint256 public totalSupply;

    /*
     *  Read and write storage functions
     */
    /// @dev Transfers sender's tokens to a given address. Returns success.
    /// @param _to Address of token receiver.
    /// @param _value Number of tokens to transfer.
    function transfer(address _to, uint256 _value) returns (bool success) {
        if (balances[msg.sender] >= _value && _value > 0) {
            balances[msg.sender] -= _value;
            balances[_to] += _value;
            Transfer(msg.sender, _to, _value);
            return true;
        }
        else {
            return false;
        }
    }

    /// @dev Allows allowed third party to transfer tokens from one address to another. Returns success.
    /// @param _from Address from where tokens are withdrawn.
    /// @param _to Address to where tokens are sent.
    /// @param _value Number of tokens to transfer.
    function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
        if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0) {
            balances[_to] += _value;
            balances[_from] -= _value;
            allowed[_from][msg.sender] -= _value;
            Transfer(_from, _to, _value);
            return true;
        }
        else {
            return false;
        }
    }

    /// @dev Returns number of tokens owned by given address.
    /// @param _owner Address of token owner.
    function balanceOf(address _owner) constant returns (uint256 balance) {
        return balances[_owner];
    }

    /// @dev Sets approved amount of tokens for spender. Returns success.
    /// @param _spender Address of allowed account.
    /// @param _value Number of approved tokens.
    function approve(address _spender, uint256 _value) returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);
        return true;
    }

    /*
     * Read storage functions
     */
    /// @dev Returns number of allowed tokens for given address.
    /// @param _owner Address of token owner.
    /// @param _spender Address of token spender.
    function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
      return allowed[_owner][_spender];
    }

}

contract SingularDTVFund {
    function workshop() returns (address);
    function softWithdrawRevenueFor(address forAddress) returns (uint);
}
contract SingularDTVCrowdfunding {
    function twoYearsPassed() returns (bool);
    function startDate() returns (uint);
    function CROWDFUNDING_PERIOD() returns (uint);
    function TOKEN_TARGET() returns (uint);
    function valuePerShare() returns (uint);
    function fundBalance() returns (uint);
    function campaignEndedSuccessfully() returns (bool);
}


/// @title Token contract - Implements token issuance.
/// @author Stefan George - <[email protected]>
contract SingularDTVToken is StandardToken {

    /*
     *  External contracts
     */
    SingularDTVFund constant singularDTVFund = SingularDTVFund(0xe736091fc36f1ad476f5e4e03e4425940822d3ba);
    SingularDTVCrowdfunding constant singularDTVCrowdfunding = SingularDTVCrowdfunding(0xbdf5c4f1c1a9d7335a6a68d9aa011d5f40cf5520);

    /*
     *  Token meta data
     */
    string constant public name = "SingularDTV";
    string constant public symbol = "SNGLS";
    uint8 constant public decimals = 0;

    /*
     *  Modifiers
     */
    modifier noEther() {
        if (msg.value > 0) {
            throw;
        }
        _
    }

    modifier workshopWaitedTwoYears() {
        // Workshop can only transfer tokens after a two years period.
        if (msg.sender == singularDTVFund.workshop() && !singularDTVCrowdfunding.twoYearsPassed()) {
            throw;
        }
        _
    }

    modifier isCrowdfundingContract () {
        // Only crowdfunding contract is allowed to proceed.
        if (msg.sender != address(singularDTVCrowdfunding)) {
            throw;
        }
        _
    }

    /*
     *  Contract functions
     */
    /// @dev Crowdfunding contract issues new tokens for address. Returns success.
    /// @param _for Address of receiver.
    /// @param tokenCount Number of tokens to issue.
    function issueTokens(address _for, uint tokenCount)
        external
        isCrowdfundingContract
        returns (bool)
    {
        if (tokenCount == 0) {
            return false;
        }
        balances[_for] += tokenCount;
        totalSupply += tokenCount;
        return true;
    }

    /// @dev Transfers sender's tokens to a given address. Returns success.
    /// @param to Address of token receiver.
    /// @param value Number of tokens to transfer.
    function transfer(address to, uint256 value)
        noEther
        workshopWaitedTwoYears
        returns (bool)
    {
        // Both parties withdraw their revenue first
        singularDTVFund.softWithdrawRevenueFor(msg.sender);
        singularDTVFund.softWithdrawRevenueFor(to);
        return super.transfer(to, value);
    }

    /// @dev Allows allowed third party to transfer tokens from one address to another. Returns success.
    /// @param from Address from where tokens are withdrawn.
    /// @param to Address to where tokens are sent.
    /// @param value Number of tokens to transfer.
    function transferFrom(address from, address to, uint256 value)
        noEther
        workshopWaitedTwoYears
        returns (bool)
    {
        // Both parties withdraw their revenue first
        singularDTVFund.softWithdrawRevenueFor(from);
        singularDTVFund.softWithdrawRevenueFor(to);
        return super.transferFrom(from, to, value);
    }

    /// @dev Contract constructor function sets initial token balances.
    function SingularDTVToken() noEther {
        // Set token creation for workshop
        balances[singularDTVFund.workshop()] = 400000000; // ~400M
        // Set token creation for core
        balances[0x0196b712a0459cbee711e7c1d34d2c85a9910379] = 5000000;
        balances[0x0f94dc84ce0f5fa2a8cc8d27a6969e25b5a39273] = 200000;
        balances[0x122b7eb5f629d806c8adb0baa0560266abb3ec80] = 450000;
        balances[0x13870d30fcdb7d7ae875668f2a1219225295d57c] = 50000;
        balances[0x26640e826547bc700b8c7a9cc2c1c39a4ab3cbb3] = 900000;
        balances[0x26bbfc6b23bc36e84447f061c6804f3a8b1a3698] = 250000;
        balances[0x2d37383a45b5122a27efade69f7180eee4d965da] = 1270000;
        balances[0x2e79b81121193d55c4934c0f32ad3d0474ca7b9c] = 4200000;
        balances[0x3114844fc0e3de03963bbd1d983ba17ca89ad010] = 5000000;
        balances[0x378e6582e4e3723f7076c7769eef6febf51258e1] = 680000;
        balances[0x3e18530a4ee49a0357ffc8e74c08bfdee3915482] = 2490000;
        balances[0x43fed1208d25ca0ef5681a5c17180af50c19f826] = 100000;
        balances[0x4f183b18302c0ac5804b8c455018efc51af15a56] = 10000;
        balances[0x55a886834658ccb6f26c39d5fdf6d833df3a276a] = 100000;
        balances[0x5faa1624422db662c654ab35ce57bf3242888937] = 5000000;
        balances[0x6407b662b306e2353b627488da952337a5a0bbaa] = 5000000;
        balances[0x66c334fff8c8b8224b480d8da658ca3b032fe625] = 10000000;
        balances[0x6c24991c6a40cd5ad6fab78388651fb324b35458] = 250000;
        balances[0x781ba492f786b2be48c2884b733874639f50022c] = 500000;
        balances[0x79b48f6f1ac373648c509b74a2c04a3281066457] = 2000000;
        balances[0x835898804ed30e20aa29f2fe35c9f225175b049f] = 100000;
        balances[0x93c56ea8848150389e0917de868b0a23c87cf7b1] = 2790000;
        balances[0x93f959df3df3c6ee01ee9748327b881b2137bf2a] = 450000;
        balances[0x9adc0215372e4ffd8c89621a6bd9cfddf230349f] = 550000;
        balances[0xae4dbd3dae66722315541d66fe9457b342ac76d9] = 500000;
        balances[0xbae02fe006f115e45b372f2ddc053eedca2d6fff] = 1800000;
        balances[0xcc835821f643e090d8157de05451b416cd1202c4] = 300000;
        balances[0xce75342b92a7d0b1a2c6e9835b6b85787e12e585] = 670000;
        balances[0xd2b388467d9d0c30bab0a68070c6f49c473583a0] = 990000;
        balances[0xdca0724ddde95bbace1b557cab4375d9a813da49] = 3500000;
        balances[0xe3ef62165b60cac0fcbe9c2dc6a03aab4c5c8462] = 150000;
        balances[0xe4f7d5083baeea7810b6d816581bb0ee7cd4b6f4] = 10560000;
        balances[0xef08eb55d3482973c178b02bd4d5f2cea420325f] = 80000;
        balances[0xfdecc9f2ee374cedc94f72ab4da2de896ce58c19] = 5000000;
        balances[0xe5ff71dc1dea8cd2552eec59e9a5e8813da9bb01] = 29110000;
        totalSupply = 500000000; // 500M
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"type":"function"},{"constant":false,"inputs":[{"name":"_for","type":"address"},{"name":"tokenCount","type":"uint256"}],"name":"issueTokens","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"type":"function"},{"inputs":[],"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]

6060604052600034111561001257610002565b7f720c47980000000000000000000000000000000000000000000000000000000060609081526317d7840090600090819073e736091fc36f1ad476f5e4e03e4425940822d3ba9063720c47989060649060209060048187876161da5a03f1156100025750506040805151600160a060020a0316909252506020829052812091909155624c4b407fc0382d286741d5da2faa6b4e932bac594864d192b7c04dd618704722059196da81905562030d407f6d02b3b1dc8157f093a6fd1e212c892bd6a9d222ba86108f0639291956b2ea44556206ddd07f5300d23b1177d759cd92e3b6890f3a2cbeac047a6a6a1f7c2e44558d84e3018f81905561c3507f7851a382850e9fe2caa0857ab4d0838f2503e13dea88f02ea2fddf4ad524e81f55620dbba07f353083b85f1c564ec8761cea864df1f108c7cbc500114b712d30b7296378b170556203d0907ff5f2be88428c045aa89d4024e4f2c6d6d50d2ec9c4aa45d6e8fc00be4e03edc7819055621360f07f6b0d319b63ea2f76639f54c5b073cac30ce1422e88825750506ba370095d427355624016407fd14d132e1a6b5124c3b91366ce1993e1b1fda5b955eb648742230e91f1ec61fe557f70fa9639fd621d87e38c0c127740787fb7f842e633ef1fa0e0578767f77a6ccf839055620a60407f9105820a6feb4ce5d399265544ef18c220f20d15507941b0caaa153f566b0eb7556225fe907f8d21dba0d2098ff831a87337ea5cd787420f4e172fd4a9fff8bbb1410a02a8b355620186a07fccae05b1a5e25818669b8492d3a6917f4d4f3d564175a4aed2309f1910c6beb28190556127107f073023ef49fa4fc5c0826a7cee7ac65a5d4eb908455d25cc5e0618a337824963557fd7981d41fb48bceb3ab2ea7b109ff0ba9f6f01d5b384ffe6a0d6cf24c52f7f808190557fb8563ea48f10d050e2740c50846f98561414ec5ca34b82122ed851ae5be59e3d8490557f4650455637bb1e2a99a206938291f99c71cde91aea2431178ee22006c630db75849055629896807fb5bbfc6befed5c9b75974755dfbaae6b1c1b00eb7398151c12849359b5711f97557fd4879177409d5f56037b10ae2efdd75fc75ead253111e8ecf5d2644004b5618c919091556207a1207f398b1e8a138b0fb224ab7f711e9def0c14af84d3074061e41177cc2f9d8a8730819055621e84807faabdec17250f938425e5913effad98e6d20b1e7e3fc19a4fab85a652ea573ef4557f83ea736a0f51e8ba0bde2ad2968ddb08dd6f2f0009c8e9060bf886c248d2e7f791909155622a92707f71708eb1ad820f25e5c9d4ba4d45ea4cf00b8b70b171d99a9a7b325b194de52f557fa5ce2df43c14c5e024ebeed77f487b8dc7b728cec5996d657cd4866087003d2d91909155620864707f795aa00516450f5c5677217bd4b689eb04827ab2aa4fda6c5da15cdf2bfc93aa557f53e6d2266fe0bd6e7d7a5d521664ec911082115fe6e7d29925da5ac4d6ae6df155621b77407f26f11ccff7220a8e33dc3cb309fa1fef3f0897aca3b97e2471f237468b21275955620493e07ff190f342aaba90142063a7d5073c71fce7ab47fb68521d08a0a313758a7dfcde55620a39307f5d347872c05595a11076f0a2462253cfbd17da6253cc73297f685d9c6d72d3a755620f1b307f130f2ea07ca4a210dc25ac082f6c9f41d9f1e27674e74d0979772974920f60e455623567e07f9faafe77e6a0d544cab3a7ac9e77499663a40072f49c1439255beb47c8dab8f855620249f07fcbe3f07f3eb23832d69d8b7772cb4207b7457c7e8dff5b574debdcb3d26d380a5562a122007fa27389d9d0b947b92e648acfb43f1c5a6182721c80a52fc2402958cede4e857a55620138807f87b3c9d825f0826450d9edbb2e97228a7efaa3f8ca53b96c438932963411ea07557f0d61917f8118970a964b78b94242be11c754de40db0ba46f12aead83a662145e5573e5ff71dc1dea8cd2552eec59e9a5e8813da9bb0190526301bc2ef07fb17b644651e544e2ba6cfaa98a98a718c9bea98df0de8a2f5f2e101be9ed326d55631dcd65006002556107a2806105e96000396000f3606060405236156100825760e060020a600035046306fdde038114610084578063095ea7b3146100be57806318160ddd1461013357806323b872dd1461013c578063313ce56714610158578063475a9fa91461016057806370a082311461019457806395d89b41146101c2578063a9059cbb146101fc578063dd62ed3e14610215575b005b61024960408051808201909152600b81527f53696e67756c6172445456000000000000000000000000000000000000000000602082015281565b6102b760043560243533600160a060020a03908116600081815260016020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b6101b060025481565b6102b7600435602435604435600060003411156102eb57610002565b6102cb600081565b6102b7600435602435600073bdf5c4f1c1a9d7335a6a68d9aa011d5f40cf552033600160a060020a03161461053e57610002565b600160a060020a03600435166000908152602081905260409020545b60408051918252519081900360200190f35b61024960408051808201909152600581527f534e474c53000000000000000000000000000000000000000000000000000000602082015281565b6102b76004356024356000600034111561057d57610002565b6101b0600435602435600160a060020a0382811660009081526001602090815260408083209385168352929052205461012d565b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156102a95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b604080519115158252519081900360200190f35b6040805160ff9092168252519081900360200190f35b90505b9392505050565b73e736091fc36f1ad476f5e4e03e4425940822d3ba600160a060020a031663720c47986040518160e060020a0281526004018090506020604051808303816000876161da5a03f11561000257505060405151600160a060020a039081163390911614905080156103ac575073bdf5c4f1c1a9d7335a6a68d9aa011d5f40cf5520600160a060020a03166349cc954b6040518160e060020a0281526004018090506020604051808303816000876161da5a03f115610002575050604051511590505b156103b657610002565b73e736091fc36f1ad476f5e4e03e4425940822d3ba600160a060020a0316635d0be9de856040518260e060020a0281526004018082600160a060020a031681526020019150506020604051808303816000876161da5a03f11561000257506040805160e160020a632e85f4ef028152600160a060020a03871660048201529051602482810192602092919082900301816000876161da5a03f11561000257506102e191508590508484600160a060020a0383166000908152602081905260408120548290108015906104a6575060016020908152604080832033600160a060020a03168452909152812054829010155b80156104b25750600082115b1561079257600160a060020a0383811660008181526020818152604080832080548801905588851680845281842080548990039055600183528184203390961684529482529182902080548790039055815186815291519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35060016102e4565b816000141561054f5750600061012d565b50600160a060020a03821660009081526020819052604090208054820190556002805482019055600161012d565b73e736091fc36f1ad476f5e4e03e4425940822d3ba600160a060020a031663720c47986040518160e060020a0281526004018090506020604051808303816000876161da5a03f1156100025750506040515133600160a060020a039081169116149050801561063d575073bdf5c4f1c1a9d7335a6a68d9aa011d5f40cf5520600160a060020a03166349cc954b6040518160e060020a0281526004018090506020604051808303816000876161da5a03f115610002575050604051511590505b1561064757610002565b73e736091fc36f1ad476f5e4e03e4425940822d3ba600160a060020a0316635d0be9de336040518260e060020a0281526004018082600160a060020a031681526020019150506020604051808303816000876161da5a03f11561000257506040805160e160020a632e85f4ef028152600160a060020a03871660048201529051602482810192602092919082900301816000876161da5a03f115610002575061078b91508490508333600160a060020a03166000908152602081905260408120548290108015906107185750600082115b1561079a5733600160a060020a0390811660008181526020818152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a350600161012d565b905061012d565b5060006102e4565b50600061012d56

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.