Measurable Data Token
ERC20
This contract is an ERC20 token.
Name
Measurable Data Token
Symbol
MDT
Decimals
18
Total Supply
1,000,000,000 MDT
About
link
description
Measurable Data Token (MDT) aims to provide a blockchain-based data economy, where data providers and data buyers can exchange data securely and anonymously.
The MDT ecosystem now features two products with real use cases:
MyMDT Data Wallet is a decentralized application based on Ethereum that allows users to get rewards for sharing anonymous data points. The application has been integrated with the following apps: MailTime, Magic Crystal, and Email Messenger.
Measurable AI, MDT's data analytics branch, is an alternative data provider that turns anonymous transactional data into consumer insights serving financial institutions and corporates. The MDT token is an ERC-20 token, used as the medium of exchange for data product access and user reward programs.
The MDT team are based in Hong Kong and have been working together for over 10 years. Their first project Talkbox started in 2010 was adapted into a TV show and novel called "Entrepreneurial Age".
In their roadmap, the team will be focusing on connecting more users and data providers to expand the scenarios in the ecosystem. They are also working on more new applications on Ethereum featuring data rewards for individual users.
Since the launch of MDT project in 2017, the team has been dedicated to make MDT the new standard for data sharing.
Stats
Public Functions
15
Event Types
5
Code Size
17,004 bytes
Library Use
Uses SafeMath for uint256.
Events (5) keyboard_arrow_up
Functions
transferOwnership keyboard_arrow_up
balanceOf keyboard_arrow_up
transfer keyboard_arrow_up
allowance keyboard_arrow_up
transferFrom keyboard_arrow_up
approve keyboard_arrow_up
transferAndCall keyboard_arrow_up
Modifiers help
validRecipient checks for the following:
Source Code
function transferAndCall(address _to, uint256 _value, bytes _data)
public
validRecipient(_to)
returns (bool success)
{
return super.transferAndCall(_to, _value, _data);
}
burn keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
Source Code
function burn(uint256 _value)
public
onlyOwner
returns (bool)
{
balances[msg.sender] = balances[msg.sender].sub(_value);
totalSupply = totalSupply.sub(_value);
Burn(msg.sender, _value);
return true;
}
burnFrom keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
Source Code
function burnFrom(address _from, uint256 _value)
public
onlyOwner
returns(bool)
{
var _allowance = allowed[_from][msg.sender];
balances[_from] = balances[_from].sub(_value);
allowed[_from][msg.sender] = _allowance.sub(_value);
totalSupply = totalSupply.sub(_value);
Burn(_from, _value);
return true;
}
emergencyERC20Drain keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
Source Code
function emergencyERC20Drain(ERC20 token, uint256 amount)
public
onlyOwner
{
token.transfer(owner, amount);
}
changeTokenSaleAddress keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
validRecipient checks for the following:
Source Code
function changeTokenSaleAddress(address _tokenSaleAddress)
public
onlyOwner
validRecipient(_tokenSaleAddress)
{
tokenSaleAddress = _tokenSaleAddress;
}
changeMdtTeamAddress keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
validRecipient checks for the following:
Source Code
function changeMdtTeamAddress(address _mdtTeamAddress)
public
onlyOwner
validRecipient(_mdtTeamAddress)
{
mdtTeamAddress = _mdtTeamAddress;
}
changeUserGrowthAddress keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
validRecipient checks for the following:
Source Code
function changeUserGrowthAddress(address _userGrowthAddress)
public
onlyOwner
validRecipient(_userGrowthAddress)
{
userGrowthAddress = _userGrowthAddress;
}
changeInvestorsAddress keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
validRecipient checks for the following:
Source Code
function changeInvestorsAddress(address _investorsAddress)
public
onlyOwner
validRecipient(_investorsAddress)
{
investorsAddress = _investorsAddress;
}
changeMdtFoundationAddress keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
validRecipient checks for the following:
Source Code
function changeMdtFoundationAddress(address _mdtFoundationAddress)
public
onlyOwner
validRecipient(_mdtFoundationAddress)
{
mdtFoundationAddress = _mdtFoundationAddress;
}