Back to Home

Bitnation Shares(XBN)

Token
0xedb37809291e...f18c2a98f144
FrontierSource Verified
Deployed February 17, 2016 (10 years ago)Block 1,019,907

Bitnation Shares token deployed by avsa on Feb 17, 2016 during Bitnation migration to Ethereum.

Token Information

Token Name
Bitnation Shares
Symbol
XBN
Decimals
8

Key Facts

Deployment Block
1,019,907
Deployment Date
Feb 17, 2016, 11:05 PM
Code Size
2.0 KB
Gas at Deploy
506,893
Transactions by Year
20161

Source Verified

SolidityNear-exact bytecode match
Compiler: native

Source fully reconstructed. All code blocks match when jump targets are normalized. Exact layout match not yet achieved - the specific Mist wallet soljson snapshot used at deployment is not in public solc-bin archives.

Heuristic Analysis

The following characteristics were detected through bytecode analysis and may not be accurate.

Detected Type: Token
Has ERC-20-like patterns

Frontier Era

The initial release of Ethereum. A bare-bones implementation for technical users.

Block span: 01,149,999
July 30, 2015March 14, 2016

Bytecode Overview

Opcodes2,093
Unique Opcodes161
Jump Instructions87
Storage Operations55

Verified Source Available

This contract has verified source code.

View Verification Proof
Show source code (Solidity)
contract BitnationShares {
    string public name;
    string public symbol;
    uint8 public decimals;
    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) public allowance;
    mapping (address => mapping (address => uint256)) public spentAllowance;

    event Transfer(address indexed from, address indexed to, uint256 value);

    function BitnationShares(uint256 initialSupply, string tokenName, uint8 decimalUnits, string tokenSymbol) {
        balanceOf[msg.sender] = initialSupply;
        name = tokenName;
        symbol = tokenSymbol;
        decimals = decimalUnits;
    }

    function() { throw; }

    function transfer(address _to, uint256 _value) {
        if (balanceOf[msg.sender] < _value) throw;
        if (balanceOf[_to] + _value < balanceOf[_to]) throw;
        balanceOf[msg.sender] -= _value;
        balanceOf[_to] += _value;
        Transfer(msg.sender, _to, _value);
    }

    function approve(address _spender, uint256 _value) returns (bool success) {
        allowance[msg.sender][_spender] = _value;
        if (!_spender.call(bytes4(0x3d21aa42), msg.sender, _value, this)) throw;
    }

    function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
        if (balanceOf[_from] < _value) throw;
        if (balanceOf[_to] + _value < balanceOf[_to]) throw;
        if (_value + spentAllowance[_from][msg.sender] > allowance[_from][msg.sender]) throw;
        balanceOf[_from] -= _value;
        balanceOf[_to] += _value;
        spentAllowance[_from][msg.sender] += _value;
        Transfer(_from, _to, _value);
    }
}

External Links