Skip to content

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.js
bash
yarn add @privchain/sdk @solana/web3.js
bash
pnpm add @privchain/sdk @solana/web3.js
bash
bun add @privchain/sdk @solana/web3.js

Optional 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-react

Verify 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: devnet

Configuration

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=true

Load 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 install

Error: 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 transactions

Next Steps

Built for the autonomous agent economy.