> ## 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: Settle verification

> Settle verification: 14 exports of the svm module of @eco-incorp/sauce, including verifySvmSettleProgram, decodeSvmSettleExecution, verifySvmSettleExecution, SvmSettleExpectation, SettleManifestLike, SvmSettleVerification.

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

### `verifySvmSettleProgram`

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

Verifies a compiled SVM settle program is genuine AND enforces `expected` - the SVM analogue of the
EVM check, done by recompile. It:

1. takes the escrow count N (or infers it from the manifest's `3N + 3` slots),
2. recompiles `svmSettleSource(N)` with `expected` as defines, and
3. byte-compares the result, and asserts the manifest's slot names equal `svmSettleRefs(N)`.

A genuine result means the bytecode IS the reusable settle logic for N escrows, compiled for
exactly this floor and this split - all three are the same bytes, so one comparison pins them all.
The resolved account identities (from the executed instruction) remain the caller's own check.
Never throws for a non-genuine program; returns `{ genuine: false, mismatch }`.

```typescript theme={null}
export declare function verifySvmSettleProgram(bytecode: Uint8Array, manifest: SettleManifestLike, expected: SvmSettleExpectation): SvmSettleVerification;
```

### `decodeSvmSettleExecution`

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

Decode the released engine's 65-byte gate header and full CPI account list.
This inspects bytes and positions; it authenticates neither execution nor account roles.
A Kitchen instruction has a different layout and must be decoded separately.

```typescript theme={null}
export declare function decodeSvmSettleExecution(input: SvmSettleExecutionInput): DecodedSvmSettleExecution;
```

### `verifySvmSettleExecution`

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

Compare inline bytes, or caller-supplied staged bytes/pin, with a canonical recompile.
This does not check the callee, gate derivation/signature, account roles, or transaction success.
Engine calldata has no staged content pin; the caller must connect its pin to the code account.

```typescript theme={null}
export declare function verifySvmSettleExecution(input: SvmSettleExecutionVerifyInput): SvmSettleExecutionVerification;
```

### `SvmSettleExpectation`

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

The values a settle program was compiled with. Both are folded into the bytecode, so they are what
a recompile pins: naming them is how a caller says "prove the program enforces THIS floor and THIS
split", rather than reading them back out of an execution and trusting them.

```typescript theme={null}
export interface SvmSettleExpectation {
    minOut: bigint;
    splCount: bigint;
}
```

### `SettleManifestLike`

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

Just enough of an account manifest to count and name its slots.

```typescript theme={null}
export interface SettleManifestLike {
    accounts: readonly {
        kind: string;
        name?: string;
    }[];
}
```

### `SvmSettleVerification`

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

```typescript theme={null}
export interface SvmSettleVerification {
    genuine: boolean;
    escrowCount: number | null;
    refs: string[];
    mismatch?: string;
}
```

### `SvmExecutionWireFormat`

*Type* · `sdk/dist/svm/verify.d.ts`

Released engine CPI wire, or an explicitly selected pre-gate inspection format.

```typescript theme={null}
export type SvmExecutionWireFormat = "gated-v1" | "legacy-ungated";
```

### `SvmSettleAccountLike`

*Type* · `sdk/dist/svm/verify.d.ts`

```typescript theme={null}
export type SvmSettleAccountLike = string | {
    address?: string;
    pubkey?: string;
    ref?: string;
};
```

### `SvmSettleExecutionInput`

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

```typescript theme={null}
export interface SvmSettleExecutionInput {
    instructionData: Uint8Array;
    accounts: readonly SvmSettleAccountLike[];
    wireFormat?: SvmExecutionWireFormat;
}
```

### `SvmExecutionGate`

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

Parsed derivation material only; this does not validate the Pot PDA or its signature.

```typescript theme={null}
export interface SvmExecutionGate {
    owner: Address;
    salt: Uint8Array;
    bump: number;
    pot: Address;
}
```

### `DecodedSvmSettleExecution`

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

```typescript theme={null}
export interface DecodedSvmSettleExecution {
    instruction: "execute" | "execute_from_account";
    wireFormat: SvmExecutionWireFormat;
    gate?: SvmExecutionGate;
    codeAccount?: Address;
    escrowCount: number;
    refs: string[];
    accounts: Record<string, Address>;
    hadBufferAccount: boolean;
    labeledRefsConsistent: boolean | null;
}
```

### `SvmSettleExecutionVerifyInput`

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

```typescript theme={null}
export interface SvmSettleExecutionVerifyInput extends SvmSettleExecutionInput, SvmSettleExpectation {
    bytecode?: Uint8Array;
    pin?: Uint8Array;
}
```

### `SvmSettleVerifiedBy`

*Type* · `sdk/dist/svm/verify.d.ts`

```typescript theme={null}
export type SvmSettleVerifiedBy = "inline-bytecode" | "bytecode" | "caller-asserted-pin" | "none";
```

### `SvmSettleExecutionVerification`

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

```typescript theme={null}
export interface SvmSettleExecutionVerification extends DecodedSvmSettleExecution {
    genuine: boolean;
    verifiedBy: SvmSettleVerifiedBy;
    pinMatchesCanonical: boolean | null;
    pinMatchesBytecode: boolean | null;
    bytecodeMatchesCanonical: boolean | null;
    mismatch?: string;
}
```
