# Creating or Importing wallets

To start managing your SOL and SPL tokens, you need your address on blockchain. To do it, you need to do an integration with it by create a new wallet, or import already existing one (Terminal supports only Base58 private keys formula).

<figure><img src="/files/7NRbxT6n6nlnGEyeTp0S" alt=""><figcaption></figcaption></figure>

**Create a new wallet**

Creation of new address on Solana's blockchain is the fastest way to add another wallet to your list, it is a few-clicks operation (don't miss "Encryption" section).

<figure><img src="/files/G428VRoTzqXZ9MlAFHdZ" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/g8vVsbOlnlgavMyw2Xo8" alt=""><figcaption></figcaption></figure>

```python
def create_new_wallet(self):
    public_key, private_key, wallet_data, filename = create_wallet()
    if public_key:
        passphrase, dont_encrypt = self.prompt_for_passphrase("Encrypt New Wallet", allow_no_encrypt=True)
        if dont_encrypt:
            filepath = filename
            with open(filepath, 'w') as wallet_file:
                wallet_file.write(wallet_data)
            self.show_message(f"Wallet saved to {filepath}\nPublic Key: {public_key}", "Wallet Created")
        else:
            if not passphrase:
                self.show_message("Passphrase is required to encrypt the wallet.", "Error")
                return
            encrypted_data = encrypt_data(wallet_data.encode('utf-8'), passphrase)
            encrypted_filepath = filename.replace('.txt', '.dat')
            with open(encrypted_filepath, 'wb') as wallet_file:
                wallet_file.write(encrypted_data)
            self.show_message(f"Encrypted wallet saved to {encrypted_filepath}\nPublic Key: {public_key}", "Wallet Created")
        self.navigate_to(self.wallet_menu)
    else:
        self.show_message("Failed to create wallet.", "Error")
```

\
**Import already existing wallet**

If a user prefers to import wallet, which has been created before, he/she has such possibility. The only requierd action to does is gain a private key for Solana from external wallet, like Phantom, and paste it.

<figure><img src="/files/esOZPlI2nEFydBg2ixN1" alt=""><figcaption></figcaption></figure>

```python
def import_wallet_action(self):
    private_key_base58 = self.private_key_entry.get()
    public_key, private_key_base58, wallet_data, filename = import_wallet(private_key_base58)
    
    if public_key:
        passphrase, dont_encrypt = self.prompt_for_passphrase("Encrypt Imported Wallet", allow_no_encrypt=True)
        
        if dont_encrypt:
            filepath = filename
            with open(filepath, 'w') as wallet_file:
                wallet_file.write(wallet_data)
            self.show_message(f"Wallet saved to {filepath}\nPublic Key: {public_key}", "Wallet Imported")
        else:
            if not passphrase:
                self.show_message("Passphrase is required to encrypt the wallet.", "Error")
                return
            encrypted_data = encrypt_data(wallet_data.encode('utf-8'), passphrase)
            encrypted_filename = filename.replace('.txt', '.dat')
            with open(encrypted_filename, 'wb') as wallet_file:
                wallet_file.write(encrypted_data)
            self.show_message(f"Encrypted wallet saved to {encrypted_filename}\nPublic Key: {public_key}", "Wallet Imported")
        
        self.navigate_to(self.wallet_menu)
    else:
        self.show_message("Invalid private key format.", "Error")
```

{% hint style="info" %}
The Terminal in beta version supports only Base58 form, for now.
{% endhint %}


---

# 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://low-caps-hub.gitbook.io/lowcapshubterminal/wallet-section/creating-or-importing-wallets.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.
