# How to Create Ethereum 2.0 Keys
## Download the official ETH2 command line interface app
1. Navigate to the release section of the [ethereum/eth2.0-deposit-cli](https://github.com/ethereum/eth2.0-deposit-cli/releases/) GitHub repository.
1. From the list, find the latest version, in this case v1.1.0
1. Expand the “Assets” section and Download the correct file for your operating system.
1. Extract the archive in any folder, but remember where you saved it.
1. Open a Terminal if your are on Mac/Linux or "Command Prompt" if you are on Windows
a. Mac: Press CMD + Space, and type "Terminal". Press enter to run it
b. Linux: Search for "Terminal" in the App Drawer of your distribution.
c. Windows: Press "Start" or the "Windows Button", and search for "Command Prompt"
1. Now we have to run the "eth2deposit-cli" inside the terminal, specifying whether you want to restore your wallet from a mnemnoic or generate a new one. To do so, inside the terminal window type the full path of the extracted deposit file location followed by a space and `new-mnemonic` in case you want a new wallet or `existing-mnemonic` in case you want to restore, like in the example below:
**Tip:** *You can drag and drop your "deposit" file inside the Terminal window to quickly type the full path.*
### Existing mnemonic:
### New mnemonic:
7. If you are restoring from a mnemonic the deposit-cli tool will ask for your 24 words, insert it. Otherwise skip to next step.
7. The program will now ask for some configuration. Enter the following:
a. Number of validators: Input **1** (this value doesn't matter when using the stakefish validating service)
b. Language: Your preferred language
c. Network/chain name: If you are using the testnet: **pyrmont**; otherwise: **mainnet**
1. **VERY IMPORTANT:** Write down your mnemonic in a safe place offline.
This key controls your staking deposit funds. Keeping this key safe is solely your responsibility. You will need this key to withdraw your staking deposit when withdrawals are enabled on Ethereum 2.0.
1. Confirm the mnemonic by re-typing it when requested. If you fail to type it correctly, you will be asked to do it over and over again.
1. When completed, you will see this screen. Open the output folder. !(https://i.imgur.com/AlBoJKv.png)
1. In the output folder, you will find two files: `deposit_data-*.json` and `keystore-*.json`.
* `deposit_data-*.json` contains your public keys, which are necessary for stakefish to properly set up your validator(s).
* `keystore-*.json` contains contains a password protected private key that is **NOT** needed for using stakefish validating service.
1. Remember to store your mnemonic in a safe place. That will be the only way to access your funds when withdrawal are enabled. The keystore you see doesn't contain the private withdrawal credential key. stakefish cannot recover your funds if you lose these keys.
1. Return to the [stakefish website](http://stake.fish/) and upload `deposit_data-*.json` when prompted.
### The developer cannot be verified (macOS)
If you get an error like this:
1. Make sure you downloaded the file from the correct website: https://github.com/ethereum/eth2.0-deposit-cli/releases/.
1. If the file is correct, authorize it in `System Preferences -> Security & Privacy`.
1. If you don't see the “Allow Anyway” button, open the deposit file one more time and try again.