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

> 4 exports of the pumpswap venue integration in @eco-incorp/sauce/svm, including PUMPSWAP_PROGRAM_ID, USER_VOLUME_ACCUMULATOR_REF, PumpswapPoolConfig, pumpswapAdapter.

Solana venue integration `pumpswap` under `svm/venues/pumpswap`.

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

### `PUMPSWAP_PROGRAM_ID`

*Variable* · `sdk/dist/svm/venues/pumpswap/index.d.ts`

```typescript theme={null}
PUMPSWAP_PROGRAM_ID: Address<"pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA">
```

### `USER_VOLUME_ACCUMULATOR_REF`

*Variable* · `sdk/dist/svm/venues/pumpswap/index.d.ts`

user\_volume\_accumulator (buy path only) is a PDA over the user's own wallet
address - \['user\_volume\_accumulator', user] under the amm program - so the
adapter cannot resolve it from pool state. buildSwap attaches it under this
ref for the caller to resolve.

```typescript theme={null}
USER_VOLUME_ACCUMULATOR_REF = "pumpswap-user-volume-accumulator"
```

### `PumpswapPoolConfig`

*Interface* · `sdk/dist/svm/venues/pumpswap/index.d.ts`

```typescript theme={null}
export interface PumpswapPoolConfig extends PoolConfig {
    venue: "pumpswap";
    direction: "quoteToBase" | "baseToQuote";
    baseMint: Address;
    quoteMint: Address;
    baseVault: Address;
    quoteVault: Address;
    baseTokenProgram: Address;
    quoteTokenProgram: Address;
    coinCreator: Address;
    canonical: boolean;
    lpFeeBps: bigint;
    protocolFeeBps: bigint;
    creatorFeeBps: bigint;
    disableFlags: number;
    protocolFeeRecipient: Address;
    protocolFeeRecipientTokenAccount: Address;
    coinCreatorVaultAuthority: Address;
    coinCreatorVaultAta: Address;
    poolV2?: Address;
    buybackFeeRecipient: Address;
    buybackFeeRecipientTokenAccount: Address;
}
```

### `pumpswapAdapter`

*Variable* · `sdk/dist/svm/venues/pumpswap/index.d.ts`

```typescript theme={null}
pumpswapAdapter: {
    slug: string;
    kind: "constant-product";
    programId: Address<"pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA">;
    fetchPoolConfig(load: AccountLoader, pool: Address): Promise<PumpswapPoolConfig>;
    quoteAccounts(cfg: PoolConfig): VenueAccount[];
    emitQuote(cfg: PoolConfig, i: number, amountIn: bigint): string;
    buildSwap(cfg: PoolConfig, user: SwapUser, amountIn: bigint): VenueSwap;
    referenceQuote(cfg: PoolConfig, state: AccountBytesMap, amountIn: bigint, _now: bigint): bigint;
}
```
