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

> Transactions: 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`.

### `prepareExecuteTransaction`

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

`buildExecuteTransaction`'s transaction, compiled now and signed only when asked.

```typescript theme={null}
export declare function prepareExecuteTransaction({ payer, instructions, latestBlockhash, lookupTables, }: BuildExecuteTransactionInput): PreparedExecuteTransaction;
```

### `buildExecuteTransaction`

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

Builds and fully signs a v0 transaction, optionally compressed through address lookup tables.

```typescript theme={null}
export declare function buildExecuteTransaction(input: BuildExecuteTransactionInput): Promise<SignedExecuteTransaction>;
```

### `measureExecuteTransaction`

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

The transaction `buildExecuteTransaction` builds from the same fee payer, instructions and
tables, compiled with no signature and a placeholder blockhash: what it measures
(`getTransactionSize`) and the accounts it lists (`lookupTableAddresses`), known without a
blockhash and without asking any signer for anything.

```typescript theme={null}
export declare function measureExecuteTransaction({ feePayer, instructions, lookupTables, }: MeasureExecuteTransactionInput): Transaction;
```

### `TRANSACTION_SIZE_LIMIT`

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

The largest legacy or v0 transaction on the wire, in bytes - every transaction the SDK builds is
one. Kit keeps its own copy of the number private since its v1 transactions, which allow more.

```typescript theme={null}
TRANSACTION_SIZE_LIMIT = 1232
```

### `SignedExecuteTransaction`

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

```typescript theme={null}
export type SignedExecuteTransaction = SendableTransaction & Transaction & TransactionWithBlockhashLifetime;
```

### `BuildExecuteTransactionInput`

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

```typescript theme={null}
export interface BuildExecuteTransactionInput {
    payer: TransactionSigner;
    instructions: readonly Instruction[];
    latestBlockhash: BlockhashLifetimeConstraint;
    lookupTables?: AddressesByLookupTableAddress;
}
```

### `PreparedExecuteTransaction`

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

The transaction `buildExecuteTransaction` builds, compiled with every signature slot empty,
and how to sign it: for a caller that simulates or checks it before anything is signed. Signing
compiles the same message, so the signed transaction's bytes are these.

```typescript theme={null}
export interface PreparedExecuteTransaction {
    readonly transaction: Transaction;
    sign(): Promise<SignedExecuteTransaction>;
}
```

### `MeasureExecuteTransactionInput`

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

```typescript theme={null}
export interface MeasureExecuteTransactionInput {
    feePayer: Address;
    instructions: readonly Instruction[];
    lookupTables?: AddressesByLookupTableAddress;
}
```


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