> ## 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: juplend-amm

> 22 exports of the juplend-amm venue integration in @eco-incorp/sauce/svm, including juplendAmmSwapAccounts, JUPLEND_AMM_PROGRAM_ID, JUPLEND_LIQUIDITY_PROGRAM_ID, JUPLEND_ORACLE_PROGRAM_ID, OFF_TOKEN_0, OFF_TOKEN_1.

Solana venue integration `juplend-amm` under `svm/venues/juplend-amm`.

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

### `juplendAmmSwapAccounts`

*Function* · `sdk/dist/svm/venues/juplend-amm/index.d.ts`

The 24-account order `swap_in`/`swap_out` share (see dex.json's IDL).
`make(role, addr, writable?)` builds one VenueAccount; `refFor` (default
identity) lets buildSwapV2 slot-namespace the pool-owned refs while
user-owned refs (owner/inAta/outAta) stay exactly as SwapUser gave them - the same shared-helper shape obric-v2's swapAccounts uses.

```typescript theme={null}
export declare function juplendAmmSwapAccounts(c: JuplendAmmPoolConfig, user: SwapUser, make: (role: string, addr: Address, writable?: boolean) => VenueAccount, refFor?: (role: string) => string): VenueAccount[];
```

### `JUPLEND_AMM_PROGRAM_ID`

*Variable* · `sdk/dist/svm/venues/juplend-amm/index.d.ts`

```typescript theme={null}
JUPLEND_AMM_PROGRAM_ID: Address<"jupZ4m2GqUCJ5iueMfzQf8khFfH31d4XAQt3RzCT9Vd">
```

### `JUPLEND_LIQUIDITY_PROGRAM_ID`

*Variable* · `sdk/dist/svm/venues/juplend-amm/index.d.ts`

```typescript theme={null}
JUPLEND_LIQUIDITY_PROGRAM_ID: Address<"jupeiUmn818Jg1ekPURTpr4mFo29p46vygyykFJ3wZC">
```

### `JUPLEND_ORACLE_PROGRAM_ID`

*Variable* · `sdk/dist/svm/venues/juplend-amm/index.d.ts`

```typescript theme={null}
JUPLEND_ORACLE_PROGRAM_ID: Address<"jupnw4B6Eqs7ft6rxpzYLJZYSnrpRgPcr589n5Kv4oc">
```

### `OFF_TOKEN_0`

*Variable* · `sdk/dist/svm/venues/juplend-amm/index.d.ts`

```typescript theme={null}
OFF_TOKEN_0 = 11
```

### `OFF_TOKEN_1`

*Variable* · `sdk/dist/svm/venues/juplend-amm/index.d.ts`

```typescript theme={null}
OFF_TOKEN_1 = 43
```

### `OFF_TOKEN_0_DECIMALS`

*Variable* · `sdk/dist/svm/venues/juplend-amm/index.d.ts`

```typescript theme={null}
OFF_TOKEN_0_DECIMALS = 75
```

### `OFF_TOKEN_1_DECIMALS`

*Variable* · `sdk/dist/svm/venues/juplend-amm/index.d.ts`

```typescript theme={null}
OFF_TOKEN_1_DECIMALS = 76
```

### `OFF_CENTER_PRICE`

*Variable* · `sdk/dist/svm/venues/juplend-amm/index.d.ts`

```typescript theme={null}
OFF_CENTER_PRICE = 109
```

### `OFF_SMART_COLLATERAL_ENABLED`

*Variable* · `sdk/dist/svm/venues/juplend-amm/index.d.ts`

```typescript theme={null}
OFF_SMART_COLLATERAL_ENABLED = 141
```

### `OFF_SMART_DEBT_ENABLED`

*Variable* · `sdk/dist/svm/venues/juplend-amm/index.d.ts`

```typescript theme={null}
OFF_SMART_DEBT_ENABLED = 142
```

### `OFF_FEE`

*Variable* · `sdk/dist/svm/venues/juplend-amm/index.d.ts`

```typescript theme={null}
OFF_FEE = 143
```

### `OFF_CENTER_PRICE_ADDRESS`

*Variable* · `sdk/dist/svm/venues/juplend-amm/index.d.ts`

```typescript theme={null}
OFF_CENTER_PRICE_ADDRESS = 166
```

### `OFF_IS_CENTER_PRICE_SHIFT_ACTIVE`

*Variable* · `sdk/dist/svm/venues/juplend-amm/index.d.ts`

```typescript theme={null}
OFF_IS_CENTER_PRICE_SHIFT_ACTIVE = 218
```

### `OFF_SWAP_AND_ARBITRAGE_PAUSED`

*Variable* · `sdk/dist/svm/venues/juplend-amm/index.d.ts`

```typescript theme={null}
OFF_SWAP_AND_ARBITRAGE_PAUSED = 219
```

### `OFF_POSITION_AMOUNT`

*Variable* · `sdk/dist/svm/venues/juplend-amm/index.d.ts`

```typescript theme={null}
OFF_POSITION_AMOUNT = 73
```

### `OFF_POSITION_CEILING`

*Variable* · `sdk/dist/svm/venues/juplend-amm/index.d.ts`

```typescript theme={null}
OFF_POSITION_CEILING = 81
```

### `CENTER_PRICE_SCALE`

*Variable* · `sdk/dist/svm/venues/juplend-amm/index.d.ts`

1 raw-unit-per-raw-unit price scale (empirically confirmed - see module doc).

```typescript theme={null}
CENTER_PRICE_SCALE = 1000000000000000n
```

### `FEE_SCALE`

*Variable* · `sdk/dist/svm/venues/juplend-amm/index.d.ts`

```typescript theme={null}
FEE_SCALE = 1000000n
```

### `JuplendAmmPoolConfig`

*Interface* · `sdk/dist/svm/venues/juplend-amm/index.d.ts`

```typescript theme={null}
export interface JuplendAmmPoolConfig extends PoolConfig {
    venue: typeof SLUG;
    swap0to1: boolean;
    token0: Address;
    token1: Address;
    tokenProgram0: Address;
    tokenProgram1: Address;
    tokenReserve0: Address;
    tokenReserve1: Address;
    vault0: Address;
    vault1: Address;
    rateModel0: Address;
    rateModel1: Address;
    liquidity: Address;
    positionKind: "supply" | "borrow";
    position0: Address;
    position1: Address;
    feePpm: bigint;
}
```

### `juplendAmm`

*Variable* · `sdk/dist/svm/venues/juplend-amm/index.d.ts`

```typescript theme={null}
juplendAmm: {
    slug: string;
    kind: "constant-product";
    programId: Address<"jupZ4m2GqUCJ5iueMfzQf8khFfH31d4XAQt3RzCT9Vd">;
    fetchPoolConfig(load: AccountLoader, pool: Address, swap0to1?: boolean): Promise<JuplendAmmPoolConfig>;
    quoteAccounts(cfg: PoolConfig): VenueAccount[];
    buildSwap(cfg: PoolConfig, user: SwapUser, amountIn: bigint): VenueSwap;
}
```

### `JUPLEND_SWAP_IN_DISCRIMINATOR`

*Variable* · `sdk/dist/svm/venues/juplend-amm/index.d.ts`

sha256('global:swap\_in')\[0..8] - exported for buildSwapV2's prefix.

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