{"id":13633605,"url":"https://github.com/HathorNetwork/hathor-wallet","last_synced_at":"2025-04-18T14:33:02.864Z","repository":{"id":38857386,"uuid":"179396485","full_name":"HathorNetwork/hathor-wallet","owner":"HathorNetwork","description":"Hathor Official Wallet for Desktop","archived":false,"fork":false,"pushed_at":"2024-11-04T18:33:46.000Z","size":6796,"stargazers_count":33,"open_issues_count":143,"forks_count":26,"subscribers_count":15,"default_branch":"master","last_synced_at":"2024-11-04T19:30:34.312Z","etag":null,"topics":["desktop-app","hathor","wallet"],"latest_commit_sha":null,"homepage":"https://hathor.network/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HathorNetwork.png","metadata":{"files":{"readme":"README.md","changelog":"changelogs/unreleased/chore-connect-bravo-testnet.yml","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-04-04T01:11:40.000Z","updated_at":"2024-11-04T18:27:52.000Z","dependencies_parsed_at":"2023-02-16T08:30:45.647Z","dependency_job_id":"40e101e4-b2c0-452c-b7a4-70d9535bbc62","html_url":"https://github.com/HathorNetwork/hathor-wallet","commit_stats":null,"previous_names":[],"tags_count":54,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HathorNetwork%2Fhathor-wallet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HathorNetwork%2Fhathor-wallet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HathorNetwork%2Fhathor-wallet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HathorNetwork%2Fhathor-wallet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HathorNetwork","download_url":"https://codeload.github.com/HathorNetwork/hathor-wallet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223782552,"owners_count":17201801,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["desktop-app","hathor","wallet"],"created_at":"2024-08-01T23:00:48.900Z","updated_at":"2025-04-18T14:33:02.852Z","avatar_url":"https://github.com/HathorNetwork.png","language":"JavaScript","funding_links":[],"categories":["Wallets"],"sub_categories":["Utils"],"readme":"# Hathor Wallet\n\nWelcome to Hathor Desktop Wallet. To view the source code of the project access [Github](https://github.com/HathorNetwork/hathor-wallet).\n\n## Architecture\n\nThe wallet is developed using Javascript with [React](https://reactjs.org/). We use [Electron](https://electronjs.org/) to generate native desktop apps from it.\n\n## Download\n\nYou can download the newest version of the wallet for each specific platform from the [Releases page](https://github.com/HathorNetwork/hathor-wallet/releases).\n\n## Screenshots\n\nThe basic view of the wallet.  Note that different types of tokens are made possible in the Hathor Network.  On the left hand side we see both a HTR tab and a MTK tab, for the Hathor token, and a different, ERC-20 like, token.\n![Wallet Home](https://drive.google.com/thumbnail?id=1pJ4JAxTXjMHW1Xuc4cCG0d0LKeVBGgM6\u0026sz=w3000-h2250)\n\nSending tokens.\n![Send Tokens](https://drive.google.com/thumbnail?id=1Lq6Q0j2J0989vfYzykVSpYjra3bLTI2u\u0026sz=w3000-h2250)\n\nThe wallet includes a block and transaction explorer.\n![Explorer](https://drive.google.com/thumbnail?id=1YdEfGB7L9E2tA4vGDTsGdGvoKw5bqdhT\u0026sz=w3000-h2250)\n\nA transaction is displayed.\n![Transaction Detail](https://drive.google.com/thumbnail?id=1N3IaiT0kBT1QkRq6xU_b_D66EZBVajiB\u0026sz=w3000-h2250)\n\n## For development\n\n### Prerequisites\n\n* Install node v22\n\n### To install dependencies\n\n```\nnpm install\n```\n\n### To Run\n\n```\nnpm start\n```\n\nIt will start running in the browser in http://localhost:3000\n\n\u003e **NOTE:** to use Hathor Wallet with Ledger, you need to run it in Electron.\n\n\u003e **NOTE:** use the electron wallet for a more complete experience.\n\n### Quick start to Electron\n\nRun the electron besides the react app. Open a new instance of the terminal and run the following command:\n\n```sh\nnpm run electron-dev\n```\n\nIf you get some error like this `error while loading shared libraries: libxshmfence.so.1: cannot open shared object file: No such file or directory` refer to the [throubleshooting](#troubleshooting) section.\n\nTo use the Chrome Dev Tools associated with Electron for debugging purposes, the unsafe mode may be enabled through CLI arguments:\n```sh\nnpm run electron-debug\n```\n\n### Debug mode on installed app\n\nTo run the app in debug mode on an installed app you need to pass the flags `--hathor-debug` and `--unsafe-mode` to the app.\nThe way to do this depends on your environment.\n\nOn Windows the app is installed in the `C:\\Users\\\u003cusername\u003e\\AppData\\Local\\Programs\\hathor-wallet` folder.\nYou will need to open a terminal (CMD, Powershell, etc.) and run the `Hathor Wallet.exe` executable with the flags above.\nOn CMD the command would be `\u0026 '.\\Hathor Wallet.exe' --unsafe-mode --hathor-debug` or `\u0026 'C:\\Users\\\u003cusername\u003e\\AppData\\Local\\Programs\\hathor-wallet\\Hathor Wallet.exe' --unsafe-mode --hathor-debug`.\n\nOn Linux the app is installed in a way that it is available as the command `hathor-wallet`, so we can simply run `hathor-wallet --unsafe-mode --hathor-debug` from the terminal.\n\nOn MacOS the app is usually installed in `/Applications` in a way that is possible to run the following command `open /Applications/Hathor\\ Wallet.app --args --hathor-debug --unsafe-mode` from the terminal.\n\n### To Build\n\n`npm run build` and it will create a folder build with the files to use\n\n## Server\n\nBy default the wallet will connect to the server selected as the `DEFAULT_SERVER` in the constants file (`src/constants.js`).\nYou can change this anytime in the 'Change Server' screen inside the wallet.\n\n## Documentation\n\nTo generate a html page with the documentation from the code comments run:\n\n```\nnpm run generate-doc\n```\n\nIt will generate a `index.html` file in `out/index.html`\n\n## Run Electron\n\nRefer to [ELECTRON.md](/ELECTRON.md)\n\n## Sentry\n\nSentry is a error tracking tool, that allow us to receive error data from clients - it will be disabled on stable versions of the wallet.\n\n### DSN\nOn `public/constants.js` we have a default Sentry DSN.\nTo override it simply set the environment variable `SENTRY_DSN`.\n\n### Source maps\nTo allow stack traces to be mapped to source code, Sentry needs the source maps.\nTo upload the source maps, create a `.sentryclirc` with the format:\n\n```\n[defaults]\nurl=https://sentry.io/\norg=\u003cORGANIZATION_NAME\u003e\nproject=\u003cPROJECT_NAME\u003e\n\n[auth]\ntoken=\u003cCLI_API_TOKEN\u003e\n```\n\nYou can find more information about the configuration file and its fields [here](https://docs.sentry.io/cli/configuration/).\nAfter configuring it, just run the `upload_source_maps.sh` script to upload the source maps.\n\n**WARNING**: Please note that this will override all the source maps for the current sentry release.\n\nThe sentry release used is the `version` field in the `package.json` file.\nSo in order to not break any released source maps, only run the script after bumping `package.json` to a new version.\nFor test purposes use `*-beta` versions or identifiers that will not colide with semantic versioning.\n\n## Troubleshooting\n\nWhen building, if you get the following error message:\n\n    FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory\n\nThen, you can increase your memory limit running:\n\n    export NODE_OPTIONS=--max_old_space_size=4096\n\n### WSL (Windows Subsystem for Linux)\n\n* Make sure you have the vesion 2\n    ```\n    wsl -l -v\n    ```\n* Make sure to install the WSL driver for your GPU, see at [Prerequisites](https://learn.microsoft.com/en-us/windows/wsl/tutorials/gui-apps#prerequisites)\n* Make sure to update the WSL after install the GPU driver, see at [Existing WSL Install](https://learn.microsoft.com/en-us/windows/wsl/tutorials/gui-apps#existing-wsl-install)\n* Once the `WSL` is updated you are ready to go\n\nIf you still can't run, see this [article](https://www.beekeeperstudio.io/blog/building-electron-windows-ubuntu-wsl2).\n\n### WSL Ubuntu 18 distro\n\nRun the following command to install necessary packages:\n\n```\nsudo apt install libnss3-dev libgdk-pixbuf2.0-dev libgtk-3-dev libxss-dev libasound2\n```\n\n### WSL Debian distro\n\nRun the following command to install necessary packages:\n\n```\nsudo apt install libnss3-dev libgdk-pixbuf2.0-dev libgtk-3-dev libxss-dev libasound2 libusb-1.0-0\n```\n\n## TODO\n\n- The algorithm to automatically choose the unspent transactions when sending tokens is naive. For now we do not consider any anonymity factor.\n- The addresses shared with the user and the ones used in change outputs are generated by the same chain in the HD Wallet. We don't separate internal and external addresses.\n\n## i18n\n\nWe use the `ttag` lib. Check out the docs [here](https://ttag.js.org/docs/quickstart.html).\n\nRun `make update_pot` to update the pot file (`locale/texts.pot`). This file has all strings to be translated in the app.\n\nRun `msgmerge pt-br/texts.po texts.pot -o pt-br/texts.po` to merge a pot file with a po file. This will add the new strings to be transalted and remove the deprecated ones. Any translation marked with `; fuzzy` comment must be reviewed.\n\nFinally, run `make i18n` to compile all po files to json files. You can use `make check_po` to check for problems in translations.\n\n## Release\n\nThere is a release guide in [RELEASE.md](/RELEASE.md).\n\nWe ship GPG signatures for all release packages. Check our guide in [RELEASING.md#signature-verification](/RELEASING.md#signature-verification) to learn how to verify them.\n\n## License\n\nCode released under [the MIT license](https://github.com/HathorNetwork/hathor-wallet/blob/dev/LICENSE).\n\nCopyright 2019 Hathor Labs.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FHathorNetwork%2Fhathor-wallet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FHathorNetwork%2Fhathor-wallet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FHathorNetwork%2Fhathor-wallet/lists"}