Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New documentations #1885 #2409

Merged
merged 24 commits into from
Feb 27, 2024
Merged
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,8 @@ As a small team on a tiny budget we are working hard to make Specter better ever

### Using the Specter Desktop app
The easiest way to run Specter Desktop is by installing the Specter Desktop app, which you can find on the [GitHub release page](https://github.com/cryptoadvance/specter-desktop/releases).
With this method, all you need to do is just download the right file for your operating system and install it like a normal desktop app (Debian buster is only [partially supported](https://github.com/cryptoadvance/specter-desktop/issues/769))
With this method, all you need to do is just download the right file for your operating system and install it like a normal desktop app (Debian buster is only [partially supported](https://github.com/cryptoadvance/specter-desktop/issues/769)).
But there are a bunch of other option which you can read up in the [installation guide](docs/install_guide.md).

### Installing Specter from Pip
* Specter requires Python version 3.9 to 3.10.
Expand Down
147 changes: 147 additions & 0 deletions docs/DeviceCreationGuide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
# Device Creation Guide for Specter Hardware Wallets

## Introduction

Welcome to the Device Creation Guide for Specter Hardware Wallets. In this comprehensive guide, we'll walk you through the process of setting up hardware wallets within the Specter environment. Our focus is on ensuring the security of your digital assets while using various types of hardware wallets. We'll also delve into the crucial concept of derivation paths, which is essential for generating multiple keys from a single seed. Understanding these paths is key to managing and securing your cryptocurrencies effectively.

## Types of Hardware Wallets

### SD-Card Wallets

- **Features:** SD-Card hardware wallets offer unique features that prioritize both security and portability. We'll explore these features in detail to help you understand their advantages.
- **User background:** Alice, a traveling consultant, requires a secure yet portable solution to manage her digital assets. She often moves between locations and needs a reliable way to carry her cryptocurrency wallet without internet connectivity risks.
- **Use Case:** Alice opts for an SD-Card hardware wallet. Its small size and portability make it an ideal choice for her travels. She can easily carry it in her purse or securely store it in a safe. The SD-Card wallet allows her to access her digital assets on the go, without the need for an internet connection, reducing the risk of online threats. Moreover, she uses the SD-Card as a secure backup, storing a duplicate in a safe location.

j0sh21 marked this conversation as resolved.
Show resolved Hide resolved
### QR Code Wallets

- **Functionality:** QR code wallets operate differently, providing enhanced security through minimal direct connections with other devices. Learn how they work and why this matters.
- **User background:** Bob, a frequent user of cryptocurrency for transactions, often finds himself in public places like coffee shops or conferences. He is concerned about the security risks associated with connecting his wallet to public Wi-Fi or potentially compromised devices.
- **Use Case:** Bob uses a QR Code wallet, which provides enhanced security through minimal direct connections. When making transactions, he simply scans the QR code displayed by his wallet. This method eliminates the need to connect to potentially insecure networks or devices, significantly reducing the risk of digital asset theft. The QR Code wallet’s ability to operate with minimal connectivity makes it an excellent choice for secure, hassle-free transactions in public settings.

### USB Wallets

- **Characteristics:** USB wallets come with distinct features, including direct connectivity and user-friendly interfaces. Get a deeper understanding of what makes them stand out.
- **Scenarios:** Find out when and where USB wallets are your best choice. We'll showcase their versatility and compatibility with a wide range of devices.
- **User background:** Carol, a small business owner, accepts cryptocurrencies in her store. She needs a wallet that is both easy to use and compatible with various devices since she regularly deals with different types of transactions.
- **Use Case:** Carol chooses a USB wallet for its user-friendly interface and direct connectivity. The USB wallet's plug-and-play nature makes it simple to connect to her store's point-of-sale system or her personal computer. Its compatibility with various devices allows her to efficiently manage transactions without the need for specialized hardware. The USB wallet's intuitive interface makes it easy for Carol to navigate, making it an ideal choice for her everyday business transactions.

## Step-by-Step Guide for Device Creation in Specter

- **Detailed Instructions:** A step-by-step guide can be found [here](https://docs.specter.solutions/desktop/#add-a-new-device). Keep in mind to connect to the BTC network first [instructions here](https://docs.specter.solutions/desktop/#select-how-to-connect-to-bitcoin-network).
k9ert marked this conversation as resolved.
Show resolved Hide resolved

## Understanding Derivation Paths

### Concept Explanation

- Understanding derivation paths is fundamental to managing the security of your digital assets. In this section, we'll provide you with an overview of what derivation paths are and why they matter. We'll also introduce key paths like BIP 44 (for multi-account hierarchy), BIP 49 (for SegWit compatibility), and BIP 84 (for native SegWit addresses). Each of these paths caters to different Bitcoin address types and plays a crucial role in organizing and securing your cryptocurrencies, especially within hardware wallets.
k9ert marked this conversation as resolved.
Show resolved Hide resolved

### Challenges and Best Practices

1. **Complexity:**
-Derivation paths, especially when considering various Bitcoin address types like BIP 44, BIP 49, and BIP 84, can be intricate. The challenge lies in comprehending the nuances of each path and selecting the one that aligns with your specific use case. Best practice here is to educate yourself thoroughly and seek expert advice if needed.
j0sh21 marked this conversation as resolved.
Show resolved Hide resolved

3. **Compatibility:**
-Using the wrong derivation path can lead to compatibility issues, making it challenging to access your funds. It's crucial to ensure that the path you choose is supported by your wallet software and the services you intend to use. Staying informed about updates and changes in the cryptocurrency ecosystem is essential to avoid compatibility pitfalls.

- Ensure that the path you choose is supported by your wallet software and the services you intend to use.
k9ert marked this conversation as resolved.
Show resolved Hide resolved

5. **Security Risks:**
-Incorrectly managed derivation paths can introduce security risks. For instance, sharing your master public key (xpub) derived from an account with a third party may expose all the addresses generated from it. Best practice involves limiting the exposure of sensitive information and adopting a "need-to-know" approach when sharing keys or information related to derivation paths.
- Limit the exposure of sensitive information and adopt a "need-to-know" approach when sharing keys or information related to derivation paths.

7. **Backup Strategies:**
-Derivation paths affect how you back up your wallet. Implementing a robust backup strategy that includes the derivation path information is essential. Best practice is to maintain secure backups and periodically test your recovery process to ensure you can regain access to your digital assets if the need arises.
- Implementing a robust backup strategy that includes the derivation path information is essential.

9. **Keeping Pace with Changes:**
- The cryptocurrency landscape is dynamic, with new developments and standards emerging regularly. Staying informed about changes to derivation paths, wallet software updates, and security best practices is an ongoing challenge. Best practice here is to remain actively engaged with the cryptocurrency community, subscribe to updates from wallet providers, and continuously educate yourself.
j0sh21 marked this conversation as resolved.
Show resolved Hide resolved

### Example 1: BIP 44 (Hierarchical Deterministic Wallets)
#### Scenario: Multiple Account Management

##### Context
Emily, a crypto enthusiast, holds various types of cryptocurrencies and wants to organize them efficiently. She wishes to have separate accounts for her Bitcoin, Ethereum, and Litecoin holdings.

##### Use Case
Emily uses a wallet that supports BIP 44 standard. BIP 44 allows for multi-account hierarchy under one master seed. This means she can generate different accounts for each cryptocurrency type while maintaining them under one master seed. Her derivation paths might look like:
- Bitcoin: `m/44'/0'/0'`
- Ethereum: `m/44'/60'/0'`
- Litecoin: `m/44'/2'/0'`
j0sh21 marked this conversation as resolved.
Show resolved Hide resolved

##### Advantage
This method gives Emily a structured way to manage different cryptocurrencies while keeping them secure and separate. She can also easily back up her wallet using the master seed.

### Example 2: BIP 49 (SegWit Compatibility in P2SH)
#### Scenario: Enhancing Transaction Efficiency and Lowering Fees

##### Context
John, a small business owner, frequently receives and sends Bitcoin payments. He is looking for ways to reduce transaction fees and enhance the efficiency of transactions.
k9ert marked this conversation as resolved.
Show resolved Hide resolved

##### Use Case
John's wallet supports BIP 49, which is designed for SegWit compatibility in a Pay to Script Hash (P2SH) format. This means his wallet generates addresses that start with '3'. His derivation path looks like: `m/49'/0'/0'`.

##### Advantage
By using BIP 49, John benefits from lower transaction fees compared to traditional addresses and improved transaction speed due to SegWit's efficiency in block space usage. This is particularly beneficial for a business with frequent transactions.

### Example 3: BIP 84 (Native SegWit Bech32 Addresses)
#### Scenario: Maximizing Efficiency and Future-Proofing
j0sh21 marked this conversation as resolved.
Show resolved Hide resolved

##### Context
Lisa is a tech-savvy investor who keeps up with the latest developments in cryptocurrency technology. She wants to use the most advanced and efficient method for managing her Bitcoin transactions.

##### Use Case
Lisa opts for a wallet that implements BIP 84, which enables the creation of native SegWit addresses that start with 'bc1'. These are Bech32 addresses, which offer benefits such as more efficient block weight usage and better error detection. Her derivation path is: `m/84'/0'/0'`.

##### Advantage
Using BIP 84, Lisa experiences lower fees and faster transactions. She is also future-proofing her wallet as the industry moves towards broader adoption of SegWit.

### Conclusion
In each of these scenarios, the use of different derivation paths (BIP 44, BIP 49, and BIP 84) reflects a specific need and functionality in managing cryptocurrencies:
- **BIP 44** is ideal for users like Emily, who require a structured organization for multiple types of cryptocurrencies. It provides a clear hierarchical structure for different accounts under a single master seed.
- **BIP 49** benefits users like John, who seek efficiency and reduced costs in their transactions. The SegWit compatibility in P2SH format helps in lowering transaction fees and improving confirmation speeds.
- **BIP 84** is perfect for tech-savvy users like Lisa, who want to leverage the latest advancements in cryptocurrency technology for optimal efficiency and future compatibility.

For those seeking a deeper understanding of derivation paths, we recommend exploring "[Learn Me a Bitcoin](https://learnmeabitcoin.com/technical/derivation-paths)". This website provides in-depth information on the topic, and you can integrate this knowledge into our guide for a more comprehensive grasp of derivation paths.

## Troubleshooting

### Common Issues

#### Check the USB Connection
- **Step 1:** Unplug the wallet from the computer.
- **Step 2:** Inspect the USB cable for any visible damage. If damaged, replace the cable.
- **Step 3:** Reconnect the wallet to the computer using a different USB port. Sometimes ports can malfunction or have poor connectivity.

#### Restart the Wallet and Computer
- **Step 1:** Safely eject the hardware wallet from your computer.
- **Step 2:** Restart the hardware wallet. If it has a power button, turn it off and then on again. If not, disconnect and reconnect it.
- **Step 3:** Restart your computer. This can resolve issues caused by temporary software glitches.

#### Update Wallet Firmware and Software
- **Step 1:** Check if your hardware wallet firmware is up to date. Refer to the wallet’s official website for the latest firmware version.
- **Step 2:** Update the wallet application on your computer. Ensure you're using the latest version.
- **Step 3:** After updating, reconnect the wallet and check if it is recognized.

#### Check Device Manager (Windows) or System Report (Mac)
**For Windows:**
- **Step 1:** Open 'Device Manager'.
- **Step 2:** Look under ‘Universal Serial Bus controllers’. Check if the wallet is listed or if there are any devices with a yellow exclamation mark.
- **Step 3:** If the wallet is listed with an error, right-click on it and select ‘Update driver’.

**For Mac:**
- **Step 1:** Click on the Apple logo and select ‘About This Mac’.
- **Step 2:** Go to ‘System Report’ and select ‘USB’.
- **Step 3:** Check if the wallet is listed under USB Device Tree.

#### Try a Different Computer
- **Step 1:** Connect the wallet to a different computer. This can help determine if the issue is with the original computer’s hardware or software.

#### Contact Customer Support or our Telegram Group
If none of the above steps work, the problem might be more complex or specific to the wallet. In this case, contact the customer support of the hardware wallet for further assistance.

### Preventive Measures
- Regularly update the wallet's firmware and the computer’s software to avoid compatibility issues.
- Use high-quality USB cables and ports to ensure a stable connection.
- Avoid exposing the hardware wallet to physical damage or extreme temperatures.

By the end of this guide, you'll be well-equipped to create and manage hardware wallets within the Specter environment and understand derivation paths. Let's get started on your journey to safeguarding your bitcoin journey.
66 changes: 66 additions & 0 deletions docs/WalletCreationGuide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Wallet Creation Guide

## Introduction

Specter wallets are designed to provide a user-friendly interface around Bitcoin Core, focusing on multisignature setups with airgapped signing devices, though they also support single-signature wallets. It's developed to make the interaction with Bitcoin Core more convenient for the users.

## Types of Wallets

### Single-Sig Wallets
- These involve one signing device or hardware wallet generating one seed.
- They are simpler and require only one secure location for seed backup.
- However, they are less secure against phishing attacks as one compromised seed can lead to lost Bitcoin.

### Multi-Sig Wallets
- More secure than single-sig, multisig wallets require two or more signing devices to authorize transactions.
k9ert marked this conversation as resolved.
Show resolved Hide resolved
- They offer better security, as one compromised seed doesn't result in immediate loss of funds.
- However, they are more complex to set up and require multiple secure locations for seed backups.

#### Single-Sig Wallets Examples:

- A user with a **Ledger Nano S** hardware wallet creating a single-signature Specter wallet for added convenience in managing their Bitcoin holdings.
- Someone who wants a simple wallet setup opting for a single-signature wallet with their **Electrum** software wallet, as they trust their computer's security.

#### Multi-Sig Wallets Examples:

- A group of friends setting up a multi-signature Specter wallet for a shared investment fund, where multiple devices are required to authorize transactions, enhancing security.
- A cryptocurrency exchange using a multi-signature setup with several hardware wallets to protect customer funds against a single point of failure.


k9ert marked this conversation as resolved.
Show resolved Hide resolved
## Step-by-Step Guide for Single-Sig Wallets

1. **Setup and Installation**
- Download and install the Specter Desktop app from the official GitHub release page. [installation guide](docs/install_guide.md).
- Ensure your system meets the necessary requirements (like Python version, Bitcoin Core version).

2. **Running the App**
- Start the Specter Desktop app.
- It should automatically detect Bitcoin Core if it's using a default data folder.
- If not, set rpcuser and rpcpassword in the Bitcoin Core's bitcoin.conf file or directly in the Specter app settings. [Node Connecting Guide](docs/connect-your-node.md).
k9ert marked this conversation as resolved.
Show resolved Hide resolved

3. **Creating a Wallet**
- In Specter, navigate to the wallet creation section.
- Before proceeding, make sure to import your hardware or software wallet device (e.g., Ledger, BitBox, Electrum, ...) into Specter Desktop. Specter Desktop is not a hot wallet and works best in conjunction with hardware wallets for added security. See [installation guide](docs/DeviceCreationGuide.md) for more information about this important topic.
- Choose the option for a single-signature wallet.
- Follow the prompts to generate a new seed. This seed is crucial for accessing your funds and should be backed up securely.
k9ert marked this conversation as resolved.
Show resolved Hide resolved
- Configure wallet settings as per your preference.

5. **Backing Up the Wallet**
- After creating the wallet, make sure to back up the seed securely.
- Specter recommends storing seeds on steel for long-term durability against elements like fire and water.
k9ert marked this conversation as resolved.
Show resolved Hide resolved
- Storing seeds on steel plates is more crucial for Single-Signature (SingleSig) wallets because access to the seed alone grants full control over the funds. In Multi-Signature (MultiSig) wallets, the requirement for multiple keys to authorize transactions reduces the risk of a single seed compromise leading to complete loss of funds. However, it's still essential to securely store all seeds in a MultiSig wallet to ensure key availability in emergencies, especially for significant amounts of cryptocurrency.

6. **Testing the Wallet**
- It's advisable to test the wallet by sending a small amount of Bitcoin to it and then trying to access these funds using the wallet.

## Backup PDFs

- Specter provides backup PDFs that contain crucial information like (master) public keys and fingerprints.
- These backups do not include the seed itself.
- Keep a copy of the backup PDFs with every seed backup, but ensure they are kept private as they allow anyone to recreate the wallet and see the balance.

## Notes

- Always ensure the safety of your seed phrases and backup information.
- Regularly update the Specter software and your Bitcoin Core node for security and functionality improvements.
- For multisig wallet creation, a separate, more detailed guide is recommended due to its complexity.
Loading
Loading