{"id":50124775,"url":"https://github.com/gregnb/cinder","last_synced_at":"2026-05-23T19:04:23.285Z","repository":{"id":353246759,"uuid":"1213975142","full_name":"gregnb/cinder","owner":"gregnb","description":"Self-custody desktop Solana wallet. Swaps, staking, token management, and hardware wallet support. Built with Qt and C++.","archived":false,"fork":false,"pushed_at":"2026-04-23T03:22:30.000Z","size":32915,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-23T05:23:02.499Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://cinderwallet.io","language":"C++","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/gregnb.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-18T01:07:22.000Z","updated_at":"2026-04-23T03:22:35.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/gregnb/cinder","commit_stats":null,"previous_names":["gregnb/cinder"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/gregnb/cinder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregnb%2Fcinder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregnb%2Fcinder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregnb%2Fcinder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregnb%2Fcinder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gregnb","download_url":"https://codeload.github.com/gregnb/cinder/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregnb%2Fcinder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33408505,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T18:09:33.147Z","status":"ssl_error","status_checked_at":"2026-05-23T18:09:31.380Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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-23T19:04:13.135Z","updated_at":"2026-05-23T19:04:23.280Z","avatar_url":"https://github.com/gregnb.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg width=\"320\" alt=\"Cinder\" src=\"https://github.com/user-attachments/assets/339e224b-8888-4ba6-8364-431a726b3e64\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eCinder\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  A non-custodial desktop Solana wallet built with Qt and C++.\n  \u003cbr /\u003e\n  Send, swap, stake, and manage SPL tokens — with hardware wallet support, a built-in terminal, and an MCP server for AI agents.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://cinderwallet.io\"\u003eWebsite\u003c/a\u003e · \u003ca href=\"https://cinderwallet.io/docs\"\u003eDocumentation\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/platform-macOS%20%7C%20Windows%20%7C%20Linux-lightgrey\" alt=\"Platform\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/C%2B%2B-20-blue?logo=cplusplus\" alt=\"C++20\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Qt-6-green?logo=qt\" alt=\"Qt 6\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Solana-Mainnet-blueviolet?logo=solana\" alt=\"Solana\" /\u003e\n\u003c/p\u003e\n\n---\n\n\u003ctable align=\"center\"\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg alt=\"Dashboard\" src=\"www/public/images/gallery/dashboard.png\" /\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg alt=\"Send / Receive\" src=\"www/public/images/gallery/send-receive.png\" /\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg alt=\"Assets\" src=\"www/public/images/gallery/assets.png\" /\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg alt=\"Wallets\" src=\"www/public/images/gallery/wallets.png\" /\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg alt=\"Staking\" src=\"www/public/images/gallery/staking-1.png\" /\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg alt=\"Transaction Details\" src=\"www/public/images/gallery/tx-details-1.png\" /\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg alt=\"Agents\" src=\"www/public/images/gallery/agents-1.png\" /\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg alt=\"Terminal\" src=\"www/public/images/gallery/terminal.png\" /\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg alt=\"Staking Validators\" src=\"www/public/images/gallery/staking-2.png\" /\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg alt=\"Agents Activity\" src=\"www/public/images/gallery/agents-2.png\" /\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg alt=\"Transaction Details Balances\" src=\"www/public/images/gallery/tx-details-2.png\" /\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg alt=\"Transaction Details Instructions\" src=\"www/public/images/gallery/tx-details-3.png\" /\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## Features\n\n\n\n**Wallet**\n\n- Send/receive SOL and SPL tokens (including Token-2022)\n- Swap via Jupiter DEX aggregation with slippage controls\n- Stake SOL — browse validators, delegate, withdraw\n- Create, mint, and burn Token-2022 tokens with extensions\n- Durable nonce support\n- Biometric unlock (Touch ID) \n\n**AI Agents (MCP)**\n\n- Model Context Protocol server with 60+ tools\n- Read-only tools (balances, history, quotes) run without approval\n- Fund-moving tools require explicit UI approval\n- Policy-based access control per wallet\n- Works with Claude, Claude Code, and Codex\n\n**Hardware Wallets**\n\n- Ledger (Nano S / X / S+)\n- Trezor (Model T / Safe 3 / One)\n- GridPlus Lattice1\n\n**Misc**\n\n- Address book\n- Transaction explorer — decode instructions, balances, compute units, logs\n- Built-in terminal with 40+ commands\n\n## Tech Stack\n\n| Layer    | Technology                                       |\n| -------- | ------------------------------------------------ |\n| UI       | Qt 6 Widgets, Qt Charts                          |\n| Language | C++20                                            |\n| Build    | CMake 3.16+                                      |\n| Crypto   | libsodium (Ed25519, Argon2id, XSalsa20-Poly1305) |\n| Database | SQLite (Qt Sql) with versioned migrations        |\n| RPC      | Qt Network — Solana JSON-RPC, Jupiter API        |\n| Hardware | HIDAPI, libusb-1.0                               |\n| QR Codes | libqrencode                                      |\n| macOS    | Cocoa, LocalAuthentication, Security frameworks  |\n| Website  | React, TypeScript, Vite, Cloudflare Pages        |\n\n## Building\n\n### Prerequisites\n\n- CMake 3.16+\n- C++20 compiler\n- Qt 6.x (Widgets, Charts, Network, Sql, Concurrent, Svg)\n- libsodium\n- libqrencode\n\n### macOS\n\n```bash\nbrew install qt@6 libsodium qrencode hidapi libusb\n\nmkdir build \u0026\u0026 cd build\ncmake ..\ncmake --build .\n\n# Run\nopen Cinder.app\n```\n\n### Linux (Ubuntu/Debian)\n\n```bash\nsudo apt install qt6-base-dev qt6-charts-dev libsodium-dev libqrencode-dev \\\n                 libhidapi-dev libusb-1.0-0-dev cmake build-essential\n\nmkdir build \u0026\u0026 cd build\ncmake ..\ncmake --build .\n\n./Cinder\n```\n\n### Windows\n\n1. Install [Qt 6](https://www.qt.io/download), [CMake](https://cmake.org/download/), and Visual Studio 2019+\n2. Install vcpkg dependencies: `libsodium`, `qrencode`, `hidapi`, `libusb`\n\n```bash\nmkdir build \u0026\u0026 cd build\ncmake -DCMAKE_PREFIX_PATH=\"C:/Qt/6.x/msvc2019_64\" ..\ncmake --build . --config Release\n```\n\n### Development rebuild\n\n```bash\n# Kills any running instance, rebuilds the app target only, and launches\nbash build-and-run.sh\n\n# If you intentionally want to rebuild tests and other targets too\nbash build-and-run.sh --all-targets\n```\n\n## Security\n\n- **Non-custodial** — private keys never leave your machine\n- **Encrypted storage** — Argon2id key derivation, XSalsa20-Poly1305 authenticated encryption\n- **Hardware wallet signing** — transactions signed on-device\n- **Biometric unlock** — macOS Touch ID with Keychain integration\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgregnb%2Fcinder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgregnb%2Fcinder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgregnb%2Fcinder/lists"}