Feature Tip: Add private address tag to any address under My Name Tag !
Overview
Max Total Supply
977,631.036950888222010062 MKR
Holders
101,562 ( -0.007%)
Market
Price
$1,604.60 @ 0.663776 ETH (+0.20%)
Onchain Market Cap
$1,568,706,761.89
Circulating Supply Market Cap
$1,497,205,222.00
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.000000000000000039 MKRValue
$0.00 ( ~0 Eth) [0.0000%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|---|---|---|---|---|
1 | Binance | MKR-USDT | $1,604.50 0.6641190 Eth | $10,774,105.00 6,625.017 MKR | 24.4623% |
2 | Uniswap V2 (Ethereum) | 0X9F8F72AA9304C8B593D555F12EF6589CC3A579A2-0X6B175474E89094C44DA98B954EEDEAC495271D0F | $1,610.72 0.6666954 Eth | $2,833,117.00 1,736.057 0X9F8F72AA9304C8B593D555F12EF6589CC3A579A2 | 6.4102% |
3 | HTX | MKR-USDT | $1,603.96 0.6638730 Eth | $2,471,134.00 1,520.578 MKR | 5.6146% |
4 | Toobit | MKR-USDT | $1,603.57 0.6635910 Eth | $2,153,584.00 1,323.882 MKR | 4.8883% |
5 | Coinstore | MKR-USDT | $1,602.21 0.6628221 Eth | $2,056,998.00 1,264.323 MKR | 4.6684% |
6 | Dcoin | MKR-USDT | $1,605.29 0.6645553 Eth | $2,019,450.00 1,258.000 MKR | 4.6450% |
7 | Websea | MKR-USDT | $1,604.55 0.6641421 Eth | $1,577,295.00 0.000 MKR | 0.0000% |
8 | FMCPAY | MKR-USDT | $1,604.57 0.6640049 Eth | $1,412,350.00 869.663 MKR | 3.2112% |
9 | Bybit | MKR-USDT | $1,605.75 0.6646389 Eth | $1,401,463.00 860.160 MKR | 3.1761% |
10 | XT.COM | MKR-USDT | $1,604.54 0.6641132 Eth | $1,388,630.00 853.538 MKR | 3.1516% |
11 | Phemex | MKR-USDT | $1,605.57 0.6644189 Eth | $1,353,380.00 842.930 MKR | 3.1124% |
12 | OKX | MKR-USDT | $1,605.69 0.6647209 Eth | $1,019,764.00 627.180 MKR | 2.3158% |
13 | LBank | MKR-USDT | $1,606.50 0.6649471 Eth | $998,446.00 621.505 MKR | 2.2948% |
14 | WhiteBIT | MKR-USDT | $1,604.02 0.6639203 Eth | $989,233.00 616.722 MKR | 2.2772% |
15 | Trubit | MKR-USDT | $1,607.65 0.6650702 Eth | $968,193.00 594.527 MKR | 2.1952% |
16 | Bitget | MKR-USDT | $1,603.29 0.6637272 Eth | $878,036.00 539.159 MKR | 1.9908% |
17 | bitcastle | MKR-USDT | $1,604.57 0.6640049 Eth | $831,229.00 511.042 MKR | 1.8870% |
18 | DigiFinex | MKR-USDT | $1,604.63 0.6641752 Eth | $767,607.00 478.369 MKR | 1.7663% |
19 | BloFin | MKR-USDT | $1,603.62 0.6636687 Eth | $760,207.00 467.886 MKR | 1.7276% |
20 | FMCPAY | MKR-BTC | $1,604.74 0.6640773 Eth | $713,860.00 440.469 MKR | 1.6264% |
21 | FameEX | MKR-USDT | $1,603.50 0.6637050 Eth | $577,498.00 355.393 MKR | 1.3123% |
22 | Bitunix | MKR-USDT | $1,605.41 0.6641441 Eth | $537,370.00 334.516 MKR | 1.2352% |
23 | Hotcoin | MKR-USDT | $1,605.07 0.6642796 Eth | $462,802.00 288.338 MKR | 1.0647% |
24 | Byte Exchange | MKR-USDT | $1,605.65 0.6642425 Eth | $411,706.00 256.411 MKR | 0.9468% |
25 | FMFW.io | MKR-USDT | $1,605.07 0.6642154 Eth | $405,700.00 252.761 MKR | 0.9333% |
26 | HitBTC | MKR-USDT | $1,605.40 0.6644035 Eth | $403,338.00 248.352 MKR | 0.9170% |
27 | BYDFi | MKR-USDT | $1,604.50 0.6632729 Eth | $384,869.00 239.868 MKR | 0.8857% |
28 | KuCoin | MKR-USDT | $1,605.53 0.6645231 Eth | $320,105.00 199.377 MKR | 0.7362% |
29 | BitDelta | MKR-USDT | $1,604.57 0.6640049 Eth | $278,523.00 171.475 MKR | 0.6332% |
30 | Bitazza | MKR-USDT | $1,611.57 0.6669027 Eth | $272,726.00 167.960 MKR | 0.6202% |
31 | Tokenize | MKR-SGD | $1,600.79 0.6625106 Eth | $231,829.00 144.822 MKR | 0.5347% |
32 | Gate.io | MKR-USDT | $1,605.35 0.6644709 Eth | $213,065.00 130.443 MKR | 0.4816% |
33 | Azbit | MKR-USDT | $1,604.57 0.6640049 Eth | $199,788.00 123.046 MKR | 0.4543% |
34 | Binance | MKR-BTC | $1,605.05 0.6643488 Eth | $182,805.00 112.865 MKR | 0.4167% |
35 | CoinCatch | MKR-USDT | $1,605.26 0.6642945 Eth | $180,451.00 111.049 MKR | 0.4100% |
36 | LATOKEN | MKR-USDT | $1,605.35 0.6642927 Eth | $171,332.00 106.725 MKR | 0.3941% |
37 | Niza Global | MKR-USD | $1,605.70 0.6645296 Eth | $170,766.00 104.832 MKR | 0.3871% |
38 | Kraken | MKR-USD | $1,605.70 0.6647267 Eth | $168,296.00 104.812 MKR | 0.3870% |
39 | Globe | MKR-USDT | $1,605.42 0.6643568 Eth | $163,489.00 100.418 MKR | 0.3708% |
40 | BingX | MKR-USDT | $1,603.84 0.6639549 Eth | $161,330.00 99.267 MKR | 0.3665% |
41 | PointPay | MKR-USDT | $1,604.57 0.6640049 Eth | $160,751.00 98.827 MKR | 0.3649% |
42 | Tapbit | MKR-USDT | $1,604.44 0.6640086 Eth | $159,005.00 97.868 MKR | 0.3614% |
43 | EXMO | MKR-USDT | $1,605.40 0.6644916 Eth | $142,094.00 88.510 MKR | 0.3268% |
44 | Icrypex | MKR-TRY | $1,605.09 0.6638142 Eth | $139,292.00 86.781 MKR | 0.3204% |
45 | Icrypex | MKR-USDT | $1,602.76 0.6627749 Eth | $136,415.00 85.113 MKR | 0.3143% |
46 | BTSE | MKR-USDT | $1,604.78 0.6643476 Eth | $115,313.00 71.856 MKR | 0.2653% |
47 | BitMart | MKR-BTC | $1,605.33 0.6643779 Eth | $109,102.00 67.962 MKR | 0.2509% |
48 | QMall | MKR-USDT | $1,603.65 0.6634148 Eth | $98,512.00 60.566 MKR | 0.2236% |
49 | Niza Global | MKR-EUR | $1,604.64 0.6640892 Eth | $80,610.00 49.312 MKR | 0.1821% |
50 | CoinW | MKR-USDT | $1,604.21 0.6640013 Eth | $80,073.00 49.914 MKR | 0.1843% |
51 | Kraken | MKR-EUR | $1,604.64 0.6642862 Eth | $79,128.00 49.312 MKR | 0.1821% |
52 | Bit2Me | MKR-EUR | $1,604.64 0.6640340 Eth | $78,392.00 48.326 MKR | 0.1784% |
53 | Nominex | MKR-USDT | $1,604.60 0.6636454 Eth | $72,769.00 45.350 MKR | 0.1675% |
54 | Bitvavo | MKR-EUR | $1,603.53 0.6638274 Eth | $58,412.00 36.427 MKR | 0.1345% |
55 | MEXC | MKR-USDT | $1,605.38 0.6643442 Eth | $57,001.00 35.506 MKR | 0.1311% |
56 | PointPay | MKR-BTC | $1,605.40 0.6643494 Eth | $56,074.00 34.631 MKR | 0.1279% |
57 | Fairdesk | MKR-USDT | $1,605.07 0.6642119 Eth | $52,482.00 32.698 MKR | 0.1207% |
58 | WhiteBIT | MKR-TRY | $1,609.63 0.6662451 Eth | $46,572.00 28.933 MKR | 0.1068% |
59 | Bitfinex | MKR-USD | $1,608.80 0.6658997 Eth | $44,113.00 27.420 MKR | 0.1012% |
60 | Bitcointry | MKR-USDT | $1,604.05 0.6639351 Eth | $42,650.00 26.302 MKR | 0.0971% |
61 | WhiteBIT | MKR-BTC | $1,605.65 0.6645962 Eth | $42,505.00 26.472 MKR | 0.0977% |
62 | SecondBTC | MKR-USDT | $1,604.29 0.6641412 Eth | $37,101.00 23.126 MKR | 0.0854% |
63 | Pionex | MKR-USDT | $1,604.30 0.6636838 Eth | $36,266.00 22.339 MKR | 0.0825% |
64 | OKX | MKR-USDC | $1,608.03 0.6656903 Eth | $31,941.00 19.598 MKR | 0.0724% |
65 | LATOKEN | MKR-BTC | $1,605.32 0.6645706 Eth | $27,798.00 17.316 MKR | 0.0639% |
66 | Bitkub | MKR-THB | $1,614.05 0.6681826 Eth | $24,983.00 15.479 MKR | 0.0572% |
67 | CoinEx | MKR-USDT | $1,609.88 0.6663190 Eth | $20,830.00 12.830 MKR | 0.0474% |
68 | Coins.ph | MKR-PHP | $1,609.69 0.6661272 Eth | $17,828.80 10.883 MKR | 0.0402% |
69 | Crypto.com Exchange | MKR-USD | $1,602.38 0.6632194 Eth | $17,079.93 10.659 MKR | 0.0394% |
70 | Vindax | MKR-USDT | $1,598.30 0.6614112 Eth | $16,028.37 10.028 MKR | 0.0370% |
71 | Bitso | MKR-USD | $1,604.59 0.6641341 Eth | $15,459.05 9.634 MKR | 0.0356% |
72 | Kraken | MKR-XBT | $1,601.80 0.6631113 Eth | $14,553.94 9.086 MKR | 0.0335% |
73 | Bitfinex | MKR-USDT | $1,606.50 0.6649498 Eth | $13,219.66 8.229 MKR | 0.0304% |
74 | Pionex | MKR-BTC | $1,604.81 0.6641101 Eth | $10,366.06 6.421 MKR | 0.0237% |
75 | HashKey Exchange | MKR-USD | $1,605.20 0.6640573 Eth | $10,251.62 6.314 MKR | 0.0233% |
76 | OKX | MKR-EUR | $1,605.30 0.6644222 Eth | $9,769.62 5.997 MKR | 0.0221% |
77 | Gemini | MKR-USD | $1,604.88 0.6643872 Eth | $9,275.96 5.780 MKR | 0.0213% |
78 | Upbit | MKR-BTC | $1,609.06 0.6660060 Eth | $8,415.27 5.230 MKR | 0.0193% |
79 | Balancer V2 | 0X9F8F72AA9304C8B593D555F12EF6589CC3A579A2-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2 | $1,605.64 0.6645620 Eth | $7,668.19 4.722 0X9F8F72AA9304C8B593D555F12EF6589CC3A579A2 | 0.0174% |
80 | FMFW.io | MKR-BTC | $1,603.90 0.6638432 Eth | $6,993.33 4.360 MKR | 0.0161% |
81 | P2B | MKR-BTC | $1,601.82 0.6628734 Eth | $5,998.67 3.745 MKR | 0.0138% |
82 | Bitlo | MKR-TRY | $1,613.41 0.6677778 Eth | $5,870.67 3.604 MKR | 0.0133% |
83 | CoinEx | MKR-BTC | $1,598.33 0.6615363 Eth | $5,597.31 3.448 MKR | 0.0127% |
84 | Bitstamp | MKR-USD | $1,603.82 0.6629726 Eth | $5,138.38 3.204 MKR | 0.0118% |
85 | Coinmetro | MKR-USD | $1,604.27 0.6639960 Eth | $4,450.25 2.774 MKR | 0.0102% |
86 | WEEX | MKR-USDT | $1,605.58 0.6640041 Eth | $3,078.01 1.896 MKR | 0.0070% |
87 | KuCoin | MKR-BTC | $1,597.33 0.6611276 Eth | $2,149.20 1.346 MKR | 0.0050% |
88 | Bitstamp | MKR-EUR | $1,607.28 0.6643154 Eth | $1,795.72 1.117 MKR | 0.0041% |
89 | HashKey Global | MKR-USDT | $1,602.56 0.6633159 Eth | $1,284.46 0.792 MKR | 0.0029% |
90 | WOO X | MKR-USDT | $1,605.35 0.6641184 Eth | $604.53 0.377 MKR | 0.0014% |
91 | Bittime | MKR-IDR | $1,609.22 0.6659848 Eth | $375.31 0.229 MKR | 0.0008% |
92 | TokoCrypto | MKR-BTC | $1,605.05 0.6643488 Eth | $220.15 0.137 MKR | 0.0005% |
93 | TokoCrypto | MKR-USDT | $1,603.65 0.6634148 Eth | $36.97 0.023 MKR | 0.0001% |
94 | CEX.IO | MKR-USDT | $1,604.54 0.6641132 Eth | $28.71 0.018 MKR | 0.0001% |
95 | CEX.IO | MKR-EUR | $1,609.73 0.6662632 Eth | $25.88 0.016 MKR | 0.0001% |
96 | CEX.IO | MKR-USD | $1,605.00 0.6643038 Eth | $25.55 0.016 MKR | 0.0001% |
97 | CEX.IO | MKR-USDC | $1,612.57 0.6671046 Eth | $21.36 0.013 MKR | 0.0000% |
98 | Coinmetro | MKR-USDT | $1,604.16 0.6639506 Eth | $0.00 0.000 MKR | 0.0000% |
99 | Coinmetro | MKR-EUR | $1,603.98 0.6638773 Eth | $0.00 0.000 MKR | 0.0000% |
100 | Coinmetro | MKR-USDC | $1,604.20 0.6639656 Eth | $0.00 0.000 MKR | 0.0000% |
Contract Name:
DSToken
Compiler Version
v0.4.18+commit.9cf6e910
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion, Audited
Contract Source Code (Solidity)Audit Report
/** *Submitted for verification at Etherscan.io on 2017-11-25 */ // MKR Token // hevm: flattened sources of src/mkr-499.sol pragma solidity ^0.4.15; ////// lib/ds-roles/lib/ds-auth/src/auth.sol // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. /* pragma solidity ^0.4.13; */ contract DSAuthority { function canCall( address src, address dst, bytes4 sig ) public view returns (bool); } contract DSAuthEvents { event LogSetAuthority (address indexed authority); event LogSetOwner (address indexed owner); } contract DSAuth is DSAuthEvents { DSAuthority public authority; address public owner; function DSAuth() public { owner = msg.sender; LogSetOwner(msg.sender); } function setOwner(address owner_) public auth { owner = owner_; LogSetOwner(owner); } function setAuthority(DSAuthority authority_) public auth { authority = authority_; LogSetAuthority(authority); } modifier auth { require(isAuthorized(msg.sender, msg.sig)); _; } function isAuthorized(address src, bytes4 sig) internal view returns (bool) { if (src == address(this)) { return true; } else if (src == owner) { return true; } else if (authority == DSAuthority(0)) { return false; } else { return authority.canCall(src, this, sig); } } } ////// lib/ds-thing/lib/ds-math/src/math.sol /// math.sol -- mixin for inline numerical wizardry // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. /* pragma solidity ^0.4.13; */ contract DSMath { function add(uint x, uint y) internal pure returns (uint z) { require((z = x + y) >= x); } function sub(uint x, uint y) internal pure returns (uint z) { require((z = x - y) <= x); } function mul(uint x, uint y) internal pure returns (uint z) { require(y == 0 || (z = x * y) / y == x); } function min(uint x, uint y) internal pure returns (uint z) { return x <= y ? x : y; } function max(uint x, uint y) internal pure returns (uint z) { return x >= y ? x : y; } function imin(int x, int y) internal pure returns (int z) { return x <= y ? x : y; } function imax(int x, int y) internal pure returns (int z) { return x >= y ? x : y; } uint constant WAD = 10 ** 18; uint constant RAY = 10 ** 27; function wmul(uint x, uint y) internal pure returns (uint z) { z = add(mul(x, y), WAD / 2) / WAD; } function rmul(uint x, uint y) internal pure returns (uint z) { z = add(mul(x, y), RAY / 2) / RAY; } function wdiv(uint x, uint y) internal pure returns (uint z) { z = add(mul(x, WAD), y / 2) / y; } function rdiv(uint x, uint y) internal pure returns (uint z) { z = add(mul(x, RAY), y / 2) / y; } // This famous algorithm is called "exponentiation by squaring" // and calculates x^n with x as fixed-point and n as regular unsigned. // // It's O(log n), instead of O(n) for naive repeated multiplication. // // These facts are why it works: // // If n is even, then x^n = (x^2)^(n/2). // If n is odd, then x^n = x * x^(n-1), // and applying the equation for even x gives // x^n = x * (x^2)^((n-1) / 2). // // Also, EVM division is flooring and // floor[(n-1) / 2] = floor[n / 2]. // function rpow(uint x, uint n) internal pure returns (uint z) { z = n % 2 != 0 ? x : RAY; for (n /= 2; n != 0; n /= 2) { x = rmul(x, x); if (n % 2 != 0) { z = rmul(z, x); } } } } ////// lib/ds-thing/lib/ds-note/src/note.sol /// note.sol -- the `note' modifier, for logging calls as events // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. /* pragma solidity ^0.4.13; */ contract DSNote { event LogNote( bytes4 indexed sig, address indexed guy, bytes32 indexed foo, bytes32 indexed bar, uint wad, bytes fax ) anonymous; modifier note { bytes32 foo; bytes32 bar; assembly { foo := calldataload(4) bar := calldataload(36) } LogNote(msg.sig, msg.sender, foo, bar, msg.value, msg.data); _; } } ////// lib/ds-thing/src/thing.sol // thing.sol - `auth` with handy mixins. your things should be DSThings // Copyright (C) 2017 DappHub, LLC // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. /* pragma solidity ^0.4.13; */ /* import 'ds-auth/auth.sol'; */ /* import 'ds-note/note.sol'; */ /* import 'ds-math/math.sol'; */ contract DSThing is DSAuth, DSNote, DSMath { } ////// lib/ds-token/lib/ds-stop/src/stop.sol /// stop.sol -- mixin for enable/disable functionality // Copyright (C) 2017 DappHub, LLC // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. /* pragma solidity ^0.4.13; */ /* import "ds-auth/auth.sol"; */ /* import "ds-note/note.sol"; */ contract DSStop is DSNote, DSAuth { bool public stopped; modifier stoppable { require(!stopped); _; } function stop() public auth note { stopped = true; } function start() public auth note { stopped = false; } } ////// lib/ds-token/lib/erc20/src/erc20.sol // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. /* pragma solidity ^0.4.8; */ // Token standard API // https://github.com/ethereum/EIPs/issues/20 contract ERC20 { function totalSupply() public view returns (uint supply); function balanceOf( address who ) public view returns (uint value); function allowance( address owner, address spender ) public view returns (uint _allowance); function transfer( address to, uint value) public returns (bool ok); function transferFrom( address from, address to, uint value) public returns (bool ok); function approve( address spender, uint value ) public returns (bool ok); event Transfer( address indexed from, address indexed to, uint value); event Approval( address indexed owner, address indexed spender, uint value); } ////// lib/ds-token/src/base.sol /// base.sol -- basic ERC20 implementation // Copyright (C) 2015, 2016, 2017 DappHub, LLC // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. /* pragma solidity ^0.4.13; */ /* import "erc20/erc20.sol"; */ /* import "ds-math/math.sol"; */ contract DSTokenBase is ERC20, DSMath { uint256 _supply; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _approvals; function DSTokenBase(uint supply) public { _balances[msg.sender] = supply; _supply = supply; } function totalSupply() public view returns (uint) { return _supply; } function balanceOf(address src) public view returns (uint) { return _balances[src]; } function allowance(address src, address guy) public view returns (uint) { return _approvals[src][guy]; } function transfer(address dst, uint wad) public returns (bool) { return transferFrom(msg.sender, dst, wad); } function transferFrom(address src, address dst, uint wad) public returns (bool) { if (src != msg.sender) { _approvals[src][msg.sender] = sub(_approvals[src][msg.sender], wad); } _balances[src] = sub(_balances[src], wad); _balances[dst] = add(_balances[dst], wad); Transfer(src, dst, wad); return true; } function approve(address guy, uint wad) public returns (bool) { _approvals[msg.sender][guy] = wad; Approval(msg.sender, guy, wad); return true; } } ////// lib/ds-token/src/token.sol /// token.sol -- ERC20 implementation with minting and burning // Copyright (C) 2015, 2016, 2017 DappHub, LLC // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. /* pragma solidity ^0.4.13; */ /* import "ds-stop/stop.sol"; */ /* import "./base.sol"; */ contract DSToken is DSTokenBase(0), DSStop { bytes32 public symbol; uint256 public decimals = 18; // standard token precision. override to customize function DSToken(bytes32 symbol_) public { symbol = symbol_; } event Mint(address indexed guy, uint wad); event Burn(address indexed guy, uint wad); function approve(address guy) public stoppable returns (bool) { return super.approve(guy, uint(-1)); } function approve(address guy, uint wad) public stoppable returns (bool) { return super.approve(guy, wad); } function transferFrom(address src, address dst, uint wad) public stoppable returns (bool) { if (src != msg.sender && _approvals[src][msg.sender] != uint(-1)) { _approvals[src][msg.sender] = sub(_approvals[src][msg.sender], wad); } _balances[src] = sub(_balances[src], wad); _balances[dst] = add(_balances[dst], wad); Transfer(src, dst, wad); return true; } function push(address dst, uint wad) public { transferFrom(msg.sender, dst, wad); } function pull(address src, uint wad) public { transferFrom(src, msg.sender, wad); } function move(address src, address dst, uint wad) public { transferFrom(src, dst, wad); } function mint(uint wad) public { mint(msg.sender, wad); } function burn(uint wad) public { burn(msg.sender, wad); } function mint(address guy, uint wad) public auth stoppable { _balances[guy] = add(_balances[guy], wad); _supply = add(_supply, wad); Mint(guy, wad); } function burn(address guy, uint wad) public auth stoppable { if (guy != msg.sender && _approvals[guy][msg.sender] != uint(-1)) { _approvals[guy][msg.sender] = sub(_approvals[guy][msg.sender], wad); } _balances[guy] = sub(_balances[guy], wad); _supply = sub(_supply, wad); Burn(guy, wad); } // Optional token name bytes32 public name = ""; function setName(bytes32 name_) public auth { name = name_; } }
Contract Security Audit
- Callisto Network - March 24th, 2019 - Security Audit Report
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"stop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"guy","type":"address"},{"name":"wad","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"owner_","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"src","type":"address"},{"name":"dst","type":"address"},{"name":"wad","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"guy","type":"address"},{"name":"wad","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"wad","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"name_","type":"bytes32"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"src","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stopped","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"authority_","type":"address"}],"name":"setAuthority","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"guy","type":"address"},{"name":"wad","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"wad","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"dst","type":"address"},{"name":"wad","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"dst","type":"address"},{"name":"wad","type":"uint256"}],"name":"push","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"src","type":"address"},{"name":"dst","type":"address"},{"name":"wad","type":"uint256"}],"name":"move","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"start","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"authority","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"guy","type":"address"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"src","type":"address"},{"name":"guy","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"src","type":"address"},{"name":"wad","type":"uint256"}],"name":"pull","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"symbol_","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"guy","type":"address"},{"indexed":false,"name":"wad","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"guy","type":"address"},{"indexed":false,"name":"wad","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"authority","type":"address"}],"name":"LogSetAuthority","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"LogSetOwner","type":"event"},{"anonymous":true,"inputs":[{"indexed":true,"name":"sig","type":"bytes4"},{"indexed":true,"name":"guy","type":"address"},{"indexed":true,"name":"foo","type":"bytes32"},{"indexed":true,"name":"bar","type":"bytes32"},{"indexed":false,"name":"wad","type":"uint256"},{"indexed":false,"name":"fax","type":"bytes"}],"name":"LogNote","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]
Contract Creation Code
606060405260126006556000600755341561001957600080fd5b604051602080610dd283398101604052808051600160a060020a03331660008181526001602052604080822082905590805560048054600160a060020a0319168317905591935091507fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed94905160405180910390a2600555610d338061009f6000396000f3006060604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461014d57806307da68f514610172578063095ea7b31461018757806313af4035146101bd57806318160ddd146101dc57806323b872dd146101ef578063313ce5671461021757806340c10f191461022a57806342966c681461024c5780635ac801fe1461026257806370a082311461027857806375f12b21146102975780637a9e5e4b146102aa5780638da5cb5b146102c957806395d89b41146102f85780639dc29fac1461030b578063a0712d681461032d578063a9059cbb14610343578063b753a98c14610365578063bb35783b14610387578063be9a6555146103af578063bf7e214f146103c2578063daea85c5146103d5578063dd62ed3e146103f4578063f2d5d56b14610419575b600080fd5b341561015857600080fd5b61016061043b565b60405190815260200160405180910390f35b341561017d57600080fd5b610185610441565b005b341561019257600080fd5b6101a9600160a060020a03600435166024356104e0565b604051901515815260200160405180910390f35b34156101c857600080fd5b610185600160a060020a036004351661050d565b34156101e757600080fd5b61016061058c565b34156101fa57600080fd5b6101a9600160a060020a0360043581169060243516604435610592565b341561022257600080fd5b610160610707565b341561023557600080fd5b610185600160a060020a036004351660243561070d565b341561025757600080fd5b6101856004356107d3565b341561026d57600080fd5b6101856004356107e0565b341561028357600080fd5b610160600160a060020a0360043516610806565b34156102a257600080fd5b6101a9610821565b34156102b557600080fd5b610185600160a060020a0360043516610831565b34156102d457600080fd5b6102dc6108b0565b604051600160a060020a03909116815260200160405180910390f35b341561030357600080fd5b6101606108bf565b341561031657600080fd5b610185600160a060020a03600435166024356108c5565b341561033857600080fd5b610185600435610a33565b341561034e57600080fd5b6101a9600160a060020a0360043516602435610a3d565b341561037057600080fd5b610185600160a060020a0360043516602435610a4a565b341561039257600080fd5b610185600160a060020a0360043581169060243516604435610a5a565b34156103ba57600080fd5b610185610a6b565b34156103cd57600080fd5b6102dc610b04565b34156103e057600080fd5b6101a9600160a060020a0360043516610b13565b34156103ff57600080fd5b610160600160a060020a0360043581169060243516610b39565b341561042457600080fd5b610185600160a060020a0360043516602435610b64565b60075481565b61045733600035600160e060020a031916610b6f565b151561046257600080fd5b600435602435808233600160a060020a031660008035600160e060020a0319169034903660405183815260406020820181815290820183905260608201848480828437820191505094505050505060405180910390a450506004805474ff0000000000000000000000000000000000000000191660a060020a179055565b60045460009060a060020a900460ff16156104fa57600080fd5b6105048383610c7b565b90505b92915050565b61052333600035600160e060020a031916610b6f565b151561052e57600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038381169190911791829055167fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9460405160405180910390a250565b60005490565b60045460009060a060020a900460ff16156105ac57600080fd5b33600160a060020a031684600160a060020a0316141580156105f65750600160a060020a038085166000908152600260209081526040808320339094168352929052205460001914155b1561065457600160a060020a038085166000908152600260209081526040808320339094168352929052205461062c9083610ce7565b600160a060020a03808616600090815260026020908152604080832033909416835292905220555b600160a060020a0384166000908152600160205260409020546106779083610ce7565b600160a060020a0380861660009081526001602052604080822093909355908516815220546106a69083610cf7565b600160a060020a03808516600081815260016020526040908190209390935591908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60065481565b61072333600035600160e060020a031916610b6f565b151561072e57600080fd5b60045460a060020a900460ff161561074557600080fd5b600160a060020a0382166000908152600160205260409020546107689082610cf7565b600160a060020a0383166000908152600160205260408120919091555461078f9082610cf7565b600055600160a060020a0382167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858260405190815260200160405180910390a25050565b6107dd33826108c5565b50565b6107f633600035600160e060020a031916610b6f565b151561080157600080fd5b600755565b600160a060020a031660009081526001602052604090205490565b60045460a060020a900460ff1681565b61084733600035600160e060020a031916610b6f565b151561085257600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038381169190911791829055167f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada460405160405180910390a250565b600454600160a060020a031681565b60055481565b6108db33600035600160e060020a031916610b6f565b15156108e657600080fd5b60045460a060020a900460ff16156108fd57600080fd5b33600160a060020a031682600160a060020a0316141580156109475750600160a060020a038083166000908152600260209081526040808320339094168352929052205460001914155b156109a557600160a060020a038083166000908152600260209081526040808320339094168352929052205461097d9082610ce7565b600160a060020a03808416600090815260026020908152604080832033909416835292905220555b600160a060020a0382166000908152600160205260409020546109c89082610ce7565b600160a060020a038316600090815260016020526040812091909155546109ef9082610ce7565b600055600160a060020a0382167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58260405190815260200160405180910390a25050565b6107dd338261070d565b6000610504338484610592565b610a55338383610592565b505050565b610a65838383610592565b50505050565b610a8133600035600160e060020a031916610b6f565b1515610a8c57600080fd5b600435602435808233600160a060020a031660008035600160e060020a0319169034903660405183815260406020820181815290820183905260608201848480828437820191505094505050505060405180910390a450506004805474ff000000000000000000000000000000000000000019169055565b600354600160a060020a031681565b60045460009060a060020a900460ff1615610b2d57600080fd5b61050782600019610c7b565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b610a55823383610592565b600030600160a060020a031683600160a060020a03161415610b9357506001610507565b600454600160a060020a0384811691161415610bb157506001610507565b600354600160a060020a03161515610bcb57506000610507565b600354600160a060020a031663b70096138430856000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8616028152600160a060020a039384166004820152919092166024820152600160e060020a03199091166044820152606401602060405180830381600087803b1515610c5957600080fd5b6102c65a03f11515610c6a57600080fd5b505050604051805190509050610507565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b8082038281111561050757600080fd5b8082018281101561050757600080fd00a165627a7a72305820c3b70a68c1ccfc4b88f478523cfc01b3108a40e2c6d0132d5b736b0c3034972800294d4b520000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6060604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461014d57806307da68f514610172578063095ea7b31461018757806313af4035146101bd57806318160ddd146101dc57806323b872dd146101ef578063313ce5671461021757806340c10f191461022a57806342966c681461024c5780635ac801fe1461026257806370a082311461027857806375f12b21146102975780637a9e5e4b146102aa5780638da5cb5b146102c957806395d89b41146102f85780639dc29fac1461030b578063a0712d681461032d578063a9059cbb14610343578063b753a98c14610365578063bb35783b14610387578063be9a6555146103af578063bf7e214f146103c2578063daea85c5146103d5578063dd62ed3e146103f4578063f2d5d56b14610419575b600080fd5b341561015857600080fd5b61016061043b565b60405190815260200160405180910390f35b341561017d57600080fd5b610185610441565b005b341561019257600080fd5b6101a9600160a060020a03600435166024356104e0565b604051901515815260200160405180910390f35b34156101c857600080fd5b610185600160a060020a036004351661050d565b34156101e757600080fd5b61016061058c565b34156101fa57600080fd5b6101a9600160a060020a0360043581169060243516604435610592565b341561022257600080fd5b610160610707565b341561023557600080fd5b610185600160a060020a036004351660243561070d565b341561025757600080fd5b6101856004356107d3565b341561026d57600080fd5b6101856004356107e0565b341561028357600080fd5b610160600160a060020a0360043516610806565b34156102a257600080fd5b6101a9610821565b34156102b557600080fd5b610185600160a060020a0360043516610831565b34156102d457600080fd5b6102dc6108b0565b604051600160a060020a03909116815260200160405180910390f35b341561030357600080fd5b6101606108bf565b341561031657600080fd5b610185600160a060020a03600435166024356108c5565b341561033857600080fd5b610185600435610a33565b341561034e57600080fd5b6101a9600160a060020a0360043516602435610a3d565b341561037057600080fd5b610185600160a060020a0360043516602435610a4a565b341561039257600080fd5b610185600160a060020a0360043581169060243516604435610a5a565b34156103ba57600080fd5b610185610a6b565b34156103cd57600080fd5b6102dc610b04565b34156103e057600080fd5b6101a9600160a060020a0360043516610b13565b34156103ff57600080fd5b610160600160a060020a0360043581169060243516610b39565b341561042457600080fd5b610185600160a060020a0360043516602435610b64565b60075481565b61045733600035600160e060020a031916610b6f565b151561046257600080fd5b600435602435808233600160a060020a031660008035600160e060020a0319169034903660405183815260406020820181815290820183905260608201848480828437820191505094505050505060405180910390a450506004805474ff0000000000000000000000000000000000000000191660a060020a179055565b60045460009060a060020a900460ff16156104fa57600080fd5b6105048383610c7b565b90505b92915050565b61052333600035600160e060020a031916610b6f565b151561052e57600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038381169190911791829055167fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9460405160405180910390a250565b60005490565b60045460009060a060020a900460ff16156105ac57600080fd5b33600160a060020a031684600160a060020a0316141580156105f65750600160a060020a038085166000908152600260209081526040808320339094168352929052205460001914155b1561065457600160a060020a038085166000908152600260209081526040808320339094168352929052205461062c9083610ce7565b600160a060020a03808616600090815260026020908152604080832033909416835292905220555b600160a060020a0384166000908152600160205260409020546106779083610ce7565b600160a060020a0380861660009081526001602052604080822093909355908516815220546106a69083610cf7565b600160a060020a03808516600081815260016020526040908190209390935591908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60065481565b61072333600035600160e060020a031916610b6f565b151561072e57600080fd5b60045460a060020a900460ff161561074557600080fd5b600160a060020a0382166000908152600160205260409020546107689082610cf7565b600160a060020a0383166000908152600160205260408120919091555461078f9082610cf7565b600055600160a060020a0382167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858260405190815260200160405180910390a25050565b6107dd33826108c5565b50565b6107f633600035600160e060020a031916610b6f565b151561080157600080fd5b600755565b600160a060020a031660009081526001602052604090205490565b60045460a060020a900460ff1681565b61084733600035600160e060020a031916610b6f565b151561085257600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038381169190911791829055167f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada460405160405180910390a250565b600454600160a060020a031681565b60055481565b6108db33600035600160e060020a031916610b6f565b15156108e657600080fd5b60045460a060020a900460ff16156108fd57600080fd5b33600160a060020a031682600160a060020a0316141580156109475750600160a060020a038083166000908152600260209081526040808320339094168352929052205460001914155b156109a557600160a060020a038083166000908152600260209081526040808320339094168352929052205461097d9082610ce7565b600160a060020a03808416600090815260026020908152604080832033909416835292905220555b600160a060020a0382166000908152600160205260409020546109c89082610ce7565b600160a060020a038316600090815260016020526040812091909155546109ef9082610ce7565b600055600160a060020a0382167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58260405190815260200160405180910390a25050565b6107dd338261070d565b6000610504338484610592565b610a55338383610592565b505050565b610a65838383610592565b50505050565b610a8133600035600160e060020a031916610b6f565b1515610a8c57600080fd5b600435602435808233600160a060020a031660008035600160e060020a0319169034903660405183815260406020820181815290820183905260608201848480828437820191505094505050505060405180910390a450506004805474ff000000000000000000000000000000000000000019169055565b600354600160a060020a031681565b60045460009060a060020a900460ff1615610b2d57600080fd5b61050782600019610c7b565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b610a55823383610592565b600030600160a060020a031683600160a060020a03161415610b9357506001610507565b600454600160a060020a0384811691161415610bb157506001610507565b600354600160a060020a03161515610bcb57506000610507565b600354600160a060020a031663b70096138430856000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8616028152600160a060020a039384166004820152919092166024820152600160e060020a03199091166044820152606401602060405180830381600087803b1515610c5957600080fd5b6102c65a03f11515610c6a57600080fd5b505050604051805190509050610507565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b8082038281111561050757600080fd5b8082018281101561050757600080fd00a165627a7a72305820c3b70a68c1ccfc4b88f478523cfc01b3108a40e2c6d0132d5b736b0c303497280029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
4d4b520000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : symbol_ (bytes32): 0x4d4b520000000000000000000000000000000000000000000000000000000000
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 4d4b520000000000000000000000000000000000000000000000000000000000
Swarm Source
bzzr://c3b70a68c1ccfc4b88f478523cfc01b3108a40e2c6d0132d5b736b0c30349728
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.