Developer Zone
Stack, scripts, and contributing
Tech stack overview, project layout, and how to contribute to Salmon Wallet.
Stack at a glance
- React 18 + React Native 0.70 for shared UI and logic.
- Web client uses Create React App; browser extensions target Chrome/Brave and Firefox.
- Solana integration via
@solana/web3.js1.95.x; Bitcoin flows use BitcoinJS. - Node 18+ required; serverless helpers ship for release automation.
Repository layout
src/– shared React components, hooks, screens, and blockchain integration logic.extension/– background/content scripts and manifests for Chromium/Firefox bundles.android/,ios/– React Native platform projects (run pods inios/after install).assets/,public/– static assets consumed across targets.- Env templates live at repo root (
env.local.json,env.develop.json,env.main.json,env.prod.json).
Install and run
yarn install
cd ios && pod install # iOS only
Pick an environment by setting REACT_APP_SALMON_ENV or copying the right template into env.local.json.
- Web dev:
yarn start:web(CRA dev server on port 3006 by default) - Web builds:
yarn build,yarn build:main,yarn build:prod - Extension bundles:
yarn build:extension(or:chrome,:mozilla) - Tests:
yarn test(web) andyarn test:native(React Native) - Lint:
yarn lint/yarn lint:fix
Contributing
- Read
CONTRIBUTION-AGREEMENT.mdbefore opening a PR. - Follow lint/test checks locally before submitting.
- Open issues for bugs or feature proposals; avoid public reports for security concerns and contact maintainers directly.