> ## Documentation Index
> Fetch the complete documentation index at: https://docs.eco.com/llms.txt
> Use this file to discover all available pages before exploring further.

# svm: Loader

> Loader: 7 exports of the svm module of @eco-incorp/sauce, including coalescingOwnedAccountLoader, coalescingAccountLoader, kitBatchAccountLoader, LoadedAccount, BatchAccountLoader, CoalescingLoaderOptions.

`@eco-incorp/sauce/svm` is the Solana side: staging a program through the kitchen, resolving accounts against the compiler's account manifest, building and sending transactions, and verifying settle programs. Solana execution goes through the Kitchen client here; the SDK's SVM route helpers emit a legacy instruction that the released engine does not accept.

```typescript theme={null}
import { createSauceSvmClient } from "@eco-incorp/sauce/svm";
```

This page covers `sdk/dist/svm/loader.d.ts`.

<Note>
  Generated from the type declarations shipped in `@eco-incorp/sauce` 0.99.4. Each entry shows the package authors' JSDoc and declaration for this SDK version. For runtime compatibility and deployed addresses, see [architecture and deployments](/programmable-transactions/sauce/architecture-and-deployments).
</Note>

### `coalescingOwnedAccountLoader`

*Function* · `sdk/dist/svm/loader.d.ts`

Wraps a batch transport as a single-account AccountLoader that coalesces
same-turn loads into deduped, chunked sweeps.

```typescript theme={null}
export declare function coalescingOwnedAccountLoader(loadMany: BatchAccountLoader, options?: CoalescingLoaderOptions): OwnedAccountLoader;
```

### `coalescingAccountLoader`

*Function* · `sdk/dist/svm/loader.d.ts`

The data-only loader the venue adapters take, as a projection of the owner-aware one.

Keeping both means an adapter can be moved to owner-based mint classification on its own, instead
of all 64 changing in one sweep.

```typescript theme={null}
export declare function coalescingAccountLoader(loadMany: BatchAccountLoader, options?: CoalescingLoaderOptions): AccountLoader;
```

### `kitBatchAccountLoader`

*Function* · `sdk/dist/svm/loader.d.ts`

Batch transport over a

* @solana /kit RPC's getMultipleAccounts (base64).

```typescript theme={null}
export declare function kitBatchAccountLoader(rpc: GetMultipleAccountsRpc): BatchAccountLoader;
```

### `LoadedAccount`

*Interface* · `sdk/dist/svm/loader.d.ts`

```typescript theme={null}
export interface LoadedAccount {
    data: Uint8Array;
    owner: Address;
}
```

### `BatchAccountLoader`

*Type* · `sdk/dist/svm/loader.d.ts`

Batch transport: addresses in, (data + owner) per account out (null = not found).

```typescript theme={null}
export type BatchAccountLoader = (addresses: readonly Address[]) => Promise<(LoadedAccount | null)[]>;
```

### `CoalescingLoaderOptions`

*Interface* · `sdk/dist/svm/loader.d.ts`

```typescript theme={null}
export interface CoalescingLoaderOptions {
    chunkSize?: number;
    maxConcurrentChunks?: number;
    expectOwner?: (address: Address, owner: Address) => void;
}
```

### `GetMultipleAccountsRpc`

*Interface* · `sdk/dist/svm/loader.d.ts`

The slice of a

* @solana /kit RPC this loader needs (Rpc\<GetMultipleAccountsApi>).

```typescript theme={null}
export interface GetMultipleAccountsRpc {
    getMultipleAccounts(addresses: readonly Address[], config: {
        encoding: "base64";
    }): {
        send(): Promise<{
            value: ({
                data: readonly [
                    string,
                    string
                ];
                owner: Address;
            } | null)[];
        }>;
    };
}
```
