ETH Price: $3,594.48 (+3.68%)
Gas: 5.23 Gwei
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer212569822024-11-24 10:22:4740 days ago1732443767IN
0x14d9779B...0705dad2e
0 ETH0.000412577.86245084
Transfer206765502024-09-04 10:14:11121 days ago1725444851IN
0x14d9779B...0705dad2e
0 ETH0.000067941.4256589
Transfer201237122024-06-19 5:30:35198 days ago1718775035IN
0x14d9779B...0705dad2e
0 ETH0.000180253.43519205
Transfer158313432022-10-26 9:27:11800 days ago1666776431IN
0x14d9779B...0705dad2e
0 ETH0.0014456527.5625
Transfer148115512022-05-20 14:08:38959 days ago1653055718IN
0x14d9779B...0705dad2e
0 ETH0.0017944237.62048033
Transfer138864962021-12-27 9:29:031103 days ago1640597343IN
0x14d9779B...0705dad2e
0 ETH0.0020816643.65354057
Transfer130630792021-08-20 16:04:241232 days ago1629475464IN
0x14d9779B...0705dad2e
0 ETH0.0028611660
Transfer127154382021-06-27 9:55:531286 days ago1624787753IN
0x14d9779B...0705dad2e
0 ETH0.00017553.34375
Transfer124543352021-05-17 21:26:591327 days ago1621286819IN
0x14d9779B...0705dad2e
0 ETH0.00408466109
Transfer123452792021-05-01 1:09:261344 days ago1619831366IN
0x14d9779B...0705dad2e
0 ETH0.0011242230
Transfer120356972021-03-14 8:46:011391 days ago1615711561IN
0x14d9779B...0705dad2e
0 ETH0.00715614129.00000145
Transfer115815102021-01-03 12:25:111461 days ago1609676711IN
0x14d9779B...0705dad2e
0 ETH0.0027166167.1000016
Transfer114717812020-12-17 16:33:131478 days ago1608222793IN
0x14d9779B...0705dad2e
0 ETH0.00826562149
Transfer113258292020-11-25 6:07:291500 days ago1606284449IN
0x14d9779B...0705dad2e
0 ETH0.0021868954
Transfer111779832020-11-02 13:41:461523 days ago1604324506IN
0x14d9779B...0705dad2e
0 ETH0.0019838149
Transfer111660182020-10-31 17:19:111525 days ago1604164751IN
0x14d9779B...0705dad2e
0 ETH0.0022672156.00000145
Transfer107122272020-08-22 20:24:081595 days ago1598127848IN
0x14d9779B...0705dad2e
0 ETH0.0038831870.00000145
Transfer106296702020-08-10 3:07:451608 days ago1597028865IN
0x14d9779B...0705dad2e
0 ETH0.0052688995.00000145
Transfer105930902020-08-04 11:52:281613 days ago1596541948IN
0x14d9779B...0705dad2e
0 ETH0.0036058165
Transfer105681812020-07-31 15:31:441617 days ago1596209504IN
0x14d9779B...0705dad2e
0 ETH0.003928397.00000145
Transfer105414172020-07-27 11:50:551621 days ago1595850655IN
0x14d9779B...0705dad2e
0 ETH0.0034828286.00000145
Transfer104874882020-07-19 3:28:471630 days ago1595129327IN
0x14d9779B...0705dad2e
0 ETH0.0017009142.00000145
Transfer103152442020-06-22 11:28:221656 days ago1592825302IN
0x14d9779B...0705dad2e
0 ETH0.0022739441
Transfer101100262020-05-21 15:26:171688 days ago1590074777IN
0x14d9779B...0705dad2e
0 ETH0.0036010464.90000014
Transfer100538562020-05-12 21:49:481697 days ago1589320188IN
0x14d9779B...0705dad2e
0 ETH0.0007385113.31
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BAI20

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-03-07
*/

pragma solidity ^0.4.18;

interface tokenRecipient { function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData) public; }

/*
You should inherit from TokenBase. This implements ONLY the standard functions obeys ERC20,
and NOTHING else. If you deploy this, you won't have anything useful.

Implements ERC 20 Token standard: https://github.com/ethereum/EIPs/issues/20
.*/
contract ERC20 {

    /// total amount of tokens
    uint256 public totalSupply;

    /// @param _owner The address from which the balance will be retrieved
    /// @return The balance
    function balanceOf(address _owner) constant public returns (uint256 balance);

    /// @notice send `_value` token to `_to` from `msg.sender`
    /// @param _to The address of the recipient
    /// @param _value The amount of token to be transferred
    /// @return Whether the transfer was successful or not
    function transfer(address _to, uint256 _value) public returns (bool success);

    /// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from`
    /// @param _from The address of the sender
    /// @param _to The address of the recipient
    /// @param _value The amount of token to be transferred
    /// @return Whether the transfer was successful or not
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);

    /// @notice `msg.sender` approves `_spender` to spend `_value` tokens
    /// @param _spender The address of the account able to transfer the tokens
    /// @param _value The amount of tokens to be approved for transfer
    /// @return Whether the approval was successful or not
    function approve(address _spender, uint256 _value) public returns (bool success);

    /// @param _owner The address of the account owning tokens
    /// @param _spender The address of the account able to transfer the tokens
    /// @return Amount of remaining tokens allowed to spent
    function allowance(address _owner, address _spender) constant public returns (uint256 remaining);

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

contract TokenBase is ERC20 {
    function transfer(address _to, uint256 _value) public returns (bool success) {
        // Prevent transfer to 0x0 address.
        require(_to != 0x0);
        // Check if the sender has enough
        require(balances[msg.sender] >= _value);
        // Check for overflows
        require(balances[_to] + _value > balances[_to]);

        uint previousBalances = balances[msg.sender] + balances[_to];
        balances[msg.sender] -= _value;
        balances[_to] += _value;
        Transfer(msg.sender, _to, _value);
        // Asserts are used to use static analysis to find bugs in your code. They should never fail
        assert(balances[msg.sender] + balances[_to] == previousBalances);

        return true;
    }

    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
        /// same as above
        require(_to != 0x0);
        require(balances[_from] >= _value);
        require(balances[_to] + _value > balances[_to]);

        uint previousBalances = balances[_from] + balances[_to];
        balances[_from] -= _value;
        balances[_to] += _value;
        allowed[_from][msg.sender] -= _value;
        Transfer(_from, _to, _value);
        assert(balances[_from] + balances[_to] == previousBalances);

        return true;
    }

    function balanceOf(address _owner) constant public returns (uint256 balance) {
        return balances[_owner];
    }

    function approve(address _spender, uint256 _value) public returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);
        return true;
    }

    function allowance(address _owner, address _spender) constant public returns (uint256 remaining) {
      return allowed[_owner][_spender];
    }

    mapping (address => uint256) balances; /// balance amount of tokens for address
    mapping (address => mapping (address => uint256)) allowed;
}

contract BAI20 is TokenBase {

    function () payable public {
        //if ether is sent to this address, send it back.
        //throw;
        require(false);
    }

    string public constant name = "BAI2.0";
    string public constant symbol = "BAI";
    uint256 private constant _INITIAL_SUPPLY = 21000000000;
    uint8 public decimals = 18;
    uint256 public totalSupply;
    string public version = "BAI2.0";

    function BAI20(
    ) public {
        // init
        totalSupply = _INITIAL_SUPPLY * 10 ** 18;
        balances[msg.sender] = totalSupply;
    }

    /* Approves and then calls the receiving contract */
    function approveAndCall(address _spender, uint256 _value, bytes _extraData) public returns (bool success) {
        tokenRecipient spender = tokenRecipient(_spender);
        if (approve(_spender, _value)) {
            spender.receiveApproval(msg.sender, _value, this, _extraData);
            return true;
        }
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"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"}]

606060409081526003805460ff191660121790558051908101604052600681527f424149322e30000000000000000000000000000000000000000000000000000060208201526005908051610058929160200190610094565b50341561006457600080fd5b6b43dacaf91c1a84ff080000006004819055600160a060020a03331660009081526001602052604090205561012f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100d557805160ff1916838001178555610102565b82800160010185558215610102579182015b828111156101025782518255916020019190600101906100e7565b5061010e929150610112565b5090565b61012c91905b8082111561010e5760008155600101610118565b90565b6108358061013e6000396000f3006060604052600436106100ae5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100b3578063095ea7b31461013d57806318160ddd1461017357806323b872dd14610198578063313ce567146101c057806354fd4d50146101e957806370a08231146101fc57806395d89b411461021b578063a9059cbb1461022e578063cae9ca5114610250578063dd62ed3e146102b5575b600080fd5b34156100be57600080fd5b6100c66102da565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101025780820151838201526020016100ea565b50505050905090810190601f16801561012f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561014857600080fd5b61015f600160a060020a0360043516602435610311565b604051901515815260200160405180910390f35b341561017e57600080fd5b61018661037d565b60405190815260200160405180910390f35b34156101a357600080fd5b61015f600160a060020a0360043581169060243516604435610383565b34156101cb57600080fd5b6101d36104aa565b60405160ff909116815260200160405180910390f35b34156101f457600080fd5b6100c66104b3565b341561020757600080fd5b610186600160a060020a0360043516610551565b341561022657600080fd5b6100c661056c565b341561023957600080fd5b61015f600160a060020a03600435166024356105a3565b341561025b57600080fd5b61015f60048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506106b095505050505050565b34156102c057600080fd5b610186600160a060020a03600435811690602435166107de565b60408051908101604052600681527f424149322e300000000000000000000000000000000000000000000000000000602082015281565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60045481565b600080600160a060020a038416151561039b57600080fd5b600160a060020a038516600090815260016020526040902054839010156103c157600080fd5b600160a060020a038416600090815260016020526040902054838101116103e757600080fd5b50600160a060020a03838116600081815260016020908152604080832080548a871680865283862080548b810390915583548b0190935560028552838620339098168652969093529281902080548890039055910192907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3600160a060020a0380851660009081526001602052604080822054928816825290205401811461049d57fe5b600191505b509392505050565b60035460ff1681565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105495780601f1061051e57610100808354040283529160200191610549565b820191906000526020600020905b81548152906001019060200180831161052c57829003601f168201915b505050505081565b600160a060020a031660009081526001602052604090205490565b60408051908101604052600381527f4241490000000000000000000000000000000000000000000000000000000000602082015281565b600080600160a060020a03841615156105bb57600080fd5b600160a060020a033316600090815260016020526040902054839010156105e157600080fd5b600160a060020a0384166000908152600160205260409020548381011161060757600080fd5b50600160a060020a038084166000818152600160205260408082208054339095168084528284208054898103909155938590528154880190915591909301927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3600160a060020a03808516600090815260016020526040808220543390931682529020540181146106a657fe5b5060019392505050565b6000836106bd8185610311565b156104a25780600160a060020a0316638f4ffcb1338630876040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561077357808201518382015260200161075b565b50505050905090810190601f1680156107a05780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15156107c157600080fd5b6102c65a03f115156107d257600080fd5b505050600191506104a2565b600160a060020a039182166000908152600260209081526040808320939094168252919091522054905600a165627a7a7230582052b148a845e779bbb1fca45d1187a06dc5dd2b782bb3f12e06227e50aa1979c10029

Deployed Bytecode

0x6060604052600436106100ae5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100b3578063095ea7b31461013d57806318160ddd1461017357806323b872dd14610198578063313ce567146101c057806354fd4d50146101e957806370a08231146101fc57806395d89b411461021b578063a9059cbb1461022e578063cae9ca5114610250578063dd62ed3e146102b5575b600080fd5b34156100be57600080fd5b6100c66102da565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101025780820151838201526020016100ea565b50505050905090810190601f16801561012f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561014857600080fd5b61015f600160a060020a0360043516602435610311565b604051901515815260200160405180910390f35b341561017e57600080fd5b61018661037d565b60405190815260200160405180910390f35b34156101a357600080fd5b61015f600160a060020a0360043581169060243516604435610383565b34156101cb57600080fd5b6101d36104aa565b60405160ff909116815260200160405180910390f35b34156101f457600080fd5b6100c66104b3565b341561020757600080fd5b610186600160a060020a0360043516610551565b341561022657600080fd5b6100c661056c565b341561023957600080fd5b61015f600160a060020a03600435166024356105a3565b341561025b57600080fd5b61015f60048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506106b095505050505050565b34156102c057600080fd5b610186600160a060020a03600435811690602435166107de565b60408051908101604052600681527f424149322e300000000000000000000000000000000000000000000000000000602082015281565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60045481565b600080600160a060020a038416151561039b57600080fd5b600160a060020a038516600090815260016020526040902054839010156103c157600080fd5b600160a060020a038416600090815260016020526040902054838101116103e757600080fd5b50600160a060020a03838116600081815260016020908152604080832080548a871680865283862080548b810390915583548b0190935560028552838620339098168652969093529281902080548890039055910192907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3600160a060020a0380851660009081526001602052604080822054928816825290205401811461049d57fe5b600191505b509392505050565b60035460ff1681565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105495780601f1061051e57610100808354040283529160200191610549565b820191906000526020600020905b81548152906001019060200180831161052c57829003601f168201915b505050505081565b600160a060020a031660009081526001602052604090205490565b60408051908101604052600381527f4241490000000000000000000000000000000000000000000000000000000000602082015281565b600080600160a060020a03841615156105bb57600080fd5b600160a060020a033316600090815260016020526040902054839010156105e157600080fd5b600160a060020a0384166000908152600160205260409020548381011161060757600080fd5b50600160a060020a038084166000818152600160205260408082208054339095168084528284208054898103909155938590528154880190915591909301927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3600160a060020a03808516600090815260016020526040808220543390931682529020540181146106a657fe5b5060019392505050565b6000836106bd8185610311565b156104a25780600160a060020a0316638f4ffcb1338630876040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561077357808201518382015260200161075b565b50505050905090810190601f1680156107a05780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15156107c157600080fd5b6102c65a03f115156107d257600080fd5b505050600191506104a2565b600160a060020a039182166000908152600260209081526040808320939094168252919091522054905600a165627a7a7230582052b148a845e779bbb1fca45d1187a06dc5dd2b782bb3f12e06227e50aa1979c10029

Swarm Source

bzzr://52b148a845e779bbb1fca45d1187a06dc5dd2b782bb3f12e06227e50aa1979c1

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.