Installation
Install the PrivChain SDK in your project.
Requirements
- Node.js 18.0 or higher (or Bun 1.0+)
- Solana Web3.js 1.87 or higher
- A Solana wallet with SOL for transaction fees
Package Installation
bash
npm install @privchain/sdk @solana/web3.jsbash
yarn add @privchain/sdk @solana/web3.jsbash
pnpm add @privchain/sdk @solana/web3.jsbash
bun add @privchain/sdk @solana/web3.jsOptional Dependencies
Install additional packages for specific features:
bash
# For ZK proof generation (GPU acceleration)
npm install @privchain/prover-gpu
# For LangChain integration
npm install @privchain/langchain
# For browser wallets (Phantom, Solflare)
npm install @solana/wallet-adapter-wallets @solana/wallet-adapter-reactVerify Installation
typescript
import { PrivChain } from '@privchain/sdk';
import { Connection } from '@solana/web3.js';
const connection = new Connection('https://api.devnet.solana.com');
const privchain = new PrivChain({ connection, network: 'devnet' });
console.log('PrivChain SDK version:', privchain.version);
console.log('Connected to:', privchain.network);Expected output:
PrivChain SDK version: 0.1.0
Connected to: devnetConfiguration
Basic Configuration
typescript
import { PrivChain } from '@privchain/sdk';
import { Connection, clusterApiUrl } from '@solana/web3.js';
const privchain = new PrivChain({
// Required: Solana connection
connection: new Connection(clusterApiUrl('mainnet-beta')),
// Required: Network (mainnet-beta, devnet, testnet)
network: 'mainnet-beta',
// Optional: Custom RPC endpoint
rpcEndpoint: 'https://your-rpc.com',
// Optional: Commitment level
commitment: 'confirmed',
// Optional: Enable debug logging
debug: false
});Environment Variables
Recommended .env configuration:
bash
# Solana RPC (use a dedicated RPC for production)
SOLANA_RPC_URL=https://api.mainnet-beta.solana.com
# Network
SOLANA_NETWORK=mainnet-beta
# Wallet (base58 encoded private key)
WALLET_PRIVATE_KEY=your_private_key_here
# Optional: Prover configuration
PRIVCHAIN_PROVER_URL=https://prover.privchain.io
PRIVCHAIN_PROVER_GPU=trueLoad in your application:
typescript
import { PrivChain } from '@privchain/sdk';
import { Connection, Keypair } from '@solana/web3.js';
import bs58 from 'bs58';
import 'dotenv/config';
const connection = new Connection(process.env.SOLANA_RPC_URL!);
const wallet = Keypair.fromSecretKey(
bs58.decode(process.env.WALLET_PRIVATE_KEY!)
);
const privchain = new PrivChain({
connection,
network: process.env.SOLANA_NETWORK as 'mainnet-beta'
});
await privchain.connect(wallet);TypeScript Configuration
Add to your tsconfig.json:
json
{
"compilerOptions": {
"target": "ES2022",
"module": "ESNext",
"moduleResolution": "bundler",
"esModuleInterop": true,
"strict": true,
"resolveJsonModule": true
}
}Framework-Specific Setup
Next.js
typescript
// lib/privchain.ts
import { PrivChain } from '@privchain/sdk';
import { Connection } from '@solana/web3.js';
let privchain: PrivChain | null = null;
export function getPrivChain() {
if (!privchain) {
const connection = new Connection(process.env.SOLANA_RPC_URL!);
privchain = new PrivChain({
connection,
network: 'mainnet-beta'
});
}
return privchain;
}Vite/React
typescript
// src/config/privchain.ts
import { PrivChain } from '@privchain/sdk';
import { Connection } from '@solana/web3.js';
export const privchain = new PrivChain({
connection: new Connection(import.meta.env.VITE_SOLANA_RPC_URL),
network: import.meta.env.VITE_SOLANA_NETWORK
});Node.js (CommonJS)
javascript
const { PrivChain } = require('@privchain/sdk');
const { Connection } = require('@solana/web3.js');
const connection = new Connection('https://api.mainnet-beta.solana.com');
const privchain = new PrivChain({ connection, network: 'mainnet-beta' });Troubleshooting
Common Issues
Error: Cannot find module '@privchain/sdk'
bash
# Clear cache and reinstall
rm -rf node_modules package-lock.json
npm installError: Connection refused
typescript
// Use a reliable RPC endpoint
const connection = new Connection(
'https://api.mainnet-beta.solana.com',
{ commitment: 'confirmed' }
);Error: Insufficient SOL for transaction
typescript
// Check SOL balance
const balance = await connection.getBalance(wallet.publicKey);
console.log('SOL balance:', balance / 1e9);
// Need at least 0.001 SOL for transactionsNext Steps
- Wallet Connection - Connect wallets
- Token Operations - Transfer PRIV tokens
- Quickstart - End-to-end example