MeshKit
Runtimes

Mobile Key Vaults

Native key storage boundaries for mobile runtimes.

Mobile key vaults protect MeshKit identity material in mobile runtimes. They are part of the identity storage story, not a complete security guarantee by themselves.

The current mobile runtime pattern can protect exported identity records at rest when a native bridge is available. Do not claim non-exportable ECDH/signing, biometric enforcement, or durable recovery unless your installed bridge and product flow actually provide those guarantees.

What A Key Vault Protects

MaterialExpected handling
Exported identity recordsStore through native secure storage when available
Recovery envelopesStore or back up only through an app-approved recovery flow
Private keysAvoid logs, analytics, crash reports, and plaintext exports
Capability token secretsTreat as sensitive credentials

What It Does Not Automatically Solve

  • Lost-device recovery
  • Compromised-device response
  • Non-exportable hardware-backed ECDH/signing
  • Biometric or passcode policy enforcement
  • User account binding
  • Contact verification
  • Provider token safety

Those are application and bridge responsibilities.

React Native Example

import { createMeshkitReactNative, createReactNativeKeyVault } from "@meshkit/react-native";

const keyVault = createReactNativeKeyVault(undefined, {
  accessControl: "device-passcode",
});

const mesh = await createMeshkitReactNative({
  identity: "mobile-owner",
  keyVault,
});

await mesh.identity.create("mobile-owner");

Production Checklist

Before shipping mobile identity storage:

  1. Confirm the native key-vault bridge is installed in the production build.
  2. Confirm identity records survive app restart when expected.
  3. Confirm deletion/reinstall behavior matches product policy.
  4. Confirm backup and recovery behavior for lost devices.
  5. Confirm private keys and exported records are redacted from logs and support bundles.
  6. Document whether keys are exportable or non-exportable.
  7. Test sharing, revocation, and recovery on real devices.

Failure Modes

SymptomLikely causeAction
Identity disappears after restartFallback storage or bridge not configuredVerify native bridge and persistence settings
Build works in dev but not productionNative module missing from production buildCheck platform build configuration
Security review rejects claimsDocs imply non-exportable keys without bridge evidenceNarrow claims or implement the stronger bridge
User loses access after device lossNo recovery envelope or account recovery flowDesign and document recovery before launch

Next Steps

On this page