> ## 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: Prepended instructions

> Prepended instructions: the declaration and description of each of the 8 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`.

### `buildHeapFramePrepend`

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

Builds the required 256 KiB heap-frame request for cook transactions. Include it exactly once beside any compute-unit-limit request. High-level clients attach it automatically. Buffer-staging transactions do not require it.

```typescript theme={null}
export declare function buildHeapFramePrepend(bytes?: number): Instruction;
```

### `buildComputeBudgetPrepend`

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

```typescript theme={null}
export declare function buildComputeBudgetPrepend({ unitLimit, microLamportsPerCu, }: ComputeBudgetPrependInput): Instruction[];
```

### `buildAtaPrepend`

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

Idempotent ATA creation - safe to prepend whether or not the ATA already exists.

```typescript theme={null}
export declare function buildAtaPrepend({ payer, owner, mint, tokenProgram, }: AtaPrependInput): Promise<{
    ata: Address;
    instruction: Instruction;
}>;
```

### `buildWrapSolPrepends`

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

Idempotent wSOL ATA + SOL transfer + SyncNative - wraps `lamports` into the owner's wSOL account.

```typescript theme={null}
export declare function buildWrapSolPrepends({ payer, owner, lamports, }: WrapSolPrependsInput): Promise<{
    wsolAta: Address;
    instructions: Instruction[];
}>;
```

### `NATIVE_MINT`

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

Wrapped SOL mint (not exported by @solana-program/token).

```typescript theme={null}
NATIVE_MINT: Address
```

### `ComputeBudgetPrependInput`

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

```typescript theme={null}
export interface ComputeBudgetPrependInput {
    unitLimit: number;
    microLamportsPerCu?: number | bigint;
}
```

### `AtaPrependInput`

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

```typescript theme={null}
export interface AtaPrependInput {
    payer: TransactionSigner;
    owner: Address;
    mint: Address;
    tokenProgram?: Address;
}
```

### `WrapSolPrependsInput`

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

```typescript theme={null}
export interface WrapSolPrependsInput {
    payer: TransactionSigner;
    owner: Address;
    lamports: bigint;
}
```


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