npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

react-native-private-key-storage

v0.1.0

Published

Secure biometric key storage for React Native using TurboModules. Supports multiple key aliases, biometric access, and local encryption with iOS Keychain and Android Keystore.

Readme

🔐 react-native-private-key-storage

Securely store private keys in React Native using Android Keystore and iOS Secure Enclave.
Supports Face ID, Touch ID, device passcode fallback (PIN/password), and automatic biometric prompts.

Designed for crypto wallets, authentication tokens, and other sensitive key material.


✅ Features

  • 📱 Biometric protection via Face ID / Touch ID / PIN / Passcode
  • 🔐 Encrypted DataStore (Android) with AES256-GCM secure key management
  • 🧠 No need to handle key encryption manually — just store and retrieve
  • ✨ Zero-dependency API for React Native (TurboModule-based)
  • ☁️ Fully local — no network or server interaction
  • 🔡 Suitable for production crypto apps, wallet apps, identity/auth flows

📦 Installation

npm install react-native-private-key-storage

or

yarn add react-native-private-key-storage

Android Setup

No additional setup required — biometric and secure storage are included automatically.

Make sure your build.gradle (project-level) has:

minSdkVersion = 23

🧑‍💻 Usage

1. Import the module

import PrivateKeyStorage from 'react-native-private-key-storage';

2. Save a key

await PrivateKeyStorage.savePrivateKey('account1', base64PrivateKey);

Will prompt biometric auth with system fallback (Face ID / PIN / password)

3. Get a key

const key = await PrivateKeyStorage.getPrivateKey('account1');

4. Delete a key

await PrivateKeyStorage.deletePrivateKey('account1');

5. Store or retrieve multiple keys

// Save many
await PrivateKeyStorage.savePrivateKeys({
  account1: base64Key1,
  account2: base64Key2,
});

// Get all
const allKeys = await PrivateKeyStorage.getPrivateKeys(); // returns Record<string, string>

// Delete all
await PrivateKeyStorage.deletePrivateKeys();

🔐 Security Notes

  • Android uses Encrypted DataStore with biometric prompt via BiometricPrompt
  • iOS uses Secure Enclave + Face ID / Touch ID / Passcode
  • All access is gated through system-native biometric dialog

🤝 Contributing

We welcome issues and PRs! See CONTRIBUTING.md


📄 License

MIT


Built with ❤️ using create-react-native-library