- etherwallet-vX.X.X.X.zip is the smaller package containing the gh-pages branch aka MyEtherWallet.com
- chrome-extension-vX.X.X.X.zip is the chrome extension package
- source code is the full source for developers to get started with (although cloning or forking the mercury branch is probably a better choice)
Check gh-pages files against live website at https://www.myetherwallet.com
- Website: https://www.myetherwallet.com/
- CX: https://chrome.google.com/webstore/detail/myetherwallet-cx/nlbmnnijcnlegkjjpcfjclmcfggfefdm
- Anti-phish CX
- FB: https://www.facebook.com/MyEtherWallet/
- Twitter: https://twitter.com/myetherwallet
- Medium: https://medium.com/@myetherwallet
- Help Center: https://myetherwallet.groovehq.com/help_center
- Github MEW Repo: https://github.com/kvhnuke/etherwallet
- Github MEW Org: https://github.com/MyEtherWallet
- Github Pages URL: https://kvhnuke.github.io/etherwallet/
- Github Latest Releases: https://github.com/kvhnuke/etherwallet/releases/latest
- Github Anti-phish CX: https://github.com/409H/EtherAddressLookup
- [Slack: https://myetherwallet.slack.com/ & https://myetherwallet.herokuapp.com/](https://myetherwallet.slack.com/ & https://myetherwallet.herokuapp.com/)
- Reddit: https://www.reddit.com/r/MyEtherWallet/
- tayvano (founder) reddit: https://www.reddit.com/user/insomniasexx/
- kvhnuke (founder) reddit: https://www.reddit.com/user/kvhnuke/
- jordan (cmo) reddit: https://www.reddit.com/user/trogdortb001
- myetherwallet reddit user: https://www.reddit.com/user/myetherwallet
- MEW ETH Donation Address: 0xDECAF9CD2367cdbb726E904cD6397eDFcAe6068D (mewtopia.eth)
- MEW BTC Donation Address: 1DECAF2uSpFTP4L1fAHR8GCLrPqdwdLse9
mercury
is the development branch. gh-pages contains only the smaller dist folder only and is served to MyEtherWallet.com
- Our infrastructure ("node") is on AWS. You can also use your own node.
- We also provide access to Infura.io & Etherscan.io nodes. Use the drop-down in the top-right.
- MyEtherWallet is a free, open-source, client-side tool for easily & securely interacting with the Ethereum network. As one of the leading providers of Ethereum services, MyEtherWallet equips users with an easy-to-understand and accessible suite of tools for their needs.
- It was created and is maintained by kvhnuke and tayvano.
- Create new wallets completely client side.
- Access your wallet via unencrypted private key, encrypted private key, keystore files, mnemonics, or BitBox, Ledger Nano S or TREZOR hardware wallet.
- Easily send ETH and any ERC-20 Standard Token. Many tokens included as default.
- Generate, sign & send transactions offline, ensuring your private keys never touch an internet-connected device.
- Securely access your ETH & Tokens on your BitBox, Ledger or TREZOR Hardware Wallet via the MyEtherWallet interface (Chrome & Opera natively, Firefox w/ add-on)
- Now in 18 languages thanks 100% to the amazing Ethereum community.
- Supports URI Strings on Send Transaction Page.
- to=[address]
- value=[number]
- sendMode=[ether | token]
- tokenSymbol=[ARC | ICN | MKR | ....]
- gasLimit=[number] OR gas=[number]
- data=[hex data]
- Example 1: https://www.myetherwallet.com/?to=0xDECAF9CD2367cdbb726E904cD6397eDFcAe6068D&value=1&tokenSymbol=REP&gaslimit=50000#send-transaction
- Example 2: https://www.myetherwallet.com/?to=0xDECAF9CD2367cdbb726E904cD6397eDFcAe6068D&value=1&gaslimit=23000&data=0x5468616e6b20796f752c204d455720322e30#send-transaction
- Empower the people: Give people the ability to interact with the Ethereum blockchain easily, without having to run a full node.
- Make it easy & free: Everyone should be able to create a wallet and send Ether & Tokens without additional cost.
- People are the Priority: People are the most important & their experience trumps all else. If monetization worsens the experience, we don't do it. (e.g. ads)
- A learning experience, too: We want to educate about Ethereum, security, privacy, the importance of controlling your own keys, how the blockchain works, and how Ethereum and blockchain technologies enable a better world.
- If it can be hacked, it will be hacked: Never save, store, or transmit secret info, like passwords or keys.
- Offline / Client-Side: User should be able to run locally and offline without issue.
- Private: No tracking!!! No emails. No ads. No demographics. We don't even know how many wallets have been generated, let alone who / what / where you are.
- Open source & audit-able
- It is recommended you start here.
- You can run MyEtherWallet.com on your computer. You can create a wallet completely offline & send transactions from the "Offline Transaction" page.
- Go to https://github.com/kvhnuke/etherwallet/releases/latest.
- Click on dist-vX.X.X.X.zip.
- Move zip to an airgapped computer.
- Unzip it and double-click index.html.
- MyEtherWallet.com is now running entirely on your computer.
In case you are not familiar, you need to keep the entire folder in order to run the website, not just index.html. Don't touch or move anything around in the folder. If you are storing a backup of the MyEtherWallet repo for the future, we recommend just storing the ZIP so you can be sure the folder contents stay intact.
As we are constantly updating MyEtherWallet.com, we recommend you periodically update your saved version of the repo.
If you want to help contribute, here's what you need to know to get it up and running and compiling.
- Both the Chrome Extension and the MyEtherWallet.com are compiling from the same codebase. This code is found in the
app
folder. Don't touch thedist
orchrome-extension
folders. - We use angular and bootstrap. We used to use jQuery and Bootstrap until it was converted in April 2016. If you wonder why some things are set up funky, that's why.
- The mercury branch is currently the active development branch. We then push the dist folder live to gh-pages, which then gets served to MyEtherWallet.com.
- We use npm / gulp for compiling. There is a lot of stuff happening in the compilation.
Getting Started
- Start by running
npm install
. - Run
npm run dev
. Gulp will then watch & compile everything and then watch for changes to the HTML, JS, or CSS. - For distribution, run
npm run dist
.
Folder Structure
-
fonts
andimages
get moved into their respective folders. This isn't watched via gulp so if you add an image or font, you need to rungulp
again. -
includes
are the pieces of the pages / the pages themselves. These are pretty self-explanatory and where you will make most frontend changes. -
layouts
are the pages themselves. These basically take all the pieces of the pages and compile into one massive page. The navigation is also found here...sort of.index.html
is for MyEtherWallet.com.cx-wallet.html
is the main page for the Chrome Extension.embedded.html
is for https://www.myetherwallet.com/embedded.html.
-
You can control what shows up on MyEtherWallet.com vs the Chrome Extension by using:
@@if (site === 'cx' ) { ... }
and@@if (site === 'mew' ) { ... }
. Check outsendTransaction.tpl
to see it in action. The former will only compile for the Chrome Extension. The latter only to MyEtherWallet.com. -
embedded.html
is for embedding the wallet generation into third-party sites. Read more about it and how to listen for the address generated here. -
The wallet decrypt directives are at
scripts/directives/walletDecryptDrtv.js
. These show up on a lot of pages. -
The navigation is in
scripts/services/globalServices.js
. Again, we control which navigation items show up in which version of the site in this single file. -
As of September 2016, almost all the copy in the .tpl files are only there as placeholders. It all gets replaced via angular-translate. If you want to change some copy you need to do so in
scripts/translations/en.js
folder. You should also make a note about what you changed and move it to the top of the file so that we can make sure it gets translated if necessary. -
styles
is all the less. It's a couple custom folders and bootstrap. This badly needs to be redone. Ugh.
Old
A couple of notes:
- Everything on the entire site is broken down into lines and in this one file. The uppermost items are the highest priority and the further you go down, the less of a priority it is.
- You can add comments anywhere by wrapping it in /* Your Comment Here */. If you want to leave a note for yourself or someone else, do so in this format. That way it doesn't screw up the code or show up somewhere on the site.
- Don't delete any lines. Just leave it in English if you don't know how to translate it.
- Always make sure each line ends with
',
. So the format isNAME: ' your text here ',
You only need to change theyour text here
part - try not to touch anything else.
If you are NOT a developer and have no idea how this works:
Anyone can help out and it looks way more complicated than it is! If you would rather not deal with Github, please send us an email to [email protected] and I'll email you the file and you can make changes and send it back to us and I'll make sure you don't screw anything up. If you feel like experiencing something new, read on!
- Sign into your Github account or make a new Github account.
- Go to https://github.com/kvhnuke/etherwallet/tree/mercury/app/scripts/translations
- Click on the language file you want to update.
- Look in the upper right. Click the pencil icon. This will then tell you, "You’re editing a file in a project you don’t have write access to. We’ve created a fork of this project for you to commit your proposed changes to. Submitting a change to this file will write it to a new branch in your fork, so you can send a pull request." Ignore it all.
- In your browser, start translating. Translate as little or as much as you want.
- Scroll down to halfway to the translator's section. Enter your name/username, donation address, and any comments you would like to leave.
- When you are done, tell us what language you updated. You can also leave any notes about problems you had or things you'd like us to know.
- Click the green "Propose File change" button.
- This next page is a review of what you did.
- Click the "Create Pull Request" button.....twice. Screenshot.
- That's it. You successfully made a new pull request! Tell all your friends.
- We will now review it and pull it in and it will be made live on the site. We may also ask you questions if something is confusing for whatever reason.
If you are a developer and familiar with GitHub, Pull Requests, and know how to save a JS file as a .js file rather than a Word Doc:
- Clone the mercury branch.
- Go to
/app/scripts/translations/
. - Open the language you want to translate.
- Translate as much or as little as you wish.
- Add your name/username, donation address, and any notes you would like on in the translator's section, about halfway down.
- Open a PR and leave us a brief description of what you did and any issues you ran into or comments you have.
Read more @ Help us translate MyEtherWallet.com into ALL THE LANGUAGES!
If you can think of any other features or run into bugs, let us know. You can fork, open a PR, open an issue, or support at myetherwallet dot com.
- 08/12/15: Launch Post: Ether Wallet Generator (for now). Never forget where you came from.
- 08/19/15: ETHER WALLET- Ready for the second round?. We the domain name & SSL.
- 08/24/15: Lets purchase Augur rep, the easy way!
- 02/08/16: MyEtherWallet Chrome Extension: The Beta has Arrived
- 03/03/16: We’ve heard you loud and clear so tonight…we've launch offline / advanced transactions for MyEtherWallet.com
- 03/05/16: [Small Announcement] We updated the "Generate Wallet" Page & "Help" Page on MyEtherWallet.com to be more noob-friendly. Hit us with your feedback, please.
- 04/18/16: MyEtherWallet.com v2.0 (aka Mewtwo) has arrived!
- 04/28/16: Embeddable MyEtherWallet: Super Simple Wallet Generation w/ ability to get the address generated
- 04/30/16: How to participate in “The DAO” creation via MyEtherWallet (yes...right NOW!)
- 05/30/16: MyEtherWallet Update: Send DAO Tokens, Vote on Proposals, and the Chrome Extension finally gets updated!!
- 06/07/16: ⚠ BEWARE: MYETHERWALLET >>.INFO<< IS A PHISHING SCAM AND WILL TAKE ALL YOUR FUNDS. myEtherWallet is MyEtherWallet.com
- 07/28/16: MyEtherWallet now Supports Sending Any Ethereum Token (ERC-20) — also learn about our future plans
- 07/28/16: MyEtherWallet, Preventing Replays, and Ethereum Classic (ETC)
- 08/14/16: ⚠ Malicious Phisher is running Google Ads for MyEtherWallet.com ⚠ It does NOT go to MyEtherWallet.com. Always check the URL before accessing or creating a new wallet! Use your bookmarks bar!
- 08/22/16: Help us translate MyEtherWallet.com into ALL THE LANGUAGES!
- 11/21/16: Massive MyEtherWallet.com Update: Better URIs, The Hardfork, and looking back at the Golem Crowdfund.
- 1/2/17: Announcing MyEtherWallet v3.4: The Node Switcher
- 1/9/17: Announcing MyEtherWallet v3.4.3: Interacting with Contracts
- 2/3/17: MyEtherWallet.com v3.4.7: You can use your TREZOR on MEW. Thanks to all who made this a reality 🤗
- 2/16/17: MyEtherWallet v3.5.0: Swap ETH <-> BTC <-> REP via Bity, directly from MEW! (also: Parity backup phrase support + add'l contract features + our roadmap)
- 4/9/17: Ethereum vanity address generator
- 4/30/17: MEW v3.6.6: Enables you to access any path for your Mnemonic, Ledger & TREZOR. (ATTN: folks who have ETH / ETC / Tokens stuck in a different path)
- 5/7/17: ENS disguise bid issue on MyEtherWallet
-
- 8/15/17: MyEtherWallet needs motivated devs!
- 10/28/17: MyEtherWallet - New Contract Interaction Tools