{"id":13552843,"url":"https://github.com/Chia-Network/chia-blockchain-gui","last_synced_at":"2025-04-03T04:31:06.933Z","repository":{"id":37076167,"uuid":"336877862","full_name":"Chia-Network/chia-blockchain-gui","owner":"Chia-Network","description":"Chia blockchain GUI in electron/react","archived":false,"fork":false,"pushed_at":"2025-03-30T00:07:42.000Z","size":119269,"stargazers_count":335,"open_issues_count":38,"forks_count":249,"subscribers_count":40,"default_branch":"main","last_synced_at":"2025-03-30T01:22:27.677Z","etag":null,"topics":["chia","chia-blockchain"],"latest_commit_sha":null,"homepage":"https://chia.net","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Chia-Network.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-07T20:03:21.000Z","updated_at":"2025-03-29T16:38:53.000Z","dependencies_parsed_at":"2024-12-09T20:27:34.354Z","dependency_job_id":"ab581799-5bd2-456b-8e7a-94405a37750e","html_url":"https://github.com/Chia-Network/chia-blockchain-gui","commit_stats":null,"previous_names":[],"tags_count":45,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chia-Network%2Fchia-blockchain-gui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chia-Network%2Fchia-blockchain-gui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chia-Network%2Fchia-blockchain-gui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chia-Network%2Fchia-blockchain-gui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Chia-Network","download_url":"https://codeload.github.com/Chia-Network/chia-blockchain-gui/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246939172,"owners_count":20857916,"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":["chia","chia-blockchain"],"created_at":"2024-08-01T12:02:11.558Z","updated_at":"2025-04-03T04:31:03.239Z","avatar_url":"https://github.com/Chia-Network.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","🌐 Web Development - Frontend","Smart Contract Platforms"],"sub_categories":[],"readme":"# chia-blockchain-gui\n\n![Chia logo](https://www.chia.net/wp-content/uploads/2022/09/chia-logo.svg)\n\n![GitHub contributors](https://img.shields.io/github/contributors/Chia-Network/chia-blockchain-gui?logo=GitHub)\n\nWelcome to the Chia GUI repo!\n\nChia GUI is written in TypeScript and uses Electron/React.\n\nThis monorepo consists of the following packages:\n\n| Package name  | Description                                                                                                |\n| ------------- | ---------------------------------------------------------------------------------------------------------- |\n| **api**       | JS/TS library to access the Chia Blockchain RPC                                                            |\n| **api-react** | React library that wraps **api** in hooks                                                                  |\n| **core**      | Common React components and hooks                                                                          |\n| **gui**       | The actual GUI package. It uses our packages like **api-react** and **core** under the hood                |\n| **icons**     | Chia specific icons                                                                                        |\n| **wallets**   | Common React components and hooks. Do not use this in you project. Will be merged to **core** package soon |\n\n## Development\n\n1. This repo (chia-blockchain-gui) must be under chia-blockchain repo. Please follow the [installation steps for the chia-blockchain](https://github.com/Chia-Network/chia-blockchain/wiki/INSTALL#install-from-source). Make sure to install from source code (git clone...).\n2. Run the `sh install-gui.sh` as instructed in the previous step. This will clone the chia-blockchain-gui under chia-blockchain repo.\n3. Change directory into the chia-blockchain-gui subdirectory.\n4. Run `npm run dev:gui`\n\n**When developing, please:**\n\n- Only edit the code with the **Vscode editor**.\n- Always have **chia-blockchain-gui opened as a root folder in the Vscode** and not chia-blockchain, or chia-blockchain-gui/packages/... Failing to do so will result in incorrect auto linting and auto formatting which would not go through the CI quality checks.\n- When you open the repo in the vscode, click on \"**Install recommended plugins**\" pop-up.\n- To develop in testnet, please follow [these steps](https://github.com/Chia-Network/chia-blockchain/wiki/How-to-connect-to-the-Testnet).\n- Please write tests for your code\n- When disabling an eslint rule, please provide a reason after two dashes (--), example:\n\n  `// eslint-disable-next-line react-hooks/exhaustive-deps -- Some dependencies intentionally left out`\n\n## Installing NPM packages\n\nTo install an NPM package, please navigate to the **root directory** of this repo.\n\n- To install `lodash` for **all** packages: `npx lerna add lodash`\n- To install `lodash` for **single** package: `npx lerna add lodash --scope=@chia-network/icons`\n- To install as a dev dependency, add `--dev`\n\nAfter adding a new NPM package, please **pin down the package version**. This is done to lower the possibility of supply chain attacks.\n\n## Common eslint issues\n\n- **react/no-array-index-key**\n\n  Only use `index` as a `key` when all of the following conditions are met:\n\n  1.  the list and items are static / hardcoded.\n  2.  the list is never reordered or filtered.\n\n  In all other cases, you have to figure out what unique string you will use as a `key`, or create a dedicated `ID`.\n\n- **import/no-extraneous-dependencies**\n\n  Packages that are used only in development should not be present on the production build. You have 3 options:\n\n  1. If it's a whole directory, add it to the `.eslintrc.json` file\n  2. If it's a single file, rename it by adding `.dev.` in the extension. Example: `file.ts` -\u003e `file.dev.ts`\n  3. If it's a file that is run on the production, use this:\n\n  ```\n  if (process.env.NODE_ENV === 'development') {\n    // eslint-disable-next-line global-require -- We cannot use import since it should be only loaded in development\n    const package = require('package');\n  }\n  ```\n\n## Git workflow\n\n- Git branch from \"**main**\"\n- For Chia employees: **prefix your branch with your name**, like this: `yourName/what-is-the-code-about`. This helps when cleaning up old branches.\n- All commits must be [signed](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits).\n\n## Git commit messages\n\n1. Separate subject from body with a blank line\n\n   A single subject line is usually sufficient, but if you need to include additional details, add an empty line after the subject and enter the detailed message. Example:\n\n   \u003e Capitalized, short (70 chars or less) summary\n   \u003e\n   \u003e More detailed explanatory text, if necessary. Wrap it to about 72\n   \u003e characters or so. In some contexts, the first line is treated as the\n   \u003e subject of an email and the rest of the text as the body. The blank\n   \u003e line separating the summary from the body is critical (unless you omit\n   \u003e the body entirely); tools like rebase can get confused if you run the\n   \u003e two together.\n\n2. Commit subject line should always be able to complete the following sentence:\n\n   **If applied, this commit will** `your subject line here`\n\n   ~~Fixed bug with Y~~ -\u003e Fix bug in the contact form\n\n   ~~Adding new field of X~~ -\u003e Add new field - \"discount code\", in the order form\n\n   ~~More fixes for broken stuff~~ -\u003e Fix broken responsive layout\n\n## Localization\n\nDo not edit files directly in the repo, but instead please head over to our [Crowdin project](https://chia.crowdin.com/chia-blockchain-gui) and add/edit translations there.\n\n## Troubleshooting\n\n- **`npm install` in the root directory does not install packages correctly (Or other Lerna issues)**\n\n  Please run `npx lerna clean -y \u0026\u0026 rm -rf node_modules \u0026\u0026 npm install \u0026\u0026 npx lerna bootstrap`\n\n- **`npm run dev:gui` fails to start the app without providing a reason**\n\n  1. In your command line, please go to the `chia-blockchain` directory (one level up)\n  2. Run `. ./activate`\n  3. Run `cd chia-blockchain-gui`\n  4. Run `npm run dev:gui` to start the app.\n  5. If still does not work, please open you process manager and kill all Chia / Python related processes.\n\n- **Why does my component keep rerendering?**\n\n  We have [why-did-you-render](https://github.com/welldone-software/why-did-you-render) installed.\n\n  You will see the reasons in the electron console after adding this to your functional component:\n\n  ```\n  YourComponent.whyDidYouRender = {\n    logOnDifferentValues: true,\n  }\n  ```\n\n## Debugging\n\n1. In the Chia Electron app, click `View -\u003e Developer -\u003e Developer tools`.\n2. In the console tab of the developer tools, change the default console events to include `verbose` events. These are the events emitted from the `debug` package.\n\n## Simulator / SimNet\n\n1. Please follow the [Install and configure the simulator](https://docs.chia.net/guides/simulator-user-guide/). Do this step only once.\n2. In the chia-blockchain directory, run this to setup the ENV variables. Use these instead of the ones mentioned in the above guide.\n\n```\nexport CHIA_ROOT=~/.chia/simulator/main\nexport CHIA_SIMULATOR_ROOT=~/.chia/simulator\nexport CHIA_KEYS_ROOT=~/.chia_keys_simulator\n```\n\n3. `. ./activate`\n4. `chia start simulator`\n5. `cd chia-blockchain-gui/packages/gui`\n6. `npm run dev:skipLocales`\n7. You should see your simulator wallets. You should not see your testNet / mainNet wallets.\n8. Run `chia dev sim farm` as many times you want to farm some coins.\n\n## Chia FAQ/WIKI\n\nPlease check out the [wiki](https://github.com/Chia-Network/chia-blockchain/wiki)\nand [FAQ](https://github.com/Chia-Network/chia-blockchain/wiki/FAQ) for\ninformation on this project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FChia-Network%2Fchia-blockchain-gui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FChia-Network%2Fchia-blockchain-gui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FChia-Network%2Fchia-blockchain-gui/lists"}