LiteSVM Docs
API Reference

Configuration

Builder methods for configuring LiteSVM in TypeScript

Configuration

LiteSVM uses a builder pattern for configuration. All methods return LiteSVM for chaining.

Typical Test Setup

const client = createEmptyClient().use(litesvm());

client.svm
    .withSigverify(false)        // Skip signature verification (faster)
    .withBlockhashCheck(false)   // Skip blockhash validation (simpler)
    .withSysvars()               // Enable Clock, Rent, etc.
    .withBuiltins()              // Enable ed25519, secp256k1
    .withTransactionHistory(100n); // Store last 100 transactions

Signature & Blockhash

withSigverify

withSigverify(sigverify: boolean): LiteSVM

Enable or disable signature verification.

// Disable for faster tests (default is enabled)
client.svm.withSigverify(false);

// Enable for production-like testing
client.svm.withSigverify(true);

Disabling signature verification makes tests faster but less realistic.

withBlockhashCheck

withBlockhashCheck(check: boolean): LiteSVM

Enable or disable blockhash expiration checking.

// Disable for simpler tests
client.svm.withBlockhashCheck(false);

Programs & Sysvars

withSysvars

withSysvars(): LiteSVM

Enable sysvar accounts (Clock, Rent, EpochSchedule, etc.).

client.svm.withSysvars();

// Now you can access sysvars
const clock = client.svm.getClock();
const rent = client.svm.getRent();

withBuiltins

withBuiltins(): LiteSVM

Enable built-in programs (ed25519, secp256k1 signature verification).

client.svm.withBuiltins();

withPrecompiles

withPrecompiles(): LiteSVM

Enable precompiled programs.

client.svm.withPrecompiles();

withDefaultPrograms

withDefaultPrograms(): LiteSVM

Add default programs (System Program, BPF Loader, etc.).

client.svm.withDefaultPrograms();

Resource Limits

withLamports

withLamports(lamports: bigint): LiteSVM

Set default lamports for accounts.

client.svm.withLamports(1_000_000_000n); // 1 SOL

withLogBytesLimit

withLogBytesLimit(limit?: bigint): LiteSVM

Set the log output byte limit.

client.svm.withLogBytesLimit(10000n);

withTransactionHistory

withTransactionHistory(capacity: bigint): LiteSVM

Enable transaction history storage.

// Store last 100 transactions
client.svm.withTransactionHistory(100n);

Feature Sets

withFeatureSet

withFeatureSet(featureSet: FeatureSet): LiteSVM

Configure the feature set for testing specific Solana versions.

Helper Methods

tap

tap(fn: (svm: LiteSVM) => void): LiteSVM

Execute a function inline while chaining.

client.svm
    .withSysvars()
    .tap(svm => {
        // Do setup inside the chain
        svm.airdrop(account.address, lamports(5_000_000_000n));
        console.log('Account funded');
    })
    .withTransactionHistory(100n);