{"id":49972088,"url":"https://github.com/chainapsis/vizor-wallet","last_synced_at":"2026-05-18T09:08:21.524Z","repository":{"id":357392942,"uuid":"1199262665","full_name":"chainapsis/vizor-wallet","owner":"chainapsis","description":null,"archived":false,"fork":false,"pushed_at":"2026-05-12T14:43:40.000Z","size":45985,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-05-12T16:36:13.850Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dart","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/chainapsis.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":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-04-02T07:24:08.000Z","updated_at":"2026-05-12T15:04:54.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/chainapsis/vizor-wallet","commit_stats":null,"previous_names":["chainapsis/vizor-wallet"],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/chainapsis/vizor-wallet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chainapsis%2Fvizor-wallet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chainapsis%2Fvizor-wallet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chainapsis%2Fvizor-wallet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chainapsis%2Fvizor-wallet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chainapsis","download_url":"https://codeload.github.com/chainapsis/vizor-wallet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chainapsis%2Fvizor-wallet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33172173,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-18T05:43:36.989Z","status":"ssl_error","status_checked_at":"2026-05-18T05:43:19.133Z","response_time":71,"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-18T09:08:20.723Z","updated_at":"2026-05-18T09:08:21.519Z","avatar_url":"https://github.com/chainapsis.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Vizor banner](.github/assets/gh-vizor-banner.png)\n\n# Vizor\n\nVizor is a self-custody Zcash wallet for shielded ZEC, with a polished desktop\nexperience built around clarity, privacy, and ease of use. It is for users who\nwant to create, receive, shield, and send ZEC without giving a hosted wallet\nservice control over their funds.\n\nOfficial public releases currently focus on signed and notarized macOS DMGs.\n\n## Features\n\n- Create or import a Zcash wallet.\n- Use a clean, modern interface designed to make shielded Zcash easier to use.\n- Receive to shielded Unified Addresses or transparent addresses.\n- Send ZEC from shielded balance.\n- Add memos when sending to shielded recipients.\n- Shield funds received to a transparent address.\n- Use multiple accounts in one wallet.\n- Import Keystone hardware wallet accounts.\n- Choose from preset or custom lightwalletd endpoints.\n- View balances, sync progress, and transaction history in a focused desktop\n  UI.\n- Protect local access with an app password and privacy mode.\n\n## Build From Source\n\nUse the release tag that matches the DMG you want to verify:\n\n```bash\ngit fetch --tags\ngit checkout release/vX.Y.Z\ngit rev-parse HEAD\n```\n\nMake sure the commit matches the GitHub release, then build:\n\n```bash\nfvm install\nfvm flutter pub get\nfvm flutter build macos --release \\\n  --dart-define=ZCASH_DEFAULT_NETWORK=main\n```\n\nFor testnet:\n\n```bash\nfvm flutter build macos --release \\\n  --dart-define=ZCASH_DEFAULT_NETWORK=test\n```\n\nThe built app is at:\n\n```text\nbuild/macos/Build/Products/Release/Vizor.app\n```\n\nLocal builds may not use the same Apple signing identity as the official\nrelease. That is expected. The goal is to verify the source and behavior, not\nto produce a byte-for-byte identical app.\n\n## Package a Local DMG\n\n```bash\nmkdir -p dist/macos\n\nscripts/package-macos-release-dmg.sh \\\n  --app-path build/macos/Build/Products/Release/Vizor.app \\\n  --output dist/macos/Vizor-local-macos.dmg\n```\n\nThe DMG packaging script must run on macOS in a GUI session.\n\n## Verify an Official DMG\n\nCheck the hash:\n\n```bash\nshasum -a 256 Vizor-macos.dmg\n```\n\nThen verify Apple signing and notarization:\n\n```bash\nDMG=\"Vizor-macos.dmg\"\n\nspctl --assess --type open --context context:primary-signature -vv \"$DMG\"\nxcrun stapler validate \"$DMG\"\n\nhdiutil attach \"$DMG\" -readonly\nAPP=\"/Volumes/Install Vizor Wallet/Vizor.app\"\n\ncodesign --verify --deep --strict --verbose=2 \"$APP\"\ncodesign -dv --verbose=4 \"$APP\" 2\u003e\u00261 | egrep 'Identifier|TeamIdentifier|Authority'\nspctl --assess --type execute -vv \"$APP\"\nxcrun stapler validate \"$APP\"\n\nhdiutil detach \"/Volumes/Install Vizor Wallet\"\n```\n\nExpected mainnet identity:\n\n```text\nIdentifier=com.keplr.vizor\nTeamIdentifier=SZTB68DXM4\nAuthority=Developer ID Application: Chainapsis Inc. (SZTB68DXM4)\n```\n\nFor testnet, the app path and identifier are:\n\n```text\n/Volumes/Install Vizor Testnet Wallet/Vizor Testnet.app\nIdentifier=com.keplr.vizor.testnet\nTeamIdentifier=SZTB68DXM4\n```\n\n## Notes\n\n- Back up your mnemonic. Vizor cannot recover funds if you lose it.\n- The local password protects this device only. It does not replace the\n  mnemonic backup.\n- Shielded transactions are scanned locally, but your lightwalletd endpoint can\n  still see network metadata such as IP address and request timing.\n- Transparent Zcash addresses and transactions are public on-chain.\n- Some exchanges only support transparent withdrawals. Shield those funds after\n  they arrive.\n- Sending uses shielded balance. Transparent funds must be shielded first.\n- Keystone accounts require an existing software wallet in this branch.\n- Local rebuilds are not expected to match the official DMG byte-for-byte\n  because Apple signing, notarization, timestamps, and DMG metadata differ.\n\n## Development\n\n```bash\nfvm flutter run\nfvm flutter test\nfvm flutter analyze\n\ncd rust \u0026\u0026 cargo test\n```\n\nAfter changing Rust API files in `rust/src/api/`, regenerate bindings from the\nrepo root:\n\n```bash\nflutter_rust_bridge_codegen generate\n```\n\n## License\n\nApache License 2.0. See [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchainapsis%2Fvizor-wallet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchainapsis%2Fvizor-wallet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchainapsis%2Fvizor-wallet/lists"}