> ## 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: Account loader

> Account loader: the declaration and description of each of the 7 exports of @eco-incorp/sauce/svm.

`@eco-incorp/sauce/svm` is the Solana side: the client (`createSauceSvmClient`), clusters, PDAs, account resolution against the compiler's account manifest, Kitchen and engine instructions, transactions and sending, token accounts, and compute planning for `@sauce/router`'s Solana venues. `@eco-incorp/sauce/svm/engine` exports the engine's wire format and instruction builders, `@eco-incorp/sauce/svm/verify` verifies settle programs and engine CPI data, and `@eco-incorp/sauce/svm/engine-artifacts` (Node only) returns file paths to the packaged engine and Kitchen binaries.

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

Generated from the type declarations of `@eco-incorp/sauce`.

### `coalescingOwnedAccountLoader`

*Function* · `@eco-incorp/sauce/svm`

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

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

### `accountDataLoader`

*Function* · `@eco-incorp/sauce/svm`

The data-only view of an owner-aware loader, for the readers that take an `AccountLoader`.

```typescript theme={null}
export declare function accountDataLoader(load: OwnedAccountLoader): AccountLoader;
```

### `kitBatchAccountLoader`

*Function* · `@eco-incorp/sauce/svm`

Batch transport over a @solana/kit RPC's getMultipleAccounts (base64).

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

### `LoadedAccount`

*Interface* · `@eco-incorp/sauce/svm`

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

### `BatchAccountLoader`

*Type* · `@eco-incorp/sauce/svm`

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* · `@eco-incorp/sauce/svm`

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

### `GetMultipleAccountsRpc`

*Interface* · `@eco-incorp/sauce/svm`

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)[];
        }>;
    };
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.