> ## 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 venue: meteora-dlmm

> 15 exports of the meteora-dlmm venue integration in @eco-incorp/sauce/svm, including meteoraDlmm, fetchMeteoraDlmmConfig, METEORA_DLMM_PROGRAM_ID, METEORA_DLMM_MAX_BINS, LB_PAIR_DISCRIMINATOR, BIN_ARRAY_DISCRIMINATOR.

Solana venue integration `meteora-dlmm` under `svm/venues/meteora-dlmm`.

<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>

### `meteoraDlmm`

*Variable* · `sdk/dist/svm/venues/meteora-dlmm/index.d.ts`

Family facade for the recipe orchestrator (ladder-only - no v1 adapter).

```typescript theme={null}
meteoraDlmm: {
    slug: string;
    programId: Address<"LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo">;
    tokenProgram: Address<"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA">;
    fetchPoolConfig: typeof fetchMeteoraDlmmConfig;
}
```

### `fetchMeteoraDlmmConfig`

*Function* · `sdk/dist/svm/venues/meteora-dlmm/index.d.ts`

Fetch + gate one DLMM pair (see the header for the gate list) and freeze
both directions' bin windows. Read-only against the loader.

```typescript theme={null}
export declare function fetchMeteoraDlmmConfig(load: AccountLoader, pair: Address): Promise<MeteoraDlmmPoolConfig>;
```

### `METEORA_DLMM_PROGRAM_ID`

*Variable* · `sdk/dist/svm/venues/meteora-dlmm/index.d.ts`

```typescript theme={null}
METEORA_DLMM_PROGRAM_ID: Address<"LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo">
```

### `METEORA_DLMM_MAX_BINS`

*Variable* · `sdk/dist/svm/venues/meteora-dlmm/index.d.ts`

Shipped liquid bins per direction. Each bin is a discrete walk step (cheap
arithmetic + one live reserve read), so this can be larger than the CLMM
boundary window; sized against the engine's measured per-bin cost and moved
in lockstep with the fragment's unrolled setup (ladder.ts) and the mirror.

```typescript theme={null}
METEORA_DLMM_MAX_BINS = 8
```

### `LB_PAIR_DISCRIMINATOR`

*Variable* · `sdk/dist/svm/venues/meteora-dlmm/index.d.ts`

sha256('account:LbPair')\[0..8].

```typescript theme={null}
LB_PAIR_DISCRIMINATOR: number[]
```

### `BIN_ARRAY_DISCRIMINATOR`

*Variable* · `sdk/dist/svm/venues/meteora-dlmm/index.d.ts`

sha256('account:BinArray')\[0..8].

```typescript theme={null}
BIN_ARRAY_DISCRIMINATOR: number[]
```

### `meteoraDlmmWindowArrayIndexes`

*Function* · `sdk/dist/svm/venues/meteora-dlmm/index.d.ts`

The three bin-array indexes the walk touches: the active array then two more in the walk direction.

```typescript theme={null}
export declare function windowArrayIndexes(activeId: number, swapForY: boolean): [
    number,
    number,
    number
];
```

### `MeteoraDlmmPoolConfig`

*Interface* · `sdk/dist/svm/venues/meteora-dlmm/index.d.ts`

```typescript theme={null}
export interface MeteoraDlmmPoolConfig extends PoolConfig {
    venue: typeof SLUG;
    direction: "xToY" | "yToX";
    tokenXMint: Address;
    tokenYMint: Address;
    reserveX: Address;
    reserveY: Address;
    oracle: Address;
    bitmapExtension: Address;
    bitmapExtensionExists: boolean;
    binStep: number;
    activeId: number;
    baseFactor: number;
    baseFeePowerFactor: number;
    variableFeeControl: number;
    maxVolatilityAccumulator: number;
    reductionFactor: number;
    filterPeriod: number;
    decayPeriod: number;
    collectFeeMode: number;
    windows: {
        xToY: DlmmWindow;
        yToX: DlmmWindow;
    };
}
```

### `DlmmWindow`

*Interface* · `sdk/dist/svm/venues/meteora-dlmm/index.d.ts`

```typescript theme={null}
export interface DlmmWindow {
    binArrays: [
        Address,
        Address,
        Address
    ];
    arrayIndexes: [
        number,
        number,
        number
    ];
    bins: DlmmBin[];
    readable: number;
}
```

### `DlmmBin`

*Interface* · `sdk/dist/svm/venues/meteora-dlmm/index.d.ts`

```typescript theme={null}
export interface DlmmBin {
    arrayIndex: number;
    offset: number;
    binId: number;
    price: bigint;
}
```

### `dlmmPriceFromId`

*Function* · `sdk/dist/svm/venues/meteora-dlmm/bin-math.d.ts`

get\_price\_from\_id(bin\_id, bin\_step): (1 + bin\_step/1e4)^bin\_id in Q64.64.

```typescript theme={null}
export declare function priceFromId(binId: number, binStep: number): bigint;
```

### `dlmmPow`

*Function* · `sdk/dist/svm/venues/meteora-dlmm/bin-math.d.ts`

pow(base, exp) in Q64.64 - the u64x64\_math.rs binary-exponentiation with
per-step `>> 64`, the reciprocal trick for base >= ONE, and the final invert
for negative exponents. Returns null on the venue's overflow/exp-cap aborts.

```typescript theme={null}
export declare function pow(base: bigint, exp: number): bigint | null;
```

### `dlmmAmountOut`

*Function* · `sdk/dist/svm/venues/meteora-dlmm/bin-math.d.ts`

get\_amount\_out(amount\_in, price, swap\_for\_y, rounding).

```typescript theme={null}
export declare function amountOut(amountIn: bigint, price: bigint, swapForY: boolean, rounding: Rounding): bigint;
```

### `dlmmAmountIn`

*Function* · `sdk/dist/svm/venues/meteora-dlmm/bin-math.d.ts`

get\_amount\_in(amount\_out, price, swap\_for\_y, rounding).

```typescript theme={null}
export declare function amountIn(amountOutValue: bigint, price: bigint, swapForY: boolean, rounding: Rounding): bigint;
```

### `dlmmBinArrayIndex`

*Function* · `sdk/dist/svm/venues/meteora-dlmm/bin-math.d.ts`

floor(bin\_id / 70) - the bin array index (toward negative infinity).

```typescript theme={null}
export declare function binArrayIndex(binId: number): number;
```
