mirror of
https://github.com/rebots-online/OneKeyWalletApp.git
synced 2026-05-19 07:21:44 -04:00
Secure, open source and community driven crypto wallet runs on all platforms and trusted by millions.
https://onekey.so
Persistent Perps snapshot atoms store complete values containing arrays or nullable fields. Disabling initial-value merging prevents lodash merge from restoring removed rows or stale fields. Constraint: Jotai storage merges hydrated initial values by default. Rejected: More favorite queue patches | they do not address storage-level stale array tails. Confidence: high Scope-risk: narrow Directive: Keep complete Perps snapshot atoms out of mergeInitialValue unless writes are partial patches. Tested: yarn jest packages/kit-bg/src/states/jotai/atomNames.test.ts packages/kit/src/views/Perp/utils/tokenSelectorFavorites.test.ts --runInBand; yarn lint:staged; yarn tsc:staged Not-tested: Manual device bundle verification after this commit. |
||
|---|---|---|
| .agents | ||
| .claude | ||
| .codex | ||
| .cursor | ||
| .github | ||
| .husky/_ | ||
| .skillshare | ||
| .yarn | ||
| @types | ||
| __mocks__ | ||
| apps | ||
| development | ||
| docs | ||
| packages | ||
| patches | ||
| .editorconfig | ||
| .env.example | ||
| .env.expo | ||
| .env.version | ||
| .eslintrc.js | ||
| .gitattributes | ||
| .gitignore | ||
| .lintstagedrc.js | ||
| .oxlintrc.json | ||
| .prettierrc.js | ||
| .snyk | ||
| .yarnrc.yml | ||
| AGENTS.md | ||
| background.js | ||
| CLAUDE.md | ||
| cspell.json | ||
| INITIAL.md | ||
| jest-setup.js | ||
| jest.config.js | ||
| LICENSE.md | ||
| package.json | ||
| README.md | ||
| SECURITY.md | ||
| tsconfig.json | ||
| yarn.lock | ||
OneKey: Secure Crypto Wallet
Anti-scam, open-source crypto wallet for every chain. Supports Bitcoin, Ethereum, Solana, Tron, BNB Smart Chain, and more.
📥 Download
| Platform | Link |
|---|---|
| iOS | App Store |
| Android | Google Play |
| Desktop | macOS / Windows / Linux |
| Browser Extension | Chrome Web Store |
| Bridge | Download |
📋 Table of Contents
- 📥 Download
- 📖 Documentation
- 🗂 Project Structure
- 🚀 Getting Onboard
- 🧑💻 Development
- 🏡 Community & Enterprise Edition
- 💡 Support
- 🔰 Security
- 💬 Docs in Your Languages
- 🪄 Repo Activity
- 🙋♂️ We're Hiring!
- ✨ Contributors
- 📄 License
📖 Documentation
🗂 Project Structure
This is a monorepo managed with Yarn workspaces.
app-monorepo/
├── apps/
│ ├── desktop/ # Electron desktop app (macOS, Windows, Linux)
│ ├── ext/ # Browser extension (Chrome)
│ ├── mobile/ # React Native mobile app (iOS, Android)
│ ├── web/ # Web application
│ └── web-embed/ # Embeddable web component
├── packages/
│ ├── components/ # Shared UI component library
│ ├── core/ # Core business logic & crypto utilities
│ ├── kit/ # Main UI kit
│ ├── kit-bg/ # Background service kit
│ ├── qr-wallet-sdk/ # QR-code hardware wallet SDK
│ └── shared/ # Shared utilities, constants, and types
├── development/ # Dev tooling & scripts
├── patches/ # Dependency patches
└── docs/ # Documentation & i18n
🚀 Getting Onboard
Prerequisites: Node.js >= 22, Yarn 4.x (bundled via Corepack), Git LFS
git clone https://github.com/OneKeyHQ/app-monorepo.git
cd app-monorepo
yarn
yarn app:web # starts dev server at http://localhost:3000
📱 Platform-specific requirements
- iOS: Xcode >= 13.3
- Android: JDK >= 11
🧑💻 Development
Run these commands from the root directory:
| Command | Description |
|---|---|
yarn app:web |
Start web dev server (port 3000) |
yarn app:ios |
Run iOS app via USB-connected device |
yarn app:android |
Run Android app |
yarn app:desktop |
Run desktop (Electron) app |
yarn app:ext |
Run browser extension |
🏡 Community & Enterprise Edition
- 🏡 🧔🏻♂️ Community Edition — Free forever for individuals and open-source communities.
- 🏦 💼 Enterprise Edition — Coming soon. Star this repo to get notified when it's ready.
💡 Support
- Community Forum — Help with building, best practices discussion.
- GitHub Issues — Bug reports and errors.
🔰 Security
- Please read the Bug Bounty Rules, we have detailed the exact plan in this article.
- Report suspected vulnerabilities privately to dev@onekey.so or via BugRap.
- Please do NOT create publicly viewable issues for suspected security vulnerabilities.
- As an open source project, although we are not yet profitable, we try to give some rewards to white hat hackers who disclose vulnerabilities to us in a timely manner.
- See SECURITY.md for full details.
💬 Docs in Your Languages
| Available Languages |
|---|
| 🇨🇳 简体中文 |
| 🇩🇪 Deutsch |
| 🇯🇵 日本語 |
| 🇫🇷 Français |
| 🇮🇹 Italiano |
🪄 Repo Activity
🙋♂️ We're Hiring!
We're hiring for remote roles worldwide — global pay, ESOP for everyone, open-source culture.
Why join OneKey?
| English | 中文 |
|---|---|
| 🌍 Remote (Live anywhere) | 🌍 远程 (生活在哪个城市都可以) |
| 💰 Global Pay (Literally) | 💰 全球一致的薪酬 (真的) |
| 📈 ESOP (For everybody) | 📈 ESOP 计划 |
| 🔓 Open Source (As you see) | 🔓 开源 (如你所见) |
| 🤝 Awesome Colleagues (Hell Yeah!) | 🤝 超级棒的同事 (爽呆!) |
✨ Contributors
📄 License
This project is licensed under the OneKey Standard Source License (O-SSL).