More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 391 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Award Raffle Pri... | 6191212 | 2276 days ago | IN | 0 ETH | 0.00031461 | ||||
Buy Raffle Ticke... | 6187085 | 2277 days ago | IN | 0 ETH | 0.00041469 | ||||
Buy Raffle Ticke... | 6185426 | 2277 days ago | IN | 0 ETH | 0.00033238 | ||||
Buy Raffle Ticke... | 6183918 | 2277 days ago | IN | 0 ETH | 0.00030175 | ||||
Buy Raffle Ticke... | 6183724 | 2277 days ago | IN | 0 ETH | 0.0003015 | ||||
Buy Raffle Ticke... | 6183721 | 2277 days ago | IN | 0 ETH | 0.00030225 | ||||
Buy Raffle Ticke... | 6183441 | 2277 days ago | IN | 0 ETH | 0.00024233 | ||||
Buy Raffle Ticke... | 6181098 | 2278 days ago | IN | 0 ETH | 0.00030025 | ||||
Buy Raffle Ticke... | 6179746 | 2278 days ago | IN | 0 ETH | 0.00023079 | ||||
Buy Raffle Ticke... | 6178420 | 2278 days ago | IN | 0 ETH | 0.00066476 | ||||
Buy Raffle Ticke... | 6178235 | 2278 days ago | IN | 0 ETH | 0.00017309 | ||||
Buy Raffle Ticke... | 6176997 | 2279 days ago | IN | 0 ETH | 0.00037703 | ||||
Buy Raffle Ticke... | 6176313 | 2279 days ago | IN | 0 ETH | 0.00023079 | ||||
Buy Raffle Ticke... | 6176137 | 2279 days ago | IN | 0 ETH | 0.00046334 | ||||
Buy Raffle Ticke... | 6175247 | 2279 days ago | IN | 0 ETH | 0.00023079 | ||||
Buy Raffle Ticke... | 6172176 | 2279 days ago | IN | 0 ETH | 0.00023079 | ||||
Buy Raffle Ticke... | 6170803 | 2280 days ago | IN | 0 ETH | 0.00046334 | ||||
Buy Raffle Ticke... | 6170171 | 2280 days ago | IN | 0 ETH | 0.00012738 | ||||
Buy Raffle Ticke... | 6170168 | 2280 days ago | IN | 0 ETH | 0.00069501 | ||||
Buy Raffle Ticke... | 6169864 | 2280 days ago | IN | 0 ETH | 0.00045206 | ||||
Buy Raffle Ticke... | 6167897 | 2280 days ago | IN | 0 ETH | 0.00040411 | ||||
Buy Raffle Ticke... | 6166870 | 2280 days ago | IN | 0 ETH | 0.00045206 | ||||
Buy Raffle Ticke... | 6166733 | 2280 days ago | IN | 0 ETH | 0.00127314 | ||||
Buy Raffle Ticke... | 6166628 | 2280 days ago | IN | 0 ETH | 0.00057902 | ||||
Buy Raffle Ticke... | 6164734 | 2281 days ago | IN | 0 ETH | 0.00060351 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
SponsoredItemGooRaffle
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-06-30 */ pragma solidity ^0.4.0; contract SponsoredItemGooRaffle { Goo goo = Goo(0x57b116da40f21f91aec57329ecb763d29c1b2355); address owner; // Raffle tickets mapping(address => TicketPurchases) private ticketsBoughtByPlayer; mapping(uint256 => address[]) private rafflePlayers; // Current Raffle info uint256 private constant RAFFLE_TICKET_BASE_GOO_PRICE = 1000; uint256 private raffleEndTime; uint256 private raffleTicketsBought; uint256 private raffleId; address private raffleWinner; bool private raffleWinningTicketSelected; uint256 private raffleTicketThatWon; // Raffle structures struct TicketPurchases { TicketPurchase[] ticketsBought; uint256 numPurchases; // Allows us to reset without clearing TicketPurchase[] (avoids potential for gas limit) uint256 raffleId; } // Allows us to query winner without looping (avoiding potential for gas limit) struct TicketPurchase { uint256 startId; uint256 endId; } function SponsoredItemGooRaffle() public { owner = msg.sender; } function startTokenRaffle(uint256 endTime, address tokenContract, uint256 id, bool hasItemAlready) external { require(msg.sender == owner); require(block.timestamp < endTime); if (raffleId != 0) { // Sanity to assure raffle has ended before next one starts require(raffleWinner != 0); } // Reset previous raffle info raffleWinningTicketSelected = false; raffleTicketThatWon = 0; raffleWinner = 0; raffleTicketsBought = 0; // Set current raffle info raffleEndTime = endTime; raffleId++; } function buyRaffleTicket(uint256 amount) external { require(raffleEndTime >= block.timestamp); require(amount > 0); uint256 ticketsCost = SafeMath.mul(RAFFLE_TICKET_BASE_GOO_PRICE, amount); goo.transferFrom(msg.sender, this, ticketsCost); // Burn 95% of the Goo (save 5% for contests / marketing fund) goo.transfer(address(0), (ticketsCost * 95) / 100); // Handle new tickets TicketPurchases storage purchases = ticketsBoughtByPlayer[msg.sender]; // If we need to reset tickets from a previous raffle if (purchases.raffleId != raffleId) { purchases.numPurchases = 0; purchases.raffleId = raffleId; rafflePlayers[raffleId].push(msg.sender); // Add user to raffle } // Store new ticket purchase if (purchases.numPurchases == purchases.ticketsBought.length) { purchases.ticketsBought.length += 1; } purchases.ticketsBought[purchases.numPurchases++] = TicketPurchase(raffleTicketsBought, raffleTicketsBought + (amount - 1)); // (eg: buy 10, get id's 0-9) // Finally update ticket total raffleTicketsBought += amount; } function awardRafflePrize(address checkWinner, uint256 checkIndex) external { require(raffleEndTime < block.timestamp); require(raffleWinner == 0); if (!raffleWinningTicketSelected) { drawRandomWinner(); // Ideally do it in one call (gas limit cautious) } // Reduce gas by (optionally) offering an address to _check_ for winner if (checkWinner != 0) { TicketPurchases storage tickets = ticketsBoughtByPlayer[checkWinner]; if (tickets.numPurchases > 0 && checkIndex < tickets.numPurchases && tickets.raffleId == raffleId) { TicketPurchase storage checkTicket = tickets.ticketsBought[checkIndex]; if (raffleTicketThatWon >= checkTicket.startId && raffleTicketThatWon <= checkTicket.endId) { assignRaffleWinner(checkWinner); // WINNER! return; } } } // Otherwise just naively try to find the winner (will work until mass amounts of players) for (uint256 i = 0; i < rafflePlayers[raffleId].length; i++) { address player = rafflePlayers[raffleId][i]; TicketPurchases storage playersTickets = ticketsBoughtByPlayer[player]; uint256 endIndex = playersTickets.numPurchases - 1; // Minor optimization to avoid checking every single player if (raffleTicketThatWon >= playersTickets.ticketsBought[0].startId && raffleTicketThatWon <= playersTickets.ticketsBought[endIndex].endId) { for (uint256 j = 0; j < playersTickets.numPurchases; j++) { TicketPurchase storage playerTicket = playersTickets.ticketsBought[j]; if (raffleTicketThatWon >= playerTicket.startId && raffleTicketThatWon <= playerTicket.endId) { assignRaffleWinner(player); // WINNER! return; } } } } } function assignRaffleWinner(address winner) internal { raffleWinner = winner; } // Random enough for small contests (Owner only to prevent trial & error execution) function drawRandomWinner() public { require(msg.sender == owner); require(raffleEndTime < block.timestamp); require(!raffleWinningTicketSelected); uint256 seed = raffleTicketsBought + block.timestamp; raffleTicketThatWon = addmod(uint256(block.blockhash(block.number-1)), seed, (raffleTicketsBought + 1)); raffleWinningTicketSelected = true; } // 5% of Goo gained will be reinvested into the game (contests / marketing / acquiring more raffle assets) function transferGoo(address recipient, uint256 amount) external { require(msg.sender == owner); goo.transfer(recipient, amount); } // To display on website function getLatestRaffleInfo() external constant returns (uint256, uint256, uint256, address, uint256) { return (raffleEndTime, raffleId, raffleTicketsBought, raffleWinner, raffleTicketThatWon); } // To allow clients to verify contestants function getRafflePlayers(uint256 raffle) external constant returns (address[]) { return (rafflePlayers[raffle]); } // To allow clients to verify contestants function getPlayersTickets(address player) external constant returns (uint256[], uint256[]) { TicketPurchases storage playersTickets = ticketsBoughtByPlayer[player]; if (playersTickets.raffleId == raffleId) { uint256[] memory startIds = new uint256[](playersTickets.numPurchases); uint256[] memory endIds = new uint256[](playersTickets.numPurchases); for (uint256 i = 0; i < playersTickets.numPurchases; i++) { startIds[i] = playersTickets.ticketsBought[i].startId; endIds[i] = playersTickets.ticketsBought[i].endId; } } return (startIds, endIds); } } interface Goo { function transfer(address to, uint tokens) public returns (bool success); function transferFrom(address from, address to, uint tokens) public returns (bool success); } library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"player","type":"address"}],"name":"getPlayersTickets","outputs":[{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getLatestRaffleInfo","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"address"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"checkWinner","type":"address"},{"name":"checkIndex","type":"uint256"}],"name":"awardRafflePrize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"raffle","type":"uint256"}],"name":"getRafflePlayers","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"endTime","type":"uint256"},{"name":"tokenContract","type":"address"},{"name":"id","type":"uint256"},{"name":"hasItemAlready","type":"bool"}],"name":"startTokenRaffle","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"buyRaffleTicket","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"drawRandomWinner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"transferGoo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"}]
Contract Creation Code
608060405260008054600160a060020a0319167357b116da40f21f91aec57329ecb763d29c1b235517905534801561003657600080fd5b5060018054600160a060020a03191633179055610bb7806100586000396000f30060806040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632693c1508114610092578063431dbd9e1461014c57806349c9dcf514610195578063789a12fd146101bb578063a78488af14610223578063b9de1c411461024f578063c2de290914610267578063db86d8501461027c575b600080fd5b34801561009e57600080fd5b506100b3600160a060020a03600435166102a0565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156100f75781810151838201526020016100df565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561013657818101518382015260200161011e565b5050505090500194505050505060405180910390f35b34801561015857600080fd5b506101616103c8565b60408051958652602086019490945284840192909252600160a060020a031660608401526080830152519081900360a00190f35b3480156101a157600080fd5b506101b9600160a060020a03600435166024356103e8565b005b3480156101c757600080fd5b506101d3600435610628565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561020f5781810151838201526020016101f7565b505050509050019250505060405180910390f35b34801561022f57600080fd5b506101b9600435600160a060020a03602435166044356064351515610694565b34801561025b57600080fd5b506101b9600435610712565b34801561027357600080fd5b506101b961096e565b34801561028857600080fd5b506101b9600160a060020a0360043516602435610a15565b600160a060020a03811660009081526002602081905260408220600654918101546060938493849283929114156103bc5783600101546040519080825280602002602001820160405280156102ff578160200160208202803883390190505b5092508360010154604051908082528060200260200182016040528015610330578160200160208202803883390190505b509150600090505b83600101548110156103bc57835484908290811061035257fe5b906000526020600020906002020160000154838281518110151561037257fe5b60209081029091010152835484908290811061038a57fe5b90600052602060002090600202016001015482828151811015156103aa57fe5b60209081029091010152600101610338565b50909590945092505050565b600454600654600554600754600854600160a060020a0390911691929394565b6000806000806000806000804260045410151561040457600080fd5b600754600160a060020a03161561041a57600080fd5b60075474010000000000000000000000000000000000000000900460ff1615156104465761044661096e565b600160a060020a038a16156104e857600160a060020a038a16600090815260026020526040812060018101549099501180156104855750876001015489105b801561049657506006548860020154145b156104e857875488908a9081106104a957fe5b906000526020600020906002020196508660000154600854101580156104d55750866001015460085411155b156104e8576104e38a610ace565b61061c565b600095505b60065460009081526003602052604090205486101561061c57600654600090815260036020526040902080548790811061052357fe5b6000918252602080832090910154600160a060020a031680835260029091526040822060018101548154929850909650600019019450859190811061056457fe5b906000526020600020906002020160000154600854101580156105a85750835484908490811061059057fe5b90600052602060002090600202016001015460085411155b1561061157600091505b83600101548210156106115783548490839081106105cc57fe5b906000526020600020906002020190508060000154600854101580156105f85750806001015460085411155b15610606576104e385610ace565b6001909101906105b2565b6001909501946104ed565b50505050505050505050565b60008181526003602090815260409182902080548351818402810184019094528084526060939283018282801561068857602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831161066a575b50505050509050919050565b600154600160a060020a031633146106ab57600080fd5b4284116106b757600080fd5b600654156106d657600754600160a060020a031615156106d657600080fd5b5050600780546000600881905574ffffffffffffffffffffffffffffffffffffffffff1990911690915560055550600455600680546001019055565b600080426004541015151561072657600080fd5b6000831161073357600080fd5b61073f6103e884610afd565b60008054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590529051939550600160a060020a03909116926323b872dd92606480840193602093929083900390910190829087803b1580156107b757600080fd5b505af11580156107cb573d6000803e3d6000fd5b505050506040513d60208110156107e157600080fd5b505060008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600481018490526064605f87020460248201529051600160a060020a039092169263a9059cbb926044808401936020939083900390910190829087803b15801561085757600080fd5b505af115801561086b573d6000803e3d6000fd5b505050506040513d602081101561088157600080fd5b505033600090815260026020819052604090912060065491810154909250146108f05760006001808301829055600654600284018190558252600360209081526040832080549283018155835290912001805473ffffffffffffffffffffffffffffffffffffffff1916331790555b80546001820154141561090e57805460010161090c8282610b33565b505b6040805180820190915260055480825284016000190160208201526001828101805491820190558254839190811061094257fe5b600091825260209182902083516002909202019081559101516001909101555050600580549091019055565b600154600090600160a060020a0316331461098857600080fd5b600454421161099657600080fd5b60075474010000000000000000000000000000000000000000900460ff16156109be57600080fd5b50600554428101906001018015156109d257fe5b8160001943014008600855506007805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600154600160a060020a03163314610a2c57600080fd5b60008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038681166004830152602482018690529151919092169263a9059cbb92604480820193602093909283900390910190829087803b158015610a9e57600080fd5b505af1158015610ab2573d6000803e3d6000fd5b505050506040513d6020811015610ac857600080fd5b50505050565b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080831515610b105760009150610b2c565b50828202828482811515610b2057fe5b0414610b2857fe5b8091505b5092915050565b815481835581811115610b5f57600202816002028360005260206000209182019101610b5f9190610b64565b505050565b610b8891905b80821115610b845760008082556001820155600201610b6a565b5090565b905600a165627a7a72305820a7964e7d1a6b05614e4348e4484d7c12c11a57b4302b3ec5102e036fb0d7869c0029
Deployed Bytecode
0x60806040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632693c1508114610092578063431dbd9e1461014c57806349c9dcf514610195578063789a12fd146101bb578063a78488af14610223578063b9de1c411461024f578063c2de290914610267578063db86d8501461027c575b600080fd5b34801561009e57600080fd5b506100b3600160a060020a03600435166102a0565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156100f75781810151838201526020016100df565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561013657818101518382015260200161011e565b5050505090500194505050505060405180910390f35b34801561015857600080fd5b506101616103c8565b60408051958652602086019490945284840192909252600160a060020a031660608401526080830152519081900360a00190f35b3480156101a157600080fd5b506101b9600160a060020a03600435166024356103e8565b005b3480156101c757600080fd5b506101d3600435610628565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561020f5781810151838201526020016101f7565b505050509050019250505060405180910390f35b34801561022f57600080fd5b506101b9600435600160a060020a03602435166044356064351515610694565b34801561025b57600080fd5b506101b9600435610712565b34801561027357600080fd5b506101b961096e565b34801561028857600080fd5b506101b9600160a060020a0360043516602435610a15565b600160a060020a03811660009081526002602081905260408220600654918101546060938493849283929114156103bc5783600101546040519080825280602002602001820160405280156102ff578160200160208202803883390190505b5092508360010154604051908082528060200260200182016040528015610330578160200160208202803883390190505b509150600090505b83600101548110156103bc57835484908290811061035257fe5b906000526020600020906002020160000154838281518110151561037257fe5b60209081029091010152835484908290811061038a57fe5b90600052602060002090600202016001015482828151811015156103aa57fe5b60209081029091010152600101610338565b50909590945092505050565b600454600654600554600754600854600160a060020a0390911691929394565b6000806000806000806000804260045410151561040457600080fd5b600754600160a060020a03161561041a57600080fd5b60075474010000000000000000000000000000000000000000900460ff1615156104465761044661096e565b600160a060020a038a16156104e857600160a060020a038a16600090815260026020526040812060018101549099501180156104855750876001015489105b801561049657506006548860020154145b156104e857875488908a9081106104a957fe5b906000526020600020906002020196508660000154600854101580156104d55750866001015460085411155b156104e8576104e38a610ace565b61061c565b600095505b60065460009081526003602052604090205486101561061c57600654600090815260036020526040902080548790811061052357fe5b6000918252602080832090910154600160a060020a031680835260029091526040822060018101548154929850909650600019019450859190811061056457fe5b906000526020600020906002020160000154600854101580156105a85750835484908490811061059057fe5b90600052602060002090600202016001015460085411155b1561061157600091505b83600101548210156106115783548490839081106105cc57fe5b906000526020600020906002020190508060000154600854101580156105f85750806001015460085411155b15610606576104e385610ace565b6001909101906105b2565b6001909501946104ed565b50505050505050505050565b60008181526003602090815260409182902080548351818402810184019094528084526060939283018282801561068857602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831161066a575b50505050509050919050565b600154600160a060020a031633146106ab57600080fd5b4284116106b757600080fd5b600654156106d657600754600160a060020a031615156106d657600080fd5b5050600780546000600881905574ffffffffffffffffffffffffffffffffffffffffff1990911690915560055550600455600680546001019055565b600080426004541015151561072657600080fd5b6000831161073357600080fd5b61073f6103e884610afd565b60008054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590529051939550600160a060020a03909116926323b872dd92606480840193602093929083900390910190829087803b1580156107b757600080fd5b505af11580156107cb573d6000803e3d6000fd5b505050506040513d60208110156107e157600080fd5b505060008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600481018490526064605f87020460248201529051600160a060020a039092169263a9059cbb926044808401936020939083900390910190829087803b15801561085757600080fd5b505af115801561086b573d6000803e3d6000fd5b505050506040513d602081101561088157600080fd5b505033600090815260026020819052604090912060065491810154909250146108f05760006001808301829055600654600284018190558252600360209081526040832080549283018155835290912001805473ffffffffffffffffffffffffffffffffffffffff1916331790555b80546001820154141561090e57805460010161090c8282610b33565b505b6040805180820190915260055480825284016000190160208201526001828101805491820190558254839190811061094257fe5b600091825260209182902083516002909202019081559101516001909101555050600580549091019055565b600154600090600160a060020a0316331461098857600080fd5b600454421161099657600080fd5b60075474010000000000000000000000000000000000000000900460ff16156109be57600080fd5b50600554428101906001018015156109d257fe5b8160001943014008600855506007805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600154600160a060020a03163314610a2c57600080fd5b60008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038681166004830152602482018690529151919092169263a9059cbb92604480820193602093909283900390910190829087803b158015610a9e57600080fd5b505af1158015610ab2573d6000803e3d6000fd5b505050506040513d6020811015610ac857600080fd5b50505050565b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080831515610b105760009150610b2c565b50828202828482811515610b2057fe5b0414610b2857fe5b8091505b5092915050565b815481835581811115610b5f57600202816002028360005260206000209182019101610b5f9190610b64565b505050565b610b8891905b80821115610b845760008082556001820155600201610b6a565b5090565b905600a165627a7a72305820a7964e7d1a6b05614e4348e4484d7c12c11a57b4302b3ec5102e036fb0d7869c0029
Swarm Source
bzzr://a7964e7d1a6b05614e4348e4484d7c12c11a57b4302b3ec5102e036fb0d7869c
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ 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.