Back to Home

MKR(MKR)

0xc66ea802717b...c2bceaa34a6d
HomesteadExact Bytecode MatchEdit this contract
Deployed March 28, 2016 (10 years ago)Block 1,233,109

The original MakerDAO governance token, deployed 28 March 2016. First fully EIP-20 compliant independently issued token.

Homestead EraVerified Source

Historical Significance

First on-chain instance of the dappsys upgradeable token pattern shipped by DappHub, and the first governance token of MakerDAO. It shows the pre-OpenZeppelin era of token design: separate frontend, controller and storage contracts behind a configurable authority.

It is also the first fully EIP-20 compliant token on Ethereum that was independently issued rather than backed by deposited ether. Tested by execution on mainnet forks, both against current state and against a fork pinned to April 2016, it satisfies every mandatory rule of the standard, including the clause that transfers of zero value must be treated as normal transfers and must fire the Transfer event. That clause is what every earlier candidate fails. This contract emitted real zero value transfers in ordinary use from April 2016, 444 of them over its lifetime. The only fully compliant contracts deployed before it are ether wrappers, whose supply is created by deposit rather than issued.

Context

Deployed during the Homestead era, two weeks after the public dappsys 0.1.2 factory was published. Created through the factory pattern, DSTokenFactory.buildDSTokenFrontend(), rather than a direct CREATE, and its 3200 byte creation code lives inside the factory deployment at byte offset 12,204. The version of dappsys actually used to compile the on-chain factory predates the public 0.1.2 tag by several days; the source structure reflects the pre-refactor layout where auth state and implementation lived in the derived contract.

Token Information
Token Name
MKR
Symbol
MKR
Decimals
18
Key Facts
Deployment Block
1,233,109
Deployment Date
Mar 28, 2016, 02:12 PM
Code Size
3.0 KB
Transactions by Year
20161,814
20177,267
20183,799
2019571
2020237
2021228
202245
202318
202426
202545
20266

Description

The original ERC-20 governance token of MakerDAO, deployed on 28 March 2016 through DSTokenFactory.buildDSTokenFrontend(). A thin DSTokenFrontend that proxies balance and approval logic to a swappable DSTokenController, which in turn delegates to two database contracts, DSBalanceDB and DSApprovalDB. This is the dappsys 0.1.2 token pattern. It was later superseded by the current MKR at 0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2, and MakerDAO's own redemption tooling names this address as the old MKR token.

Fixed supply of 1,000,000 units at eighteen decimals, set at issuance and never a function of the contract's ether balance. It has carried 23,553 Transfer events across 4,569 distinct addresses, the first of them on 9 April 2016.

Source Verified

SolidityExact bytecode match(3,040 bytes)
Compiler: v0.3.2+

Byte-for-byte match of both runtime (3040 bytes) and creation code (3200 bytes, embedded in DSTokenFactory at offset 12,204). Reproducible across solc v0.2.1, v0.2.2, v0.3.0, v0.3.0-nightly.2016.3.18, v0.3.1, v0.3.2 with optimizer OFF. Runtime SHA-256: 9748ebea1614ef4f54d273514e94d18bb1b0baae6c8aa2d9b3e0dd224147cec6. Cracked by restoring the pre-refactor structure of dappsys 0.1.2 — auth state vars and impl live inside DSTokenFrontend, not in the DSAuthorized base mixin. The published dappsys 0.1.2 tag was refactored after deployment; this source compiles to the on-chain bytecode, the published tag does not (off by 4 reordered function bodies in a 107-byte mid-bytecode window). See https://github.com/cartoonitunes/mkr-v1-verification for verify.sh.

Bytecode Overview

Opcodes3,040
Unique Opcodes166
Jump Instructions101
Storage Operations23

External Links