Back to HomeToken Name Bitnation Shares Symbol XBN Decimals 8
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
Key Facts
Transactions by Year
20161
Deployment Transaction: 0xa759ed5360bd4b7f...be4fbd06e57234d4
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: 0 — 1,149,999
July 30, 2015 — March 14, 2016
Bytecode Overview
Opcodes2,093
Unique Opcodes161
Jump Instructions87
Storage Operations55
Verified Source Available
This contract has verified source code.
View Verification ProofShow 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);
}
}