> ## 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: Prepends

> Prepends: 8 exports of the svm module of @eco-incorp/sauce, including buildHeapFramePrepend, buildComputeBudgetPrepend, buildAtaPrepend, buildWrapSolPrepends, NATIVE_MINT, ComputeBudgetPrependInput.

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

### `buildHeapFramePrepend`

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

RequestHeapFrame(262144) - REQUIRED on every execute/simulate transaction:
interpreter memory lives in the transaction's 256 KiB BPF heap frame, and a
transaction without the request aborts deterministically before any opcode.
**Add-once** beside SetComputeUnitLimit - duplicate ComputeBudget instruction
types fail the whole transaction (the client's execute flows attach it
automatically; use this when assembling transactions by hand). Buffer
staging transactions do not need it.

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

### `buildComputeBudgetPrepend`

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

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

### `buildAtaPrepend`

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

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* · `sdk/dist/svm/prepends.d.ts`

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* · `sdk/dist/svm/prepends.d.ts`

Wrapped SOL mint (not exported by

* @solana-program /token).

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

### `ComputeBudgetPrependInput`

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

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

### `AtaPrependInput`

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

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

### `WrapSolPrependsInput`

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

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