> ## 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: Root exports

> Root exports: 4 exports of the svm module of @eco-incorp/sauce, including svmSettleSource, svmSettleRefs, SVM_MAX_ESCROWS, SVM_SETTLE_SOURCE_PATH.

`@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/recipes/index.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>

### `svmSettleSource`

*Function* · `sdk/dist/svm/recipes/index.d.ts`

The SVM `settle` program text for `escrowCount` escrows - the SVM twin of
the EVM `settle.sauce.ts`, statement for statement, differing only where the VM forces it (see this
module's header). Generated rather than static because the escrow count is a compile-time property
on SVM; the returned text is exactly what gets compiled.

```typescript theme={null}
export declare function svmSettleSource(escrowCount?: number): string;
```

### `svmSettleRefs`

*Function* · `sdk/dist/svm/recipes/index.d.ts`

The account refs a generated program declares, in manifest order, for `escrowCount` escrows:
`tokenProgram0`, `tokenProgram1`, then per escrow `escrow_i` (source, writable), `mint_i`
(read for decimals), `dest_i` (recipient ATA, writable) - with the shared `owner` (signer) landing
right after escrow 0's group, which is simply the order `main` declares its params in. A caller's
`AccountResolution` must cover
exactly these; `sdk/test/svm-settle.compile.test.ts` pins this against a real compile for several
escrow counts so it can never drift from what the compiler actually emits.

```typescript theme={null}
export declare function svmSettleRefs(escrowCount?: number): string[];
```

### `SVM_MAX_ESCROWS`

*Variable* · `sdk/dist/svm/recipes/index.d.ts`

Upper bound on generated escrows. Each escrow attaches THREE accounts - `escrow_i` (source),
`mint_i` (read for decimals by TransferChecked), `dest_i` (the recipient's ATA) - on top of the
two token-program slots and the shared `owner`. So N escrows is `3N + 3` accounts; a large N needs
an address lookup table to fit the transaction, which is why this is capped.

```typescript theme={null}
SVM_MAX_ESCROWS = 16
```

### `SVM_SETTLE_SOURCE_PATH`

*Variable* · `sdk/dist/svm/recipes/index.d.ts`

Absolute path to the checked-in N=1 instance of `svmSettleSource()`, inside THIS installed
package - readable on its own, and pinned equal to the generator's output by
`sdk/test/svm-settle.compile.test.ts` so the two can never drift.

```typescript theme={null}
SVM_SETTLE_SOURCE_PATH: string
```
