# @reclaimprotocol/reclaim-client-sdk

> Reclaim client SDK

Latest version **0.0.12** (published 2024-01-27) · ISC license · 0 weekly downloads

## Install

```sh
npm install @reclaimprotocol/reclaim-client-sdk
pnpm add @reclaimprotocol/reclaim-client-sdk
yarn add @reclaimprotocol/reclaim-client-sdk
bun add @reclaimprotocol/reclaim-client-sdk
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.12 |
| Published | 2024-01-27 |
| First published | 2023-06-16 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 9.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Sweta Shaw |
| Maintainers | reclaimprotocol |
| Keywords | reclaimprotocol, sdk, reclaim-sdk |

## Links

- npm: https://www.npmjs.com/package/@reclaimprotocol/reclaim-client-sdk
- npm.io page: https://npm.io/package/@reclaimprotocol/reclaim-client-sdk

## Dependencies (1)

- [@reclaimprotocol/reclaim-sdk](https://npm.io/package/@reclaimprotocol/reclaim-sdk.md) ^6.0.0

## Recent versions

- 0.0.12 (latest) — 2024-01-27
- 0.0.11 — 2023-11-16
- 0.0.10 — 2023-08-16
- 0.0.9 — 2023-08-15
- 0.0.8 — 2023-07-18
- 0.0.7 — 2023-06-16
- 0.0.6 — 2023-06-16
- 0.0.5 — 2023-06-16
- 0.0.4 — 2023-06-16
- 0.0.3 — 2023-06-16
- 0.0.2 — 2023-06-16
- 0.0.1 — 2023-06-16

## README

# Reclaim Client SDK

## Introduction
Reclaim Client SDK enables you to request proofs for data owned by your user in the web2 world. Under the hood, it uses Reclaim Protocol to generate the proofs. For more details on the working of Reclaim Protocol, visit https://docs.reclaimprotocol.org


## Getting started
1. Install the SDK:
    ```
    npm i @reclaimprotocol/reclaim-client-sdk
    ```
2. Import the SDK into your frontend code:
    ```
    import ReclaimSDK from '@reclaimprotocol/reclaim-client-sdk'
    ```
3. Initialize the SDK with your Reclaim application ID:
   ```
   const reclaimSDK = new ReclaimSDK(<YOUR_RECLAIM_APP_ID>)
   ```
   Make sure to replace `<YOUR_RECLAIM_APP_ID>` with the actual application ID obtained from the Reclaim Developer Portal (https://dev.reclaimprotocol.org).

4. Generate a session for a user to submit proofs:
    ```
    const userId = '<USER_ID>' // Replace with the user's ID
    const session = await reclaimSDK.generateSession(userId)
    ```

    The generateSession method returns an object with the following properties:
    
    - `status`: The status of the session generation, either "success" or "failed".
    - `sessionId`: The ID of the generated session. Store this value for later use.
    - `link`: The submission link that can be displayed to the user as a QR code or a clickable link.
    - `onSubmission`: A promise that resolves when the user submits the proofs.

5. Handle the session and proof submission:

    ```
    // Display the verification link to the user, e.g., as a QR code
    if (session.link) {
        // Display the link or QR code
    }

    // Check if proof has been submitted
    try {
		const submissionData = await session?.onSubmission
		if(submissionData?.isProofSubmitted) {
			// Handle successful proof submission
		}
	} catch(e) {
        // Handle submission timeout or error
	}    
    ```

    The `onSubmission` promise polls the session status until the proofs are submitted or a timeout occurs (default timeout is 5 minutes).
6. Retrieve proofs submitted for a session:
    ```
    const sessionId = '<SESSION_ID>'; // Replace with the session ID
    const proofs = await reclaimSDK.getProofs(sessionId);
    ```
    The `getProofs` method returns an object with the following properties:

    - `status`: The status of the proof retrieval, either "success" or "failed".
    - `proofs`: An array of proof objects submitted for the session.

---
_Source: https://npm.io/package/@reclaimprotocol/reclaim-client-sdk · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
