> ## 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: one-intro-swap

> 10 exports of the one-intro-swap venue integration in @eco-incorp/sauce/svm, including oneIntroSwapConfig, fetchOneIntroSwapPoolConfig, ONE_INTRO_SWAP_PROGRAM_ID, ONE_INTRO_SWAP_METADATA_STATE, ONE_INTRO_SWAP_FEE_OWNER_A, ONE_INTRO_SWAP_FEE_OWNER_B.

Solana venue integration `one-intro-swap` under `svm/venues/one-intro-swap`.

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

### `oneIntroSwapConfig`

*Function* · `sdk/dist/svm/venues/one-intro-swap/index.d.ts`

```typescript theme={null}
export declare function oneIntroSwapConfig(base: PoolConfig): OneIntroSwapPoolConfig;
```

### `fetchOneIntroSwapPoolConfig`

*Function* · `sdk/dist/svm/venues/one-intro-swap/index.d.ts`

```typescript theme={null}
export declare function fetchOneIntroSwapPoolConfig(load: AccountLoader, pool: Address): Promise<OneIntroSwapPoolConfig>;
```

### `ONE_INTRO_SWAP_PROGRAM_ID`

*Variable* · `sdk/dist/svm/venues/one-intro-swap/index.d.ts`

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

### `ONE_INTRO_SWAP_METADATA_STATE`

*Variable* · `sdk/dist/svm/venues/one-intro-swap/index.d.ts`

The ONE known `MetadataState` - see the module header's "global, not
per-pool" evidence. Required by every swap (accounts\[0], read-only).

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

### `ONE_INTRO_SWAP_FEE_OWNER_A`

*Variable* · `sdk/dist/svm/venues/one-intro-swap/index.d.ts`

The two fixed fee-collector owners - ground-truthed via the real mainnet
SOL/USDC market's four fee token accounts (2 per mint side): each owner's
ATA for whichever mint is being DEPOSITED is where that stream's cut
lands (see ./ladder.ts for the exact per-swap amount, always
`floor(amountIn / 100_000)` per stream).

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

### `ONE_INTRO_SWAP_FEE_OWNER_B`

*Variable* · `sdk/dist/svm/venues/one-intro-swap/index.d.ts`

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

### `OFF_VIRTUAL_RESERVE0`

*Variable* · `sdk/dist/svm/venues/one-intro-swap/index.d.ts`

```typescript theme={null}
OFF_VIRTUAL_RESERVE0 = 153
```

### `OFF_VIRTUAL_RESERVE1`

*Variable* · `sdk/dist/svm/venues/one-intro-swap/index.d.ts`

```typescript theme={null}
OFF_VIRTUAL_RESERVE1 = 233
```

### `TOKEN_ACCOUNT_AMOUNT_OFFSET`

*Variable* · `sdk/dist/svm/venues/one-intro-swap/index.d.ts`

SPL token account `amount` (u64 LE) offset - standard Tokenkeg layout.

```typescript theme={null}
TOKEN_ACCOUNT_AMOUNT_OFFSET = 64
```

### `OneIntroSwapPoolConfig`

*Interface* · `sdk/dist/svm/venues/one-intro-swap/index.d.ts`

```typescript theme={null}
export interface OneIntroSwapPoolConfig extends PoolConfig {
    venue: typeof SLUG;
    authority: Address;
    mint0: Address;
    vault0: Address;
    mint1: Address;
    vault1: Address;
    feeA0: Address;
    feeB0: Address;
    feeA1: Address;
    feeB1: Address;
    direction: "0to1" | "1to0";
}
```
