Secure, open source and community driven crypto wallet runs on all platforms and trusted by millions. https://onekey.so
Find a file
Zen ae9272b0f7
fix(perps): prevent stale persisted snapshots OK-54852 (#11680)
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.
2026-05-17 10:54:41 +08:00
.agents chore: integrate skillshare for agent skills and sync tooling (#10831) 2026-03-23 18:29:29 +08:00
.claude chore: integrate skillshare for agent skills and sync tooling (#10831) 2026-03-23 18:29:29 +08:00
.codex feat: bot wallet export to CLI (#11454) 2026-05-07 11:51:06 +08:00
.cursor chore: integrate skillshare for agent skills and sync tooling (#10831) 2026-03-23 18:29:29 +08:00
.github build(cli): publish signed macOS standalone via platform subpackages (#11650) 2026-05-16 09:47:42 +00:00
.husky/_ feat: harden bundle hot-update, add app update verification controls, and dev tooling (#10340) 2026-03-04 15:18:45 +08:00
.skillshare chore: add tradingview communication skill (#11592) 2026-05-13 08:25:55 +08:00
.yarn chore: remove eslint (#9745) 2026-01-19 16:24:34 +08:00
@types fix: route app restart through BackgroundThread to avoid iOS SharedRPC crash(OK-54535) (#11581) 2026-05-13 08:27:37 +08:00
__mocks__ refactor: replace to native crypto (#7385) 2025-06-12 18:49:50 +08:00
apps build(cli): publish signed macOS standalone via platform subpackages (#11650) 2026-05-16 09:47:42 +00:00
development fix(ios+android): onboarding hardware dialog stacking & TextInput guards(OK-54522) (#11653) 2026-05-15 11:07:10 +08:00
docs feat(cli): add BTC transfer and swap support (#11499) 2026-05-08 07:57:37 +00:00
packages fix(perps): prevent stale persisted snapshots OK-54852 (#11680) 2026-05-17 10:54:41 +08:00
patches fix: prevent perpetual ping-timeout loop in App Transfer with split-thread on Android (#11671) 2026-05-16 09:01:17 +00:00
.editorconfig chore: upgrade yarn & set minimum nodejs to v20 (#3985) 2023-12-25 15:39:38 +08:00
.env.example fix(keyless): enhance keyless wallet security with distributed locking and improved encryption (#9604) 2026-01-09 00:05:30 +08:00
.env.expo chore: support native & desktop & ext 2023-10-19 09:50:17 +08:00
.env.version Update version from 6.2.0 to 6.3.0 2026-04-20 08:58:19 +08:00
.eslintrc.js feat: add testID system for QA automation (#10966) 2026-05-13 14:46:37 +08:00
.gitattributes chore: upgrade yarn & set minimum nodejs to v20 (#3985) 2023-12-25 15:39:38 +08:00
.gitignore fix: resolve Perps cross-platform issues(OK-53743 OK-54167 OK-54174 OK-54326 OK-54434 OK-54588 OK-54737 OK-54739 OK-54740 OK-54741 OK-54743 OK-54744) (#11649) 2026-05-15 08:10:27 +08:00
.lintstagedrc.js chore: add linter (#3674) 2023-10-19 12:40:14 +08:00
.oxlintrc.json feat: add testID system for QA automation (#10966) 2026-05-13 14:46:37 +08:00
.prettierrc.js chore: remove eslint (#9745) 2026-01-19 16:24:34 +08:00
.snyk Feat/hw three parties OK-50960 (#11048) 2026-04-24 10:57:49 +08:00
.yarnrc.yml chore: remove eslint (#9745) 2026-01-19 16:24:34 +08:00
AGENTS.md feat: bot wallet export to CLI (#11454) 2026-05-07 11:51:06 +08:00
background.js feat(mobile): native background runtime + three-bundle split + cold-start overhaul (#10969) 2026-04-21 14:22:46 +08:00
CLAUDE.md feat(cli): hardware wallet login (--hardware) + onekey device commands + shared EVM signing core (#11135) 2026-04-27 22:38:25 +08:00
cspell.json chore(lint): improve spellchecker configuration and lint scripts (#9698) 2026-01-14 20:41:35 +08:00
INITIAL.md feat: PRP beta (#7819) 2025-07-21 06:08:35 +00:00
jest-setup.js refactor(cli): remove mnemonic login, enforce explicit auth flags (#11293) 2026-04-19 12:08:55 +08:00
jest.config.js Feat: Bot wallet management (#10990) 2026-04-14 08:55:03 +08:00
LICENSE.md Revise LICENSE.md to version 1.1 with updates 2026-02-18 02:43:11 +09:00
package.json chore: bump @onekeyfe/hd-* and hwk-* to 1.1.26, inpage-provider to 2.2.70 (#11658) 2026-05-15 15:12:44 +08:00
README.md docs: add DeepWiki badge to README (#10786) 2026-03-20 12:32:08 +08:00
SECURITY.md Revise OneKey Bug Bounty Program documentation (#11497) 2026-05-08 12:11:50 +08:00
tsconfig.json Feat/hw three parties OK-50960 (#11048) 2026-04-24 10:57:49 +08:00
yarn.lock chore: bump @onekeyfe/hd-* and hwk-* to 1.1.26, inpage-provider to 2.2.70 (#11658) 2026-05-15 15:12:44 +08:00

OneKey: Secure Crypto Wallet

Anti-scam, open-source crypto wallet for every chain. Supports Bitcoin, Ethereum, Solana, Tron, BNB Smart Chain, and more.

Github Stars Version Contributors Last commit Issues Pull Requests Ask DeepWiki Twitter Follow

📥 Download

Platform Link
iOS App Store
Android Google Play
Desktop macOS / Windows / Linux
Browser Extension Chrome Web Store
Bridge Download

📋 Table of Contents

📖 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

🔰 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

Repo Activity

🙋‍♂️ We're Hiring!

We're hiring for remote roles worldwide — global pay, ESOP for everyone, open-source culture.

👉 View all open positions

Why join OneKey?
English 中文
🌍 Remote (Live anywhere) 🌍 远程 (生活在哪个城市都可以)
💰 Global Pay (Literally) 💰 全球一致的薪酬 (真的)
📈 ESOP (For everybody) 📈 ESOP 计划
🔓 Open Source (As you see) 🔓 开源 (如你所见)
🤝 Awesome Colleagues (Hell Yeah!) 🤝 超级棒的同事 (爽呆!)

Contributors

Contributors

📄 License

This project is licensed under the OneKey Standard Source License (O-SSL).