Skip to main content
Privora provides client SDKs for Rust, TypeScript, and React, enabling you to build applications that interact with FHE-enabled Solana programs.

SDK Comparison

FeatureRust SDKTypeScript SDKReact SDK
Packageprivora-sdk-client@privora/sdk@privora/react
EnvironmentNative, CLI, BackendBrowser, Node.jsReact Apps
AsyncTokio async/awaitPromise-basedReact Hooks
State ManagementManualManualBuilt-in (Context)
User Recovery UIManualManualuseDecryptReveal hook

Quick Start

npm install @privora/react @privora/sdk
import { PrivoraProvider, usePrivoraContext, useEncrypt } from '@privora/react';

function App() {
  const { signMessage } = useWallet();

  return (
    <PrivoraProvider
      rpcUrl="http://localhost:8899"
      autoInitialize
      signMessage={signMessage}
    >
      <MyComponent />
    </PrivoraProvider>
  );
}

function MyComponent() {
  const { privora, userCrypto, isInitialized } = usePrivoraContext();
  const { encryptAndSubmit } = useEncrypt(privora, userCrypto);

  const handleSubmit = async () => {
    const result = await encryptAndSubmit(100, 'u8');
    console.log('Hash:', result?.hash);
  };

  if (!isInitialized) return <div>Loading...</div>;
  return <button onClick={handleSubmit}>Submit</button>;
}

Core Functionality

1. FHE Encryption

Encrypt values with the network’s FHE public key:
const { encrypt, encryptAndSubmit } = useEncrypt(privora, userCrypto);

// With user recovery (recommended)
const result = await encryptAndSubmit(100, 'u8');

2. Data Submission

Submit encrypted data to the sequencer:
const hash = await privora.submit(encrypted);

3. User Recovery

Add user-recoverable encryption:
// encryptAndSubmit automatically includes user recovery
const result = await encryptAndSubmit(100, 'u8');
// result.userCiphertext and result.userNonce contain recovery data

4. Transaction Building

Build and send transactions with FHE data:
const signature = await privora
    .transaction()
    .add(instruction)
    .withFheData([hash])
    .sign(keypair)
    .send();

Next Steps

React Integration

React hooks and components

TypeScript Client

Core TypeScript SDK

Rust Client

Native Rust SDK