# Create Development Wallet

Wallets are repositories of public-private key pairs. Private keys are needed to sign operations performed on the blockchain. Wallets are accessed using `cleos` or `clivex`.

### Step 1: Create a Wallet

The first step is to create a wallet. Use `cleos wallet create` to create a new "default" wallet using the option `--to-console` for simplicity. If using cleos in production, it's wise to instead use -`-file` so your wallet password is not in your bash history. For development purposes and because these are development and not production keys `--to-console` poses no security threat.

```bash
cleos wallet create --to-console
```

`cleos` will return a password, save this password somewhere as you will likely need it later in the tutorial.

```
Creating wallet: default
Save password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
"PW5Kewn9L76X8Fpd....................t42S9XCw2"
```

{% hint style="info" %}

#### ABOUT WALLETS

A common misconception in cryptocurrency regarding wallets is that they store tokens. However, in reality, a wallet is used to store private keys in an encrypted file to sign transactions. Wallets do not serve as a storage medium for tokens.
{% endhint %}

A user builds a transaction object, usually through an interface, sends that object to the wallet to be signed, the wallet then returns that transaction object with a signature which is then broadcast to the network. When/if the network confirms that the transaction is valid, it is included into a block on the blockchain.

### Step 2: Open the Wallet

Wallets are closed by default when starting a keosd instance, to begin, run the following.

```bash
cleos wallet open
```

Run the following to return a list of wallets.

```bash
cleos wallet list
```

and it will return.

```bash
Wallets:
[
  "default"
]
```

### Step 3: Unlock it

The keosd wallet(s) have been opened, but is still locked. Moments ago you were provided a password, you're going to need that now.

```bash
cleos wallet unlock
```

You will be prompted for your password, paste it and press enter.

Now run the following command

```bash
cleos wallet list
```

It should now return

```bash
Wallets:
[
  "default *"
]
```

Pay special attention to the asterisk (\*). This means that the wallet is currently unlocked.

### &#x20;Step 4: Import keys into your wallet

Generate a private key, cleos has a helper function for this, just run the following.

```bash
cleos wallet create_key
```

It will return something like below.

```bash
Created new private key with a public key of:
"VEX8PEJ5FM42xLpHK...X6PymQu97KrGDJQY5Y"
```

### Step 5: Import the Development Key

Every new VEXANIUM chain comes with a development key, and this key is the same. Load this key to sign transactions on behalf of the system user

```bash
cleos wallet import
```

You'll be prompted for a private key, enter the development key provided below

```bash
5JjMtcY2j264vChLogZk3Y7sySSC4z3hWjBTvwLhJoqXv6YP4X3
```

{% hint style="info" %}
**IMPORTANT**

Never use the development key for a production account! Doing so will most certainly result in the loss of access to your account, this private key is publicly known.
{% endhint %}

Wonderful, you now have a default wallet unlocked and loaded with a key, and are ready to proceed.

#### What's Next?

* Start Your Node: Steps to start keosd and nodeos.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.vexanium.com/getting-started/development-environment/create-development-wallet.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
