{"id":49537918,"url":"https://github.com/gridcat/gridcoinresearch-tui","last_synced_at":"2026-05-02T12:31:45.343Z","repository":{"id":351727210,"uuid":"1211625425","full_name":"gridcat/gridcoinresearch-tui","owner":"gridcat","description":null,"archived":false,"fork":false,"pushed_at":"2026-04-16T07:51:55.000Z","size":598,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-04-16T09:21:25.100Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/gridcat.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-15T15:24:00.000Z","updated_at":"2026-04-16T07:51:37.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/gridcat/gridcoinresearch-tui","commit_stats":null,"previous_names":["gridcat/gridcoinresearch-tui"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/gridcat/gridcoinresearch-tui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridcat%2Fgridcoinresearch-tui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridcat%2Fgridcoinresearch-tui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridcat%2Fgridcoinresearch-tui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridcat%2Fgridcoinresearch-tui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gridcat","download_url":"https://codeload.github.com/gridcat/gridcoinresearch-tui/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridcat%2Fgridcoinresearch-tui/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32534965,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-02T12:25:33.646Z","status":"ssl_error","status_checked_at":"2026-05-02T12:24:51.733Z","response_time":132,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2026-05-02T12:31:43.748Z","updated_at":"2026-05-02T12:31:45.331Z","avatar_url":"https://github.com/gridcat.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gridcoinresearch-tui\n\n![example](https://salmon-ruling-marlin-296.mypinata.cloud/ipfs/bafybeiedy7pnhkxqoankdveazxyfsf6omdpvglzllj5svfpmtsj3sf6ply)\n\nA tiny, full-screen terminal dashboard for a running [Gridcoin Research](https://gridcoin.us) wallet daemon (`gridcoinresearchd`). One static binary, zero runtime dependencies.\n\nShows:\n\n- **Balance** (confirmed / unconfirmed / immature)\n- **Staking** status and difficulty\n- **Wallet lock** state with live unlock countdown\n- **Current block height**\n- **Your wallet addresses** with labels and amounts received\n- **Recent transactions** with human-readable status (`upcoming` / `incoming` / `sending` / `confirmed` / `stake`)\n- **Transaction details** (full txid, address, fee, block hash, timestamps) — press `enter` on a selected row\n- **Send GRC** to any address, with pre-flight address validation and on-demand wallet unlock\n- **Live config panel** — edit network / host / port / credentials / refresh interval at runtime without restarting\n\nSupports both **mainnet** and **testnet** via a CLI flag.\n\n## Install\n\nDownload a pre-built binary from the [Releases](https://github.com/gridcat/gridcoinresearch-tui/releases) page. Every release is notarised on the Gridcoin blockchain via [gridcoin-stamp-action](https://github.com/gridcat/gridcoin-stamp-action) — the `checksums.txt` hash is recorded on-chain so you can independently verify the artifacts.\n\n```sh\ncurl -sSL https://github.com/gridcat/gridcoinresearch-tui/releases/latest/download/gridcoinresearch-tui_linux_amd64.tar.gz | tar -xz\n./gridcoinresearch-tui\n```\n\nOr build from source:\n\n```sh\ngit clone https://github.com/gridcat/gridcoinresearch-tui\ncd gridcoinresearch-tui\nmake build\n./gridcoinresearch-tui\n```\n\n## Usage\n\n### Local (same machine as the wallet)\n\nZero config — reads `~/.GridcoinResearch/gridcoinresearch.conf`, connects to `127.0.0.1`:\n\n```sh\n./gridcoinresearch-tui              # mainnet\n./gridcoinresearch-tui --testnet    # testnet (reads ~/.GridcoinResearch/testnet/gridcoinresearch.conf)\n```\n\n### Remote (laptop → server)\n\nNo local Gridcoin install required:\n\n```sh\n./gridcoinresearch-tui \\\n  --rpc-host node.example.com \\\n  --rpc-port 15715 \\\n  --rpc-user myuser \\\n  --rpc-password mypass\n```\n\nOr via env vars (recommended for the password):\n\n```sh\nexport GRC_RPC_HOST=node.example.com\nexport GRC_RPC_USER=myuser\nexport GRC_RPC_PASSWORD=mypass\n./gridcoinresearch-tui\n```\n\n### All flags\n\n| Flag | Env var | Default | Notes |\n|------|---------|---------|-------|\n| `--testnet` | — | off | Use testnet conf path and default port. |\n| `--rpc-host HOST` | `GRC_RPC_HOST` | `127.0.0.1` | |\n| `--rpc-port PORT` | `GRC_RPC_PORT` | `15715` mainnet / `25715` testnet | |\n| `--rpc-user USER` | `GRC_RPC_USER` | empty | If both user and password are empty, no `Authorization` header is sent. |\n| `--rpc-password PASS` | `GRC_RPC_PASSWORD` | empty | Prefer env var over flag to keep it out of `ps`. |\n| `--conf PATH` | — | `~/.GridcoinResearch[/testnet]/gridcoinresearch.conf` | Best-effort; missing file is fine. |\n| `--refresh DUR` | — | `5s` | How often to poll the daemon. |\n\nResolution order, highest wins: **flag → env var → conf file → built-in default**.\n\n## Keybindings\n\n| Key | Action |\n|-----|--------|\n| `↑` / `↓` / `k` / `j` | Move the transaction cursor |\n| `enter` | Open details for the selected transaction |\n| `g` / `G` / `home` / `end` | Jump to first / last transaction |\n| `s` | Open the send dialog |\n| `c` | Open the live config panel |\n| `r` | Force a refresh now |\n| `tab` / `shift+tab` | Navigate fields inside a modal |\n| `esc` | Close a modal |\n| `q` / `ctrl+c` | Quit |\n\nInside the send and config modals the focused field is marked with `▸ ` so you can tell what is active on terminals without colour support. The selected transaction row gets the same marker.\n\n## Addresses\n\nThe \"My Addresses\" panel lists every address `listreceivedbyaddress` returns for your wallet, including ones that have never received any coins. Addresses are printed at full length so you can select them with your terminal's native mouse selection and copy them with your usual terminal shortcut. On small terminals the panel is capped so it cannot push the transactions list off screen — a `+N more` line appears when addresses don't fit; resize the window taller to see all of them.\n\n## Config panel\n\nEdits in the config panel are **session-only** — they apply immediately (the RPC client is rebuilt against the new endpoint and a fresh fetch runs) but are not written to disk. Next launch re-resolves from flags/env/conf as usual. Toggling the network auto-updates the port field if it still held the old network's default, so you don't need to remember port numbers.\n\n## Security notes\n\n- The TUI never stores your wallet passphrase. It is held in memory only for the duration of a single `sendtoaddress` call, then the wallet is immediately re-locked via `walletlock`.\n- Pass `--rpc-password` via env var, not the command line — flags are visible in `ps`.\n- This tool talks plain HTTP JSON-RPC. Do not expose your daemon's RPC port over the public internet. Use an SSH tunnel for remote access:\n  ```sh\n  ssh -L 15715:127.0.0.1:15715 user@node.example.com\n  ./gridcoinresearch-tui --rpc-user X --rpc-password Y\n  ```\n\n## License\n\nMIT\n\n---\n\n\u003cp align=\"center\"\u003eMade with ❤️ by @gridcat\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgridcat%2Fgridcoinresearch-tui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgridcat%2Fgridcoinresearch-tui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgridcat%2Fgridcoinresearch-tui/lists"}