salmon-wallet
salmon-wallet-v2
JavaScript

Self-custodial, open-source & community-owned Solana wallet

Last updated Mar 30, 2026
25
Stars
15
Forks
6
Issues
0
Stars/day
Attention Score
60
Language breakdown
JavaScript 91.1%
Java 6.7%
C++ 0.8%
Objective-C++ 0.5%
Objective-C 0.3%
HTML 0.2%
Files click to expand
README

Salmon Wallet

React 18.2.0 React Native 0.70.5 Node.js 18+ Solana Web3.js 1.95.4 GPL v3

logo-gmail-salmon

Self-custodial, open-source & community-owned Solana wallet

Salmon is a self-custodial wallet focused on transparency, resiliency, and a friendly user experience across devices. What started as a fork of Sollet evolved into a ground-up rewrite powered by React, React Native, and a browser-extension layer that keeps private keys on the client at all times. The project earned a Serum Foundation grant after being showcased at the Solana Riptide hackathon and continues to be maintained in the open.

Open-source code keeps the community empowered to audit, extend, and secure their own assets. We invite everyone to explore the codebase, submit improvements, and help us deliver a sustainable wallet ecosystem for the Solana network.

Quick Start

  • Clone this repository and install dependencies:
yarn install
  • (iOS only) Install native pods:
cd ios && pod install
  • Configure environment variables as needed (see below).
  • Pick a target (web, native, or extension) and use the scripts listed in the next sections.

Environment configuration

Environment templates live at the repository root (env.local.json, env.develop.json, env.main.json, env.prod.json). Use them to define RPC endpoints, feature flags, and other runtime settings. Set the REACTAPPSALMON_ENV variable or copy the appropriate file into env.local.json before launching the app.

Run the web client

  • Development mode:
yarn start:web
This boots the CRA development server on port 3006 (overridable through PORT). Hot-reload is enabled and lint errors display in the console.
  • Alternate environments:
yarn start:web:local
  yarn start:web:main
  yarn start:web:prod
Each command sets REACTAPPSALMON_ENV to target the desired cluster.

Browser extension builds

  • Build both Chrome/Brave and Firefox packages:
yarn build:extension
Artifacts are written to: - Chromium-based browsers: build-extension/ - Firefox: build-extension-mozilla/
  • Individual targets are available through yarn build:extension:chrome and yarn build:extension:mozilla. Use the accompanying upload:bundle:* scripts to sync bundles to the Salmon S3 buckets when releasing.

Additional scripts

  • Web production builds: yarn build, yarn build:main, yarn build:prod
  • Test suites: yarn test (web) and yarn test:native (React Native)
  • Linting: yarn lint / yarn lint:fix
  • Serverless deployment helpers: yarn serverless:deploy[:stage] and yarn serverless:remove[:stage]
Refer to package.json for the complete script catalog.

Project structure

  • src/ – shared React components, hooks, screens, and Solana integration logic.
  • extension/ – background scripts, content scripts, and manifests used by the browser extension.
  • android/, ios/ – native project scaffolding managed by React Native.
  • assets/, public/ – static assets consumed across platforms.

Contributing

Contributions of all kinds are welcome—bug fixes, features, documentation, or localization updates. Please read CONTRIBUTION-AGREEMENT.md before submitting a pull request. Issues and feature requests help us prioritize work; feel free to open one if you discover a problem or have an idea to discuss.

Security

If you discover a vulnerability or have a security concern, please avoid filing a public issue. Instead, reach out to the maintainers directly so we can coordinate a responsible disclosure and patch timeline.

License

Salmon Wallet is released under the GNU GPL v3.0.

© 2026 GitRepoTrend · salmon-wallet/salmon-wallet-v2 · Updated daily from GitHub