This token is claimable
Its 2018 airdrop faucet is still paying out. You can claim free LMT to your own wallet; you only pay gas.
Link Managenent Chain Token (LMT) is a 2018 ERC-20 airdrop faucet: anyone could call getTokens() to receive a share of its 2 billion LMT supply.
Token Information
Key Facts
Heuristic Analysis
The following characteristics were detected through bytecode analysis and may not be accurate.
Byzantium Era
First Metropolis hard fork. Added zk-SNARK precompiles, REVERT opcode, and staticcall.
Bytecode Overview
Verified Source Available
This contract has verified source code on Etherscan.
Show source code (Solidity)
{{
"sources": {
"LMT.sol": {
"content": "// Submitted by EthereumHistory (ethereumhistory.com)\nlibrary SafeMath {\r\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\r\n uint256 c = a * b;\r\n assert(a == 0 || c / a == b);\r\n return c;\r\n }\r\n\r\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\r\n uint256 c = a / b;\r\n return c;\r\n }\r\n\r\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r\n assert(b <= a);\r\n return a - b;\r\n }\r\n\r\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\r\n uint256 c = a + b;\r\n assert(c >= a);\r\n return c;\r\n }\r\n}\r\n\r\ncontract ForeignToken {\r\n function balanceOf(address _owner) constant public returns (uint256);\r\n function transfer(address _to, uint256 _value) public returns (bool);\r\n}\r\n\r\ncontract ERC20Basic {\r\n uint256 public totalSupply;\r\n function balanceOf(address who) public constant returns (uint256);\r\n function transfer(address to, uint256 value) public returns (bool);\r\n event Transfer(address indexed from, address indexed to, uint256 value);\r\n}\r\n\r\ncontract ERC20 is ERC20Basic {\r\n function allowance(address owner, address spender) public constant returns (uint256);\r\n function transferFrom(address from, address to, uint256 value) public returns (bool);\r\n function approve(address spender, uint256 value) public returns (bool);\r\n event Approval(address indexed owner, address indexed spender, uint256 value);\r\n}\r\n\r\ninterface Token { \r\n function distr(address _to, uint256 _value) external returns (bool);\r\n function totalSupply() constant external returns (uint256 supply);\r\n function balanceOf(address _owner) constant external returns (uint256 balance);\r\n}\r\n\r\ncontract LMT is ERC20 {\r\n \r\n using SafeMath for uint256;\r\n address owner = msg.sender;\r\n\r\n mapping (address => uint256) balances;\r\n mapping (address => mapping (address => uint256)) allowed;\r\n mapping (address => bool) public blacklist;\r\n\r\n string public constant name = \"Link Managenent Chain Token\";\r\n string public constant symbol = \"LMT\";\r\n uint public constant decimals = 8;\r\n \r\n uint256 public totalSupply = 2000000000e8;\r\n uint256 public totalDistributed = 1200000000e8;\r\n uint256 public totalRemaining = totalSupply.sub(totalDistributed);\r\n uint256 public value = 15000e8;\r\n\r\n event Transfer(address indexed _from, address indexed _to, uint256 _value);\r\n event Approval(address indexed _owner, address indexed _spender, uint256 _value);\r\n \r\n event Distr(address indexed to, uint256 amount);\r\n event DistrFinished();\r\n \r\n event Burn(address indexed burner, uint256 value);\r\n\r\n bool public distributionFinished = false;\r\n \r\n modifier canDistr() {\r\n require(!distributionFinished);\r\n _;\r\n }\r\n \r\n modifier onlyOwner() {\r\n require(msg.sender == owner);\r\n _;\r\n }\r\n \r\n modifier onlyWhitelist() {\r\n require(blacklist[msg.sender] == false);\r\n _;\r\n }\r\n \r\n function LMT() public {\r\n owner = msg.sender;\r\n balances[owner] = totalDistributed;\r\n }\r\n \r\n function transferOwnership(address newOwner) onlyOwner public {\r\n if (newOwner != address(0)) {\r\n owner = newOwner;\r\n }\r\n }\r\n \r\n function finishDistribution() onlyOwner canDistr public returns (bool) {\r\n distributionFinished = true;\r\n emit DistrFinished();\r\n return true;\r\n }\r\n \r\n function distr(address _to, uint256 _amount) canDistr private returns (bool) {\r\n totalDistributed = totalDistributed.add(_amount);\r\n totalRemaining = totalRemaining.sub(_amount);\r\n balances[_to] = balances[_to].add(_amount);\r\n emit Distr(_to, _amount);\r\n emit Transfer(address(0), _to, _amount);\r\n return true;\r\n \r\n if (totalDistributed >= totalSupply) {\r\n distributionFinished = true;\r\n }\r\n }\r\n \r\n function () external payable {\r\n getTokens();\r\n }\r\n \r\n function getTokens() payable canDistr onlyWhitelist public {\r\n if (value > totalRemaining) {\r\n value = totalRemaining;\r\n }\r\n \r\n require(value <= totalRemaining);\r\n \r\n address investor = msg.sender;\r\n uint256 toGive = value;\r\n \r\n distr(investor, toGive);\r\n \r\n if (toGive > 0) {\r\n blacklist[investor] = true;\r\n }\r\n\r\n if (totalDistributed >= totalSupply) {\r\n distributionFinished = true;\r\n }\r\n \r\n value = value.div(100000).mul(99999);\r\n }\r\n\r\n function balanceOf(address _owner) constant public returns (uint256) {\r\n return balances[_owner];\r\n }\r\n\r\n modifier onlyPayloadSize(uint size) {\r\n assert(msg.data.length >= size + 4);\r\n _;\r\n }\r\n \r\n function transfer(address _to, uint256 _amount) onlyPayloadSize(2 * 32) public returns (bool success) {\r\n require(_to != address(0));\r\n require(_amount <= balances[msg.sender]);\r\n \r\n balances[msg.sender] = balances[msg.sender].sub(_amount);\r\n balances[_to] = balances[_to].add(_amount);\r\n emit Transfer(msg.sender, _to, _amount);\r\n return true;\r\n }\r\n \r\n function transferFrom(address _from, address _to, uint256 _amount) onlyPayloadSize(3 * 32) public returns (bool success) {\r\n require(_to != address(0));\r\n require(_amount <= balances[_from]);\r\n require(_amount <= allowed[_from][msg.sender]);\r\n \r\n balances[_from] = balances[_from].sub(_amount);\r\n allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_amount);\r\n balances[_to] = balances[_to].add(_amount);\r\n emit Transfer(_from, _to, _amount);\r\n return true;\r\n }\r\n \r\n function approve(address _spender, uint256 _value) public returns (bool success) {\r\n if (_value != 0 && allowed[msg.sender][_spender] != 0) { return false; }\r\n allowed[msg.sender][_spender] = _value;\r\n emit Approval(msg.sender, _spender, _value);\r\n return true;\r\n }\r\n \r\n function allowance(address _owner, address _spender) constant public returns (uint256) {\r\n return allowed[_owner][_spender];\r\n }\r\n \r\n function getTokenBalance(address tokenAddress, address who) constant public returns (uint){\r\n ForeignToken t = ForeignToken(tokenAddress);\r\n uint bal = t.balanceOf(who);\r\n return bal;\r\n }\r\n \r\n function withdraw() onlyOwner public {\r\n uint256 etherBalance = address(this).balance;\r\n owner.transfer(etherBalance);\r\n }\r\n \r\n function burn(uint256 _value) onlyOwner public {\r\n require(_value <= balances[msg.sender]);\r\n\r\n address burner = msg.sender;\r\n balances[burner] = balances[burner].sub(_value);\r\n totalSupply = totalSupply.sub(_value);\r\n totalDistributed = totalDistributed.sub(_value);\r\n emit Burn(burner, _value);\r\n }\r\n \r\n function withdrawForeignTokens(address _tokenContract) onlyOwner public returns (bool) {\r\n ForeignToken token = ForeignToken(_tokenContract);\r\n uint256 amount = token.balanceOf(address(this));\r\n return token.transfer(owner, amount);\r\n }\r\n}"
}
},
"language": "Solidity",
"settings": {
"optimizer": {
"runs": 0,
"enabled": false
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}
}}External Links
Related contracts
Tulip chain
Same deployerTulip chain (TUL) is an ERC-20 token launched on Ethereum in May 2018 that distributed its 1 billion TUL supply through an open onchain claim function.
0x5554ee...245526May 7, 2018Link Managenent Chain
Same deployerLink Managenent Chain (LM) is an ERC-20 airdrop token from May 2018 whose 1 billion LM supply anyone could claim through a public getTokens() function.
0x39d5f5...f66c05May 8, 2018Link Managenent Chain
Same deployerLink Managenent Chain (LM) is a 2018 ERC-20 airdrop faucet: anyone could call getTokens() to receive a share of its 1 billion LM supply.
0xcc7dc3...031569May 8, 2018Link Managenent Chain Token
Same deployerLink Managenent Chain Token (LM) is an ERC-20 airdrop token from May 2018 whose 2 billion LM supply anyone could claim through a public getTokens() function.
0xc94d75...67ce79May 27, 2018Msg
Same eraMinimal contract that stores a single public string in state, exposed via the auto-generated m() getter. First of 281 identical siblings. Source verified by EthereumHistory.
0x2c8f58...37b173January 13, 2018Wallet
Same eraToken collection wallet that moves an entire token balance to a chosen address, without the ERC223 callback handler.
0x002204...531195January 19, 2018