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

@reclaimprotocol/inapp-rn-sdk

v0.25.1

Published

Reclaim Protocol's InApp React Native SDK for ZK proof generations for requests with an in-app experience of web verification

Downloads

2,602

Readme

Reclaim InApp React Native SDK

@reclaimprotocol/inapp-rn-sdk

Reclaim React Native SDK Documentation NPM Version

This SDK allows you to integrate Reclaim's in-app verification process into your React Native application.

Refer Reclaim Protocol's official documentation for React Native SDK

Prerequisites

Example

Installation

Choose the appropriate installation guide based on your project setup:

For React Native projects without Expo: 📖 Installation Guide for React Native (No Framework)

For React Native Expo projects: 📖 Installation Guide for React Native Expo

Usage

To use Reclaim InApp Sdk in your project, follow these steps:

  1. Import the @reclaimprotocol/inapp-rn-sdk package in your project file.
import { ReclaimVerification } from '@reclaimprotocol/inapp-rn-sdk';
  1. Initialize the ReclaimVerification class to create an instance.
const reclaimVerification = new ReclaimVerification();
  1. Start the verification flow by providing the app id, secret and provider id.
const verificationResult = await reclaimVerification.startVerification({
    appId: config.REACT_APP_RECLAIM_APP_ID ?? '',
    secret: config.REACT_APP_RECLAIM_APP_SECRET ?? '',
    providerId: providerId,
});

The returned result is a [ReclaimVerification.Response] object. This object contains a response that has proofs, exception, and the sessionId if the verification is successful.

Exception Handling

If the verification ends with an exception, the exception is thrown as a [ReclaimVerification.ReclaimVerificationException] object.

Following is an example of how to handle the exception using [error.type]:

try {
  // ... start verification
} catch (error) {
  if (error instanceof ReclaimVerification.ReclaimVerificationException) {
    switch (error.type) {
      case ReclaimVerification.ExceptionType.Cancelled:
        Snackbar.show({
          text: 'Verification cancelled',
          duration: Snackbar.LENGTH_LONG,
        });
        break;
      case ReclaimVerification.ExceptionType.Dismissed:
        Snackbar.show({
          text: 'Verification dismissed',
          duration: Snackbar.LENGTH_LONG,
        });
        break;
      case ReclaimVerification.ExceptionType.SessionExpired:
        Snackbar.show({
          text: 'Verification session expired',
          duration: Snackbar.LENGTH_LONG,
        });
        break;
      case ReclaimVerification.ExceptionType.Failed:
      default:
        Snackbar.show({
          text: 'Verification failed',
          duration: Snackbar.LENGTH_LONG,
        });
    }
  } else {
    Snackbar.show({
      text: error instanceof Error ? error.message : 'An unknown verification error occurred',
      duration: Snackbar.LENGTH_LONG,
    });
  }
}

This error also contains sessionId, reason, and innerError that can be used to get more details about the occurred error.

error.sessionId
error.reason
error.innerError

Troubleshooting

Cronet errors on android without play services

On android devices which don't have play services, you may get following errors in Android logs: java.lang.RuntimeException: All available Cronet providers are disabled. A provider should be enabled before it can be used., Google-Play-Services-Cronet-Provider is unavailable.. This is because the Reclaim InApp SDK depends on cronet for making http requests.

To fix this, you need to use embedded cronet in your android app by adding the following dependency in your build.gradle dependencies block:

dependencies {
    // ... other dependencies (not shown for brevity)
    // Use embedded cronet
    implementation("org.chromium.net:cronet-embedded:141.7340.3")
}

Compatibility Notice: expo-dev-client on iOS

Please be aware of a known incompatibility between ReclaimInAppSdk and the expo-dev-client package on the iOS platform.

When both packages are present in your iOS application, critical network requests from ReclaimInAppSdk may fail with a request timeout error (i.e Http failed. Checking if we can retry..\nNSErrorClientException: The request timed out.).

Our team is investigating this issue to find a solution. In the meantime, we recommend temporarily removing expo-dev-client from your project when you need to test or use ReclaimInAppSdk functionality on iOS.

iOS build issues

Incase you get errors which say CocoaPods could not find compatible versions for pod "ReclaimInAppSdk", run the following in your project's ios/ directory:

bundle exec pod update ReclaimInAppSdk
# or
pod update ReclaimInAppSdk

Build failures for iOS in 0.7.x

  • An accidental breaking change may cause 0.7.0, 0.7.1, 0.7.2 to fail with build failures for Android and iOS. Update 0.7.3 fixes this issue.

Migration

Advanced Usage

Overriding SDK Config

// Advanced Usage: Use ReclaimVerification.setOverrides for overriding sdk
reclaimVerification.setOverrides({
  appInfo: {
    appName: "Overriden Example",
    appImageUrl: "https://placehold.co/400x400/png"
  }
  // .. other overrides
})

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT