id = "electrum" name = "Electrum" homepage = "https://electrum.org" description = "Lightweight Bitcoin client." # The project's own icon, the apple-touch-icon on its homepage. icon = "https://electrum.org/apple-touch-icon.png" executables = ["electrum"] [dotfiles] # https://electrum.readthedocs.io/en/latest/faq.html ("Where is my wallet file # located?" / "Where is the datadir?"): the data directory is ~/.electrum on # both Linux and macOS — Electrum does not use ~/Library/Application Support — # and %APPDATA%\Electrum on Windows. It holds "wallet files, config settings, # logs, blockchain headers, etc.", with wallets in a wallets/ subfolder. # # electrum/simple_config.py: `path = os.path.join(self.path, "config")` and # `json.loads(data)` — the settings file is named `config` with no extension # and is JSON. Only that file is named here; the headers, logs and forks/ # beside it are downloaded chain state, not configuration. paths = [ "~/.electrum/config", "%APPDATA%/Electrum/config", ] exclude = [] # The wallet files. Electrum's FAQ: "Your wallet can be entirely recovered # from its seed", and the seed and private keys live inside the wallet file # (encrypted with a password the user may or may not have set). A wallet file # is a key, not a setting, so it never syncs as plaintext content. secret = [ "~/.electrum/wallets/", "%APPDATA%/Electrum/wallets/", ] # The JSON-RPC credentials Electrum writes into the config file: # simple_config.py declares RPC_USERNAME = ConfigVar('rpcuser') and # RPC_PASSWORD = ConfigVar('rpcpassword'). Both spellings of the file, or the # password is only lifted out on Unix and syncs in the clear from Windows. # `config` has no extension, so format has to be stated. [[dotfiles.secret_paths]] file = ["~/.electrum/config", "%APPDATA%/Electrum/config"] format = "json" match = { key_path = ["rpcuser", "rpcpassword"] } # All four keys in the two rules below are absolute paths on one machine. # Currency, fee policy, language and GUI preferences are deliberately not # here — those are what a user wants carried over. # # `backup_dir` is where wallet backups are written and `io_dir` (ConfigVar # default os.path.expanduser('~')) is where the import/export dialogs start: # two directories the user picked in the GUI, and the first thing they would # want to see again when putting this machine back together — backup. [[dotfiles.machine_lines]] file = ["~/.electrum/config", "%APPDATA%/Electrum/config"] format = "json" match = { key_path = ["backup_dir", "io_dir"] } scope = "backup" # Split out of the rule above because these two are not the user's choice at # all: `recently_open` is the MRU list Electrum rewrites every time a wallet is # opened, and `rpcsockpath` is the daemon's socket, derived from the data # directory. Neither is worth keeping, so both stay local. [[dotfiles.machine_lines]] file = ["~/.electrum/config", "%APPDATA%/Electrum/config"] format = "json" match = { key_path = ["recently_open", "rpcsockpath"] }