Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 4 from a total of 4 transactions
Loading...
Loading
Contract Name:
MainstreetCrowdfund
Compiler Version
v0.4.9+commit.364da425
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2017-02-25 */ pragma solidity ^0.4.9; contract ERC20 { function totalSupply() constant returns (uint256 totalSupply); function balanceOf(address _owner) constant returns (uint256 balance); function transfer(address _to, uint256 _value) returns (bool success); function transferFrom(address _from, address _to, uint256 _value) returns (bool success); function approve(address _spender, uint256 _value) returns (bool success); function allowance(address _owner, address _spender) constant returns (uint256 remaining); event Transfer(address indexed _from, address indexed _to, uint256 _value); event Approval(address indexed _owner, address indexed _spender, uint256 _value); } /** * @title MainstreetToken */ contract MainstreetToken is ERC20 { string public name = 'Mainstreet Token'; //The Token's name: e.g. DigixDAO Tokens uint8 public decimals = 18; // 1Token ¨= 1$ (1ETH ¨= 10$) string public symbol = 'MIT'; //An identifier: e.g. REP string public version = 'MIT_0.1'; mapping (address => uint) ownerMIT; mapping (address => mapping (address => uint)) allowed; uint public totalMIT; uint public start; address public mainstreetCrowdfund; address public intellisys; bool public testing; modifier fromCrowdfund() { if (msg.sender != mainstreetCrowdfund) { throw; } _; } modifier isActive() { if (block.timestamp < start) { throw; } _; } modifier isNotActive() { if (!testing && block.timestamp >= start) { throw; } _; } modifier recipientIsValid(address recipient) { if (recipient == 0 || recipient == address(this)) { throw; } _; } modifier allowanceIsZero(address spender, uint value) { // To change the approve amount you first have to reduce the addresses´ // allowance to zero by calling `approve(_spender,0)` if it is not // already 0 to mitigate the race condition described here: // https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 if ((value != 0) && (allowed[msg.sender][spender] != 0)) { throw; } _; } /** * @dev Constructor. * @param _mainstreetCrowdfund Address of crowdfund contract. * @param _intellisys Address to receive intellisys' tokens. * @param _start Timestamp when the token becomes active. */ function MainstreetToken(address _mainstreetCrowdfund, address _intellisys, uint _start, bool _testing) { mainstreetCrowdfund = _mainstreetCrowdfund; intellisys = _intellisys; start = _start; testing = _testing; } /** * @dev Add to token balance on address. Must be from crowdfund. * @param recipient Address to add tokens to. * @return MIT Amount of MIT to add. */ function addTokens(address recipient, uint MIT) external isNotActive fromCrowdfund { ownerMIT[recipient] += MIT; uint intellisysMIT = MIT / 10; ownerMIT[intellisys] += intellisysMIT; totalMIT += MIT + intellisysMIT; Transfer(0x0, recipient, MIT); Transfer(0x0, intellisys, intellisysMIT); } /** * @dev Implements ERC20 totalSupply() */ function totalSupply() constant returns (uint256 totalSupply) { totalSupply = totalMIT; } /** * @dev Implements ERC20 balanceOf() */ function balanceOf(address _owner) constant returns (uint256 balance) { balance = ownerMIT[_owner]; } /** * @dev Implements ERC20 transfer() */ function transfer(address _to, uint256 _value) isActive recipientIsValid(_to) returns (bool success) { if (ownerMIT[msg.sender] >= _value) { ownerMIT[msg.sender] -= _value; ownerMIT[_to] += _value; Transfer(msg.sender, _to, _value); return true; } else { return false; } } /** * @dev Implements ERC20 transferFrom() */ function transferFrom(address _from, address _to, uint256 _value) isActive recipientIsValid(_to) returns (bool success) { if (allowed[_from][msg.sender] >= _value && ownerMIT[_from] >= _value) { ownerMIT[_to] += _value; ownerMIT[_from] -= _value; allowed[_from][msg.sender] -= _value; Transfer(_from, _to, _value); return true; } else { return false; } } /** * @dev Implements ERC20 approve() */ function approve(address _spender, uint256 _value) isActive allowanceIsZero(_spender, _value) returns (bool success) { allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; } /** * @dev Implements ERC20 allowance() */ function allowance(address _owner, address _spender) constant returns (uint256 remaining) { remaining = allowed[_owner][_spender]; } } /** * @title MainstreetCrowdfund */ contract MainstreetCrowdfund { uint public start; uint public end; mapping (address => uint) public senderETH; mapping (address => uint) public senderMIT; mapping (address => uint) public recipientETH; mapping (address => uint) public recipientMIT; mapping (address => uint) public recipientExtraMIT; uint public totalETH; uint public limitETH; uint public bonus1StartETH; uint public bonus2StartETH; mapping (address => bool) public whitelistedAddresses; address public exitAddress; address public creator; MainstreetToken public mainstreetToken; event MITPurchase(address indexed sender, address indexed recipient, uint ETH, uint MIT); modifier saleActive() { if (address(mainstreetToken) == 0) { throw; } if (block.timestamp < start || block.timestamp >= end) { throw; } if (totalETH + msg.value > limitETH) { throw; } _; } modifier hasValue() { if (msg.value == 0) { throw; } _; } modifier senderIsWhitelisted() { if (whitelistedAddresses[msg.sender] != true) { throw; } _; } modifier recipientIsValid(address recipient) { if (recipient == 0 || recipient == address(this)) { throw; } _; } modifier isCreator() { if (msg.sender != creator) { throw; } _; } modifier tokenContractNotSet() { if (address(mainstreetToken) != 0) { throw; } _; } /** * @dev Constructor. * @param _start Timestamp of when the crowdsale will start. * @param _end Timestamp of when the crowdsale will end. * @param _limitETH Maximum amount of ETH that can be sent to the contract in total. Denominated in wei. * @param _bonus1StartETH Amount of Ether (denominated in wei) that is required to qualify for the first bonus. * @param _bonus1StartETH Amount of Ether (denominated in wei) that is required to qualify for the second bonus. * @param _exitAddress Address that all ETH should be forwarded to. * @param whitelist1 First address that can send ETH. * @param whitelist2 Second address that can send ETH. * @param whitelist3 Third address that can send ETH. */ function MainstreetCrowdfund(uint _start, uint _end, uint _limitETH, uint _bonus1StartETH, uint _bonus2StartETH, address _exitAddress, address whitelist1, address whitelist2, address whitelist3) { creator = msg.sender; start = _start; end = _end; limitETH = _limitETH; bonus1StartETH = _bonus1StartETH; bonus2StartETH = _bonus2StartETH; whitelistedAddresses[whitelist1] = true; whitelistedAddresses[whitelist2] = true; whitelistedAddresses[whitelist3] = true; exitAddress = _exitAddress; } /** * @dev Set the address of the token contract. Must be called by creator of this. Can only be set once. * @param _mainstreetToken Address of the token contract. */ function setTokenContract(MainstreetToken _mainstreetToken) external isCreator tokenContractNotSet { mainstreetToken = _mainstreetToken; } /** * @dev Forward Ether to the exit address. Store all ETH and MIT information in public state and logs. * @param recipient Address that tokens should be attributed to. * @return MIT Amount of MIT purchased. This does not include the per-recipient quantity bonus. */ function purchaseMIT(address recipient) external senderIsWhitelisted payable saleActive hasValue recipientIsValid(recipient) returns (uint increaseMIT) { // Attempt to send the ETH to the exit address. if (!exitAddress.send(msg.value)) { throw; } // Update ETH amounts. senderETH[msg.sender] += msg.value; recipientETH[recipient] += msg.value; totalETH += msg.value; // Calculate MIT purchased directly in this transaction. uint MIT = msg.value * 10; // $1 / MIT based on $10 / ETH value // Calculate time-based bonus. if (block.timestamp - start < 2 weeks) { MIT += MIT / 10; // 10% bonus } else if (block.timestamp - start < 5 weeks) { MIT += MIT / 20; // 5% bonus } // Record directly-purchased MIT. senderMIT[msg.sender] += MIT; recipientMIT[recipient] += MIT; // Store previous value-based bonus for this address. uint oldExtra = recipientExtraMIT[recipient]; // Calculate new value-based bonus. if (recipientETH[recipient] >= bonus2StartETH) { recipientExtraMIT[recipient] = (recipientMIT[recipient] * 75) / 1000; // 7.5% bonus } else if (recipientETH[recipient] >= bonus1StartETH) { recipientExtraMIT[recipient] = (recipientMIT[recipient] * 375) / 10000; // 3.75% bonus } // Calculate MIT increase for this address from this transaction. increaseMIT = MIT + (recipientExtraMIT[recipient] - oldExtra); // Tell the token contract about the increase. mainstreetToken.addTokens(recipient, increaseMIT); // Log this purchase. MITPurchase(msg.sender, recipient, msg.value, increaseMIT); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"creator","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelistedAddresses","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"recipientExtraMIT","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"recipientETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"exitAddress","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"}],"name":"purchaseMIT","outputs":[{"name":"increaseMIT","type":"uint256"}],"payable":true,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"senderETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"mainstreetToken","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"bonus1StartETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_mainstreetToken","type":"address"}],"name":"setTokenContract","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"start","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"limitETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"senderMIT","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"recipientMIT","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"bonus2StartETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"end","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[{"name":"_start","type":"uint256"},{"name":"_end","type":"uint256"},{"name":"_limitETH","type":"uint256"},{"name":"_bonus1StartETH","type":"uint256"},{"name":"_bonus2StartETH","type":"uint256"},{"name":"_exitAddress","type":"address"},{"name":"whitelist1","type":"address"},{"name":"whitelist2","type":"address"},{"name":"whitelist3","type":"address"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"recipient","type":"address"},{"indexed":false,"name":"ETH","type":"uint256"},{"indexed":false,"name":"MIT","type":"uint256"}],"name":"MITPurchase","type":"event"}]
Contract Creation Code
6060604052341561000c57fe5b604051610120806108ff83398101604090815281516020830151918301516060840151608085015160a086015160c087015160e0880151610100909801519597949593949293919290915b600d8054600160a060020a03338116600160a060020a03199283161790925560008b815560018b815560088b905560098a9055600a8990558684168252600b6020526040808320805460ff19908116841790915587861684528184208054821684179055868616845292208054909216179055600c8054928716929091169190911790555b5050505050505050505b61080a806100f56000396000f300606060405236156100d55763ffffffff60e060020a60003504166302d05d3f81146100d757806306c933d81461010357806336bdee74146101335780633c5746dd146101555780634c12d8b9146101835780636be00229146101b15780636cb78983146101dd57806376014a2d146102035780638bffc74d14610231578063a852995d1461025d578063bbcd5bbe1461027f578063be9a65551461029d578063c26381f2146102bf578063c3cad5e7146102e1578063cf81978b1461030f578063e4b6ac4c1461033d578063efbe1c1c1461035f575bfe5b34156100df57fe5b6100e7610381565b60408051600160a060020a039092168252519081900360200190f35b341561010b57fe5b61011f600160a060020a0360043516610390565b604080519115158252519081900360200190f35b341561013b57fe5b6101436103a5565b60408051918252519081900360200190f35b341561015d57fe5b610143600160a060020a03600435166103ab565b60408051918252519081900360200190f35b341561018b57fe5b610143600160a060020a03600435166103bd565b60408051918252519081900360200190f35b34156101b957fe5b6100e76103cf565b60408051600160a060020a039092168252519081900360200190f35b610143600160a060020a03600435166103de565b60408051918252519081900360200190f35b341561020b57fe5b610143600160a060020a036004351661071c565b60408051918252519081900360200190f35b341561023957fe5b6100e761072e565b60408051600160a060020a039092168252519081900360200190f35b341561026557fe5b61014361073d565b60408051918252519081900360200190f35b341561028757fe5b61029b600160a060020a0360043516610743565b005b34156102a557fe5b6101436107a2565b60408051918252519081900360200190f35b34156102c757fe5b6101436107a8565b60408051918252519081900360200190f35b34156102e957fe5b610143600160a060020a03600435166107ae565b60408051918252519081900360200190f35b341561031757fe5b610143600160a060020a03600435166107c0565b60408051918252519081900360200190f35b341561034557fe5b6101436107d2565b60408051918252519081900360200190f35b341561036757fe5b6101436107d8565b60408051918252519081900360200190f35b600d54600160a060020a031681565b600b6020526000908152604090205460ff1681565b60075481565b60066020526000908152604090205481565b60046020526000908152604090205481565b600c54600160a060020a031681565b600160a060020a0333166000908152600b60205260408120548190819060ff16151560011461040c57610000565b600e54600160a060020a0316151561042357610000565b60005442108061043557506001544210155b1561043f57610000565b6008543460075401111561045257610000565b34151561045e57610000565b83600160a060020a0381161580610486575030600160a060020a031681600160a060020a0316145b1561049057610000565b600c54604051600160a060020a03909116903480156108fc02916000818181858888f1935050505015156104c357610000565b600160a060020a033381166000908152600260209081526040808320805434908101909155938916835260049091528120805483019055600780548301905554600a9091029350621275004291909103101561052757600a835b0483019250610540565b622e248060005442031015610540576014835b04830192505b5b600160a060020a0333811660009081526003602090815260408083208054880190559288168252600581528282208054870190556006815282822054600a546004909252929091205491935090106105d657600160a060020a0385166000908152600560205260409020546103e890604b025b600160a060020a03871660009081526006602052604090209190049055610637565b600954600160a060020a0386166000908152600460205260409020541061063757600160a060020a03851660009081526005602052604090205461271090610177025b600160a060020a038716600090815260066020526040902091900490555b5b600160a060020a0380861660008181526006602052604080822054600e5482517f6039fbdb000000000000000000000000000000000000000000000000000000008152600481019590955290879003880160248501819052915191985090931692636039fbdb92604480820193929182900301818387803b15156106b857fe5b60325a03f115156106c557fe5b505060408051348152602081018790528151600160a060020a03808a1694503316927f25ab526d610918d162c249ace524425aa60b3f60e16adf6e69aa74b98129fd88928290030190a35b5b505b5b5b5050919050565b60026020526000908152604090205481565b600e54600160a060020a031681565b60095481565b600d5433600160a060020a0390811691161461075e57610000565b600e54600160a060020a03161561077457610000565b600e805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b60005481565b60085481565b60036020526000908152604090205481565b60056020526000908152604090205481565b600a5481565b600154815600a165627a7a723058205cd4d809e7c5636165885a83db435892c95f752ad385f6b6ec97838438971c8100290000000000000000000000000000000000000000000000000000000058b1c6200000000000000000000000000000000000000000000000000000000058b36c0000000000000000000000000000000000000000000002116545850052128000000000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000001bc16d674ec8000000000000000000000000000085bfbc2d19901bdfeae29fdcfaf087b2e41aea4c000000000000000000000000007174732705604bbbf77038332dc52fd5a5000c000000000000000000000000009bab5fb86c584dc85d0eb9df1591400c6079890000000000000000000000001dba1131000664b884a1ba238464159892252d3a
Deployed Bytecode
0x606060405236156100d55763ffffffff60e060020a60003504166302d05d3f81146100d757806306c933d81461010357806336bdee74146101335780633c5746dd146101555780634c12d8b9146101835780636be00229146101b15780636cb78983146101dd57806376014a2d146102035780638bffc74d14610231578063a852995d1461025d578063bbcd5bbe1461027f578063be9a65551461029d578063c26381f2146102bf578063c3cad5e7146102e1578063cf81978b1461030f578063e4b6ac4c1461033d578063efbe1c1c1461035f575bfe5b34156100df57fe5b6100e7610381565b60408051600160a060020a039092168252519081900360200190f35b341561010b57fe5b61011f600160a060020a0360043516610390565b604080519115158252519081900360200190f35b341561013b57fe5b6101436103a5565b60408051918252519081900360200190f35b341561015d57fe5b610143600160a060020a03600435166103ab565b60408051918252519081900360200190f35b341561018b57fe5b610143600160a060020a03600435166103bd565b60408051918252519081900360200190f35b34156101b957fe5b6100e76103cf565b60408051600160a060020a039092168252519081900360200190f35b610143600160a060020a03600435166103de565b60408051918252519081900360200190f35b341561020b57fe5b610143600160a060020a036004351661071c565b60408051918252519081900360200190f35b341561023957fe5b6100e761072e565b60408051600160a060020a039092168252519081900360200190f35b341561026557fe5b61014361073d565b60408051918252519081900360200190f35b341561028757fe5b61029b600160a060020a0360043516610743565b005b34156102a557fe5b6101436107a2565b60408051918252519081900360200190f35b34156102c757fe5b6101436107a8565b60408051918252519081900360200190f35b34156102e957fe5b610143600160a060020a03600435166107ae565b60408051918252519081900360200190f35b341561031757fe5b610143600160a060020a03600435166107c0565b60408051918252519081900360200190f35b341561034557fe5b6101436107d2565b60408051918252519081900360200190f35b341561036757fe5b6101436107d8565b60408051918252519081900360200190f35b600d54600160a060020a031681565b600b6020526000908152604090205460ff1681565b60075481565b60066020526000908152604090205481565b60046020526000908152604090205481565b600c54600160a060020a031681565b600160a060020a0333166000908152600b60205260408120548190819060ff16151560011461040c57610000565b600e54600160a060020a0316151561042357610000565b60005442108061043557506001544210155b1561043f57610000565b6008543460075401111561045257610000565b34151561045e57610000565b83600160a060020a0381161580610486575030600160a060020a031681600160a060020a0316145b1561049057610000565b600c54604051600160a060020a03909116903480156108fc02916000818181858888f1935050505015156104c357610000565b600160a060020a033381166000908152600260209081526040808320805434908101909155938916835260049091528120805483019055600780548301905554600a9091029350621275004291909103101561052757600a835b0483019250610540565b622e248060005442031015610540576014835b04830192505b5b600160a060020a0333811660009081526003602090815260408083208054880190559288168252600581528282208054870190556006815282822054600a546004909252929091205491935090106105d657600160a060020a0385166000908152600560205260409020546103e890604b025b600160a060020a03871660009081526006602052604090209190049055610637565b600954600160a060020a0386166000908152600460205260409020541061063757600160a060020a03851660009081526005602052604090205461271090610177025b600160a060020a038716600090815260066020526040902091900490555b5b600160a060020a0380861660008181526006602052604080822054600e5482517f6039fbdb000000000000000000000000000000000000000000000000000000008152600481019590955290879003880160248501819052915191985090931692636039fbdb92604480820193929182900301818387803b15156106b857fe5b60325a03f115156106c557fe5b505060408051348152602081018790528151600160a060020a03808a1694503316927f25ab526d610918d162c249ace524425aa60b3f60e16adf6e69aa74b98129fd88928290030190a35b5b505b5b5b5050919050565b60026020526000908152604090205481565b600e54600160a060020a031681565b60095481565b600d5433600160a060020a0390811691161461075e57610000565b600e54600160a060020a03161561077457610000565b600e805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b60005481565b60085481565b60036020526000908152604090205481565b60056020526000908152604090205481565b600a5481565b600154815600a165627a7a723058205cd4d809e7c5636165885a83db435892c95f752ad385f6b6ec97838438971c810029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000000000058b1c6200000000000000000000000000000000000000000000000000000000058b36c0000000000000000000000000000000000000000000002116545850052128000000000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000001bc16d674ec8000000000000000000000000000085bfbc2d19901bdfeae29fdcfaf087b2e41aea4c000000000000000000000000007174732705604bbbf77038332dc52fd5a5000c000000000000000000000000009bab5fb86c584dc85d0eb9df1591400c6079890000000000000000000000001dba1131000664b884a1ba238464159892252d3a
-----Decoded View---------------
Arg [0] : _start (uint256): 1488045600
Arg [1] : _end (uint256): 1488153600
Arg [2] : _limitETH (uint256): 2500000000000000000000000
Arg [3] : _bonus1StartETH (uint256): 1000000000000000000
Arg [4] : _bonus2StartETH (uint256): 2000000000000000000
Arg [5] : _exitAddress (address): 0x85bfBC2D19901bdfEAe29FDcFAF087b2e41Aea4C
Arg [6] : whitelist1 (address): 0x007174732705604bBbf77038332Dc52FD5A5000C
Arg [7] : whitelist2 (address): 0x009bAB5fb86c584dC85d0eB9DF1591400c607989
Arg [8] : whitelist3 (address): 0x1DBA1131000664b884A1Ba238464159892252D3a
-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000058b1c620
Arg [1] : 0000000000000000000000000000000000000000000000000000000058b36c00
Arg [2] : 0000000000000000000000000000000000000000000211654585005212800000
Arg [3] : 0000000000000000000000000000000000000000000000000de0b6b3a7640000
Arg [4] : 0000000000000000000000000000000000000000000000001bc16d674ec80000
Arg [5] : 00000000000000000000000085bfbc2d19901bdfeae29fdcfaf087b2e41aea4c
Arg [6] : 000000000000000000000000007174732705604bbbf77038332dc52fd5a5000c
Arg [7] : 000000000000000000000000009bab5fb86c584dc85d0eb9df1591400c607989
Arg [8] : 0000000000000000000000001dba1131000664b884a1ba238464159892252d3a
Swarm Source
bzzr://5cd4d809e7c5636165885a83db435892c95f752ad385f6b6ec97838438971c81
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ 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.