# React Native Secure Storage

React Native Secure Storage provides a typed wrapper for storing encrypted wallet seed material and encryption keys with `react-native-keychain`. It is designed for React Native wallet apps that need app-scoped encrypted storage with optional biometric access.

Powered by [`@tetherto/wdk-react-native-secure-storage`](https://www.npmjs.com/package/@tetherto/wdk-react-native-secure-storage).

## Features

* **Wallet credential helpers**: Store and retrieve encrypted seeds, encrypted entropy, and encryption keys.
* **Per-wallet identifiers**: Pass an optional `identifier` to isolate storage keys for multiple wallets.
* **Biometric access**: Require biometric authentication for encryption key reads with `requireBiometrics`.
* **Device security checks**: Check whether device passcode, PIN, pattern, or biometrics are enabled before sensitive flows.
* **Typed errors**: Catch validation, authentication, timeout, keychain read, and keychain write failures.

## When to use it

Use this package for local encrypted storage in React Native wallet apps. It does not generate wallet seeds, encrypt plaintext seed material by itself, or provide cloud backup. Pair it with WDK wallet modules and a backup provider when you need recovery across devices.

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><i class="fa-code">:code:</i></td><td><strong>Configuration</strong></td><td>Install dependencies, configure authentication prompts, and create a storage instance.</td><td><a href="/pages/UWGTq36XO5uJWGjltJ0F">/pages/UWGTq36XO5uJWGjltJ0F</a></td></tr><tr><td><i class="fa-mobile-alt">:mobile-alt:</i></td><td><strong>API Reference</strong></td><td>Review `createSecureStorage`, storage methods, options, constants, and errors.</td><td><a href="/pages/LOWU9zuPHOcWaYpCzZw8">/pages/LOWU9zuPHOcWaYpCzZw8</a></td></tr></tbody></table>

***

## Need Help?

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><i class="fa-discord">:discord:</i></td><td><strong>Discord Community</strong></td><td>Connect with developers, ask questions, share your projects</td><td><a href="https://discord.gg/arYXDhHB2w" class="button primary">Join Community</a></td><td><a href="https://discord.gg/arYXDhHB2w">https://discord.gg/arYXDhHB2w</a></td></tr><tr><td><i class="fa-github">:github:</i></td><td><strong>GitHub Issues</strong></td><td>Report bugs, request features, and get technical help</td><td><a href="https://github.com/tetherto/wdk-core" class="button secondary">Open an Issue</a></td><td><a href="https://github.com/tetherto/wdk-core">https://github.com/tetherto/wdk-core</a></td></tr><tr><td><i class="fa-envelope">:envelope:</i></td><td><strong>Email Contact</strong></td><td>For sensitive or private matters, contact our team directly</td><td><a href="mailto:wallet-info.tether.io" class="button secondary">Send an email</a></td><td><a href="mailto:wallet-info.tether.io">mailto:wallet-info.tether.io</a></td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.wdk.tether.io/tools/react-native-secure-storage.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
