# delta203/bitcoin-stealer architecture

> Architecture diagram of the GitHub repository delta203/bitcoin-stealer, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/delta203/bitcoin-stealer
- Repository: https://github.com/delta203/bitcoin-stealer

## Overview

Bitcoin-Stealer repeatedly generates Bitcoin keys and addresses, queries a configured scanner API for each address, parses the returned wallet data, and reports and saves key details when the balance check is nonzero. The sampled source shows the runtime entry point, configuration handling, scan loop, and output behavior; the balance check and reporting both live in Application.java.

Main entry points: [`src/main/java/de/bitcoinstealer/delta203/Application.java`](https://github.com/delta203/bitcoin-stealer/blob/main/src/main/java/de/bitcoinstealer/delta203/Application.java) (Scan loop), [`src/main/java/de/bitcoinstealer/delta203/utils/WalletHandler.java`](https://github.com/delta203/bitcoin-stealer/blob/main/src/main/java/de/bitcoinstealer/delta203/utils/WalletHandler.java) (Wallet API lookup), [`src/main/java/de/bitcoinstealer/delta203/Main.java`](https://github.com/delta203/bitcoin-stealer/blob/main/src/main/java/de/bitcoinstealer/delta203/Main.java) (Main entry), [`src/main/java/de/bitcoinstealer/delta203/files/ConfigManager.java`](https://github.com/delta203/bitcoin-stealer/blob/main/src/main/java/de/bitcoinstealer/delta203/files/ConfigManager.java) (Config manager)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Scan runtime"]
  node_main["Main entry<br/>[Main.java]"]
  node_app["Scan loop<br/>[Application.java]"]
  node_balance["Balance check<br/>[Application.java]"]
  node_report["Found-wallet output<br/>[Application.java]"]
  node_found_file["found-wallets.txt"]
end

subgraph group_wallet["Wallet lookup"]
  node_keygen["Key generation<br/>[WalletHandler.java]"]
  node_address["Address derivation<br/>[WalletHandler.java]"]
  node_lookup["Wallet API lookup<br/>[WalletHandler.java]"]
  node_json["JSON parsing<br/>[WalletHandler.java]"]
end

subgraph group_config["Configuration"]
  node_config_manager["Config manager<br/>[ConfigManager.java]"]
  node_config_file["config.txt<br/>[config.txt]"]
end

node_user(("Launcher"))
node_scanner["Bitcoin scanner API"]
node_console["Console"]

node_user -->|"launches"| node_main
node_main -->|"runs"| node_app
node_app -->|"creates and reads"| node_config_manager
node_config_manager -->|"reads or creates"| node_config_file
node_app -->|"generates key"| node_keygen
node_app -->|"derives address"| node_address
node_app -->|"requests wallet data"| node_lookup
node_lookup -->|"sends address request"| node_scanner
node_scanner -->|"returns response"| node_lookup
node_lookup -->|"returns content"| node_app
node_app -->|"parses content"| node_json
node_app -->|"checks statistics"| node_balance
node_balance -->|"nonzero balance"| node_report
node_report -->|"appends key details"| node_found_file
node_report -->|"prints details"| node_console

click node_main "https://github.com/delta203/bitcoin-stealer/blob/main/src/main/java/de/bitcoinstealer/delta203/Main.java"
click node_app "https://github.com/delta203/bitcoin-stealer/blob/main/src/main/java/de/bitcoinstealer/delta203/Application.java"
click node_balance "https://github.com/delta203/bitcoin-stealer/blob/main/src/main/java/de/bitcoinstealer/delta203/Application.java"
click node_report "https://github.com/delta203/bitcoin-stealer/blob/main/src/main/java/de/bitcoinstealer/delta203/Application.java"
click node_config_manager "https://github.com/delta203/bitcoin-stealer/blob/main/src/main/java/de/bitcoinstealer/delta203/files/ConfigManager.java"
click node_config_file "https://github.com/delta203/bitcoin-stealer/blob/main/config.txt"
click node_keygen "https://github.com/delta203/bitcoin-stealer/blob/main/src/main/java/de/bitcoinstealer/delta203/utils/WalletHandler.java"
click node_address "https://github.com/delta203/bitcoin-stealer/blob/main/src/main/java/de/bitcoinstealer/delta203/utils/WalletHandler.java"
click node_lookup "https://github.com/delta203/bitcoin-stealer/blob/main/src/main/java/de/bitcoinstealer/delta203/utils/WalletHandler.java"
click node_json "https://github.com/delta203/bitcoin-stealer/blob/main/src/main/java/de/bitcoinstealer/delta203/utils/WalletHandler.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_app,node_balance,node_report,node_found_file toneBlue
class node_keygen,node_address,node_lookup,node_json toneAmber
class node_config_manager,node_config_file,node_scanner toneMint
class node_user,node_console toneIndigo
```

## Components

### Scan runtime

- [Main entry](https://github.com/delta203/bitcoin-stealer/blob/main/src/main/java/de/bitcoinstealer/delta203/Main.java): `src/main/java/de/bitcoinstealer/delta203/Main.java`
- [Scan loop](https://github.com/delta203/bitcoin-stealer/blob/main/src/main/java/de/bitcoinstealer/delta203/Application.java): `src/main/java/de/bitcoinstealer/delta203/Application.java`
- [Balance check](https://github.com/delta203/bitcoin-stealer/blob/main/src/main/java/de/bitcoinstealer/delta203/Application.java): `src/main/java/de/bitcoinstealer/delta203/Application.java`
- [Found-wallet output](https://github.com/delta203/bitcoin-stealer/blob/main/src/main/java/de/bitcoinstealer/delta203/Application.java): `src/main/java/de/bitcoinstealer/delta203/Application.java`
- **found-wallets.txt**

### Wallet lookup

- [Key generation](https://github.com/delta203/bitcoin-stealer/blob/main/src/main/java/de/bitcoinstealer/delta203/utils/WalletHandler.java): `src/main/java/de/bitcoinstealer/delta203/utils/WalletHandler.java`
- [Address derivation](https://github.com/delta203/bitcoin-stealer/blob/main/src/main/java/de/bitcoinstealer/delta203/utils/WalletHandler.java): `src/main/java/de/bitcoinstealer/delta203/utils/WalletHandler.java`
- [Wallet API lookup](https://github.com/delta203/bitcoin-stealer/blob/main/src/main/java/de/bitcoinstealer/delta203/utils/WalletHandler.java): `src/main/java/de/bitcoinstealer/delta203/utils/WalletHandler.java`
- [JSON parsing](https://github.com/delta203/bitcoin-stealer/blob/main/src/main/java/de/bitcoinstealer/delta203/utils/WalletHandler.java): `src/main/java/de/bitcoinstealer/delta203/utils/WalletHandler.java`

### Configuration

- [Config manager](https://github.com/delta203/bitcoin-stealer/blob/main/src/main/java/de/bitcoinstealer/delta203/files/ConfigManager.java): `src/main/java/de/bitcoinstealer/delta203/files/ConfigManager.java`
- [config.txt](https://github.com/delta203/bitcoin-stealer/blob/main/config.txt): `config.txt`

### Other components

- **Launcher**
- **Bitcoin scanner API**
- **Console**

## Connections

- Launcher → Main entry: launches
- Main entry → Scan loop: runs
- Scan loop → Config manager: creates and reads
- Config manager → config.txt: reads or creates
- Scan loop → Key generation: generates key
- Scan loop → Address derivation: derives address
- Scan loop → Wallet API lookup: requests wallet data
- Wallet API lookup → Bitcoin scanner API: sends address request
- Bitcoin scanner API → Wallet API lookup: returns response
- Wallet API lookup → Scan loop: returns content
- Scan loop → JSON parsing: parses content
- Scan loop → Balance check: checks statistics
- Balance check → Found-wallet output: nonzero balance
- Found-wallet output → found-wallets.txt: appends key details
- Found-wallet output → Console: prints details
