# MistCoin ($WMC) — Complete Reference > The ERC-20 prototype. Fabian Vogelsteller built MistCoin while developing the ERC-20 token standard and deployed it on November 3, 2015, sixteen days before he filed the proposal. He has said he used it to test the standard idea. ## Overview MistCoin was deployed on November 3, 2015 at 12:03:29 UTC, block 483,325, as a prototype to test standardized token creation in the Mist Browser (Ethereum's official dApp browser). Ethereum Wallet 0.3.5, the release that added token creation to the wallet, was published one hour and forty minutes later. Sixteen days after that, on November 19, 2015, Fabian Vogelsteller filed the proposal that became ERC-20 (EIP-20). He has publicly said he deployed MistCoin to test the standard idea. The proposal as filed was not the standard we know: it took until January 6, 2016 to reach the interface in use today. MistCoin implements `transfer`, `balanceOf` and the `Transfer` event, which are the three members EIP-20's own Motivation section names as the most important, plus `name`, `symbol` and `decimals`. Every member in it is still in the standard today. It is the base the rest of the standard was built on top of. What is unique to MistCoin is its relationship to the standard: it is the working prototype its author deployed while he was still working out what the interface should be. Experiments with tokens on Ethereum go back to at least August 2015 and a handful of earlier contracts had a balance and a transfer function, so precedence is not the interesting claim here. Authorship is. ## Token Details | Field | Value | |-------|-------| | Name | MistCoin | | Ticker | MC (original), WMC (wrapped) | | Deployment date | November 3, 2015, 12:03:29 UTC | | Deployment block | 483,325 | | Deployment tx | 0x74349ce609e100a65c91851781f3b6b0829cef476eaba5ce53630d49497554a7 | | Deployer address | 0x9b22a80d5c7b3374a05b446081f97d0a34079e7f | | Original contract | 0xf4eCEd2f682CE333f96f2D8966C613DeD8fC95DD | | Wrapped contract | 0x7Fd4d7737597E7b4ee22AcbF8D94362343ae0a79 | | Wrapper contract | 0x67c6ec7e6a0e2e2d345de398d3ac607364b0ed30 | | Total supply | 1,000,000 MC (100,000,000 raw units) | | Decimals | 2 | | Chain | Ethereum mainnet | | Standard | Predates ERC-20. Implements name, symbol, decimals, balanceOf, transfer and the Transfer event, including all three members EIP-20's Motivation section names as most important | ## Historical Timeline ### June 17, 2015 — Vitalik begins standardization Vitalik Buterin begins externally proposing the first token standards in crypto on the Ethereum Wiki ("Standardized Contract APIs"). Through July 5, 2015, Vitalik expands on standardization ideas including standard decentralized exchanges and registries — the building blocks for what would become MetaMask, Uniswap, and ENS. Source: https://web.archive.org/web/20170507171420/https://github.com/ethereum/wiki/wiki/Standardized_Contract_APIs ### October 1, 2015 — The optional three are proposed Alex Van de Sande adds a "Variables" section to the standards wiki proposing `coinSymbol`, `coinName` and `coinBaseUnit`, and describes them as optional because they exist so a GUI client has something to display. Renamed over the following weeks, these become `symbol`, `name` and `decimals`. EIP-20 still marks all three OPTIONAL. Source: https://github.com/ethereum/wiki/wiki/Standardized_Contract_APIs/_history ### October 4, 2015 — Two final names are born Gavin Wood renames `coinBalanceOf` to `balanceOf` and the `CoinTransfer` event to `Transfer` in a single wiki edit. Source: https://github.com/ethereum/wiki/wiki/Standardized_Contract_APIs/607b6ac9c090c45c10e05a00c172793811d02621 ### October 6, 2015 — transfer and transferFrom get their names Simon de la Rouviere renames `sendCoin` to `transfer` and `sendCoinFrom` to `transferFrom`, the latter via a typo corrected 24 seconds later. Source: https://github.com/ethereum/wiki/wiki/Standardized_Contract_APIs/9721a6be9f6207629d0c58f349aa90ce5890cd13 ### October 28, 2015 — Fabian fixes the signatures Fabian Vogelsteller corrects the parameter order to `transfer(address _to, uint256 _value)` and `transferFrom(address _from, address _to, uint256 _value)`, the signatures every ERC-20 token still uses. This is his last edit to the standards wiki before MistCoin is deployed. Source: https://github.com/ethereum/wiki/wiki/Standardized_Contract_APIs/0627f2404a6f031d523e263e65cbf0353769f6b1 ### November 3, 2015 — MistCoin deployed and Wallet 0.3.5 ships MistCoin is deployed at 12:03:29 UTC, block 483,325, with a supply of 1,000,000 MC at 2 decimals. Ethereum Wallet 0.3.5 (Beta 3), which adds contract deployment and a custom token system to the wallet, is published at 13:43:51 UTC, one hour and forty minutes later. Note: the 0.3.5 release notes never use the words "standard", "ERC" or "EIP". They describe tokens purely as a wallet feature. Source: https://etherscan.io/address/0xf4eCEd2f682CE333f96f2D8966C613DeD8fC95DD Source: https://github.com/ethereum/mist/releases/tag/0.3.5 ### November 19, 2015 — The proposal is filed Fabian Vogelsteller opens `ethereum/EIPs` issue #20, "ERC: Token standard". EIP-20 is credited to Fabian Vogelsteller and Vitalik Buterin. What is filed that day is not the standard as it is known now. Revision 1 contains four of the six methods, an `approve` that takes no amount, no `allowance`, no `Approval` event, and five members that no longer exist: `decimals`, `unapprove`, `isApprovedFor`, `approveOnce` and `isApprovedOnceFor`. Source: https://github.com/ethereum/EIPs/issues/20 ### November 20, 2015 — allowance and Approval appear `isApprovedFor` is renamed `allowance` and `AddressApproval` is renamed `Approval`. These two members, the ones that make exchanges and DeFi possible, are the last of the eight to arrive, about 30 hours after the issue was filed and 17 months after the wiki page was started. Source: https://github.com/ethereum/EIPs/issues/20 ### November 26, 2015 — decimals is voted out `decimals` is removed from the proposal body following a community poll held on the Ethereum wiki. It survives in EIP-20 only as an optional member. Source: https://github.com/ethereum/EIPs/issues/20 ### December 3, 2015 — Ethereum Foundation blog post Alex Van de Sande publishes "Ethereum in practice part 1: how to build your own cryptocurrency without touching a line of code" on the Ethereum blog. The post contains no inline Solidity; it directs readers to load a contract from a gist. That gist is character-for-character identical to the source MistCoin was compiled from, and compiles to MistCoin's exact bytecode. The post never uses the terms "ERC-20", "ERC20", "EIP-20" or "token standard". Source: https://blog.ethereum.org/2015/12/03/how-to-build-your-own-cryptocurrency ### January 6, 2016 — The interface settles Issue #20's body is edited to state the six methods and two events in use today, with nothing extra. This is the date ERC-20 becomes ERC-20, seven weeks after the issue was opened. The Ethereum wiki mirrors the change 20 minutes later. Source: https://github.com/ethereum/EIPs/issues/20 ### January 10, 2016 — The first fully compliant contract The first contract on Ethereum mainnet carrying all six ERC-20 methods is deployed, four days after the specification stopped changing. Only 1,014 contracts implement all six across the whole of 2016. ### September 11, 2017 — ERC-20 is formalized The standard is merged as a formal EIP in the ethereum/EIPs repository. Source: https://eips.ethereum.org/EIPS/eip-20 ## Key People ### Fabian Vogelsteller - Role: Lead Ethereum dApp Developer - Contribution: Credited author of EIP-20, built the Mist Browser, filed issue #20, and is the person MistCoin's deployment is attributed to. His October 28, 2015 wiki edit fixed the `transfer` and `transferFrom` parameter order still in use today. - GitHub: https://github.com/frozeman ### Alex Van de Sande (avsa) - Role: Head of UX at Ethereum Foundation - Contribution: Led Mist and designed the Ethereum Wallet. Originated `name`, `symbol` and `decimals` (as `coinSymbol`, `coinName` and `coinBaseUnit`) on October 1, 2015, along with the argument for their optional status. Wrote the Foundation's December 2015 token tutorial, which shipped MistCoin's exact source. - GitHub: https://github.com/alexvandesande ### Vitalik Buterin - Role: Founder of Ethereum - Contribution: Credited author of EIP-20. Created the Standardized Contract APIs wiki page on June 17, 2015, the document that ERC-20 grew out of over the following seventeen months. - Notable quote: "We need to bring back Mist." ### Gavin Wood - Role: Co-founder of Ethereum, creator of Solidity - Contribution: Built the programming language (Solidity) in which MistCoin's contract was written. On October 4, 2015 he renamed `coinBalanceOf` to `balanceOf` and the `CoinTransfer` event to `Transfer` in a single wiki edit, giving two of the eight ERC-20 members their permanent names. ### Simon de la Rouviere - Role: ConsenSys engineer - Contribution: Renamed `sendCoin` to `transfer` and `sendCoinFrom` to `transferFrom` on October 6, 2015. Maintained ConsenSys/Tokens, whose `Token.sol` on December 21, 2015 is the first file publicly available anywhere containing exactly the ERC-20 interface and nothing else. Presented on token standardization at Devcon 1. ## The Original Contract Code The complete set of external members in MistCoin's 716-byte deployed runtime is `name()`, `symbol()`, `decimals()`, `balanceOf(address)`, `transfer(address,uint256)` and the `Transfer(address,address,uint256)` event. Every one of them is still in ERC-20 today, and three of them are the three EIP-20's Motivation section calls the most important. The source below is gist `frozeman/20c8b5658349b003b08d` revision `7bcfaef3`, which recompiles to that exact bytecode under solc 0.1.6 with the optimizer enabled: ```solidity mapping (address => uint256) public balanceOf; event Transfer(address indexed from, address indexed to, uint256 value); function MyToken(uint256 _supply, string _name, string _symbol, uint8 _decimals) { if (_supply == 0) _supply = 1000000; balanceOf[msg.sender] = _supply; name = _name; symbol = _symbol; decimals = _decimals; } function transfer(address _to, uint256 _value) { if (balanceOf[msg.sender] < _value) throw; if (balanceOf[_to] + _value < balanceOf[_to]) throw; balanceOf[msg.sender] -= _value; balanceOf[_to] += _value; Transfer(msg.sender, _to, _value); } ``` ## Why Was MistCoin Wrapped? The allowance machinery that decentralized exchanges rely on, `approve` and `transferFrom` and `allowance`, was added to the ERC-20 proposal after MistCoin was already deployed, and no contract on Ethereum mainnet carried it until 2016. Rather than alter a historic contract, a wrapper was deployed in 2022 to supply those later members. Holders can wrap and unwrap freely at any time, so the 2015 contract keeps doing exactly what it has done since November 2015 while Wrapped MistCoin (WMC) trades on Uniswap and other DEXes. ## Trading Information - **DEX:** Uniswap V2 (Ethereum mainnet) - **Trading pair:** WMC/WETH - **Uniswap pool:** 0x7c2caefe7ef6f5edf53cdcea8d60ea615f102e0c - **Buy link:** https://swap.cow.fi/#/1/swap/WETH/WMC - **DexScreener:** https://dexscreener.com/ethereum/0x7c2caefe7ef6f5edf53cdcea8d60ea615f102e0c - **CoinMarketCap:** https://coinmarketcap.com/dexscan/ethereum/0x7c2caefe7ef6f5edf53cdcea8d60ea615f102e0c/ ## Notable Holders - Bureau of Internet Culture (BIC) — Added MistCoin to their DAO treasury ## Website Tools ### Origin Checker Compare any ERC-20 token's deployment date to MistCoin's. Shows whether a token was deployed before or after MistCoin and calculates what MistCoin's price would be at that token's market cap. URL: https://mistcoineth.com/origin-checker ### Mist Browser Simulator An interactive recreation of the original Ethereum Wallet dApp within the Mist Browser, allowing users to experience how MistCoin was created in 2015. URL: https://mistcoineth.com/mist-simulator ## Frequently Asked Questions ### What is MistCoin, and why is it significant? MistCoin is the prototype Fabian Vogelsteller built while he was developing the ERC-20 token standard. He deployed it on November 3, 2015, filed the proposal that became ERC-20 sixteen days later, and has publicly said he used MistCoin to test the standard idea. It went onchain the same day Ethereum Wallet 0.3.5 shipped the wallet's token feature. ### What makes MistCoin different from other early tokens? Experiments with tokens on Ethereum go back to at least August 2015, and a handful of contracts carrying a balance and a transfer function came earlier than MistCoin. Precedence is not the interesting claim. MistCoin is the prototype the author of ERC-20 built while working out the standard. Fabian Vogelsteller deployed it on November 3, 2015, filed the proposal that became ERC-20 sixteen days later, and has said he used MistCoin to test the standard idea. It implements `transfer`, `balanceOf` and the `Transfer` event, the three members EIP-20's own Motivation section names as the most important, plus `name`, `symbol` and `decimals`. No other token on Ethereum has that relationship to the standard that every token now follows. Two further verifiable details: MistCoin carries the complete set of members the Ethereum Wallet's token interface asked for, and it is the earliest of 173 contracts across Ethereum history sharing its exact runtime bytecode. ### Is MistCoin ERC-20 compliant? By the definition in force when it was deployed, and by the standard's own account of which members matter, yes. EIP-20 has a Motivation section that singles out which of its members carry the weight: "The most important here are, `transfer`, `balanceOf` and the `Transfer` event." MistCoin implements all three, and implemented them before that sentence was written. Every draft of the proposal through January 2016 named `decimals` in that list as well, and MistCoin has that too, along with `name` and `symbol`. The Ethereum Wallet used the same bar. Its token interface asked for exactly those members, and as late as March 15, 2016, Alex Van de Sande was still telling the ERC-20 issue thread that implementing `balanceOf` and `transfer` and their events was all a token needed in order to work. The allowance half of the standard was still being argued over on issue #20 while MistCoin was already running, and it did not reach mainnet in any contract until 2016. Measuring a November 2015 contract against a specification that settled in January 2016 is an anachronism. What MistCoin shipped is the part of the standard that never changed, and Wrapped MistCoin supplies the later additions so the token can trade on modern exchanges. ### Who created the ERC-20 standard? EIP-20 is credited to Fabian Vogelsteller and Vitalik Buterin. Fabian filed issue #20, "ERC: Token standard", on November 19, 2015. The work began months earlier with Vitalik's "Standardized Contract APIs" wiki page in June 2015, and it involved Gavin Wood, Alex Van de Sande, Simon de la Rouviere and others across seventeen months of edits. The proposal as filed on November 19 was not the standard as it is known now. It contained four of the six methods, an `approve` that took no amount, no `allowance` and no `Approval` event. It went through nineteen revisions, lost `decimals` to a community poll, and did not state today's interface until January 6, 2016. ### What is the ERC-20 token standard? ERC-20 defines a set of rules for creating tokens on Ethereum. These rules ensure tokens are interoperable with each other and with decentralized applications (dApps), providing consistency in how tokens function across wallets, exchanges, and DeFi platforms. ### How many ERC-20 tokens exist today? Millions of ERC-20 tokens have been created on Ethereum, representing hundreds of billions of dollars in combined market capitalization. Every one of them descends from a proposal whose author was, sixteen days before he filed it, testing the idea with MistCoin. Adoption of the specification as written came later still: the first mainnet contract with all six methods appears on January 10, 2016, and only 1,014 manage it across the whole of that year. ### Can I buy MistCoin? Yes. Wrapped MistCoin ($WMC) is tradable on Uniswap and other Ethereum DEXes. Buy at: https://swap.cow.fi/#/1/swap/WETH/WMC ## Primary Sources - MistCoin on Ethereum History: https://ethereumhistory.com/contract/0xf4eced2f682ce333f96f2d8966c613ded8fc95dd - MistCoin on Etherscan: https://etherscan.io/address/0xf4eCEd2f682CE333f96f2D8966C613DeD8fC95DD - Deployment transaction: https://etherscan.io/tx/0x74349ce609e100a65c91851781f3b6b0829cef476eaba5ce53630d49497554a7 - MistCoin's source gist: https://gist.github.com/frozeman/20c8b5658349b003b08d - Issue #20, "ERC: Token standard": https://github.com/ethereum/EIPs/issues/20 - EIP-20 as finalized: https://eips.ethereum.org/EIPS/eip-20 - The ERC-20 Code Trail, a primary-source reconstruction of the interface's development: https://erc20-code-trail.vercel.app - Standardized Contract APIs wiki history: https://github.com/ethereum/wiki/wiki/Standardized_Contract_APIs/_history - Ethereum Wallet 0.3.5 release notes: https://github.com/ethereum/mist/releases/tag/0.3.5 - Wallet 0.3.5 announcement on r/ethereum: https://www.reddit.com/r/ethereum/s/RaFWsX2fTj - MistCoin on r/ethereum: https://www.reddit.com/r/ethereum/s/ormEwaQzvO - The commit wiring the MyToken gist into the wallet UI: https://github.com/ethereum/meteor-dapp-wallet/commit/8dfbad0615c2cc82201be69b3a247338973bf357 - Alex Van de Sande, "Ethereum in practice part 1": https://blog.ethereum.org/2015/12/03/how-to-build-your-own-cryptocurrency - Fabian Vogelsteller on X: https://x.com/feindura - Devcon 1, Standardization: https://archive.devcon.org/archive/watch/1/standardization/?tab=YouTube ## Social Links - Twitter/X: https://twitter.com/MistCoinEth - Telegram: https://t.me/MistCoinEth - Discord: https://discord.gg/XzGctWjS7z - Bluesky: https://bsky.app/profile/mistcoin.bsky.social - Warpcast: https://warpcast.com/mistcoin