> ## 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: pumpfun-bonding-curve

> 7 exports of the pumpfun-bonding-curve venue integration in @eco-incorp/sauce/svm, including PUMPFUN_BONDING_CURVE_PROGRAM_ID, PUMPFUN_BONDING_CURVE_USER_VOLUME_ACCUMULATOR_REF, PUMPFUN_BONDING_CURVE_ASSOCIATED_USER_VOLUME_ACCUMULATOR_REF, pumpfunBondingCurve, pumpfunBondingCurveUserVolumeAccumulatorPda, pumpfunBondingCurveAssociatedUserVolumeAccumulator.

Solana venue integration `pumpfun-bonding-curve` under `svm/venues/pumpfun-bonding-curve`.

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

### `PUMPFUN_BONDING_CURVE_PROGRAM_ID`

*Variable* · `sdk/dist/svm/venues/pumpfun-bonding-curve/index.d.ts`

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

### `PUMPFUN_BONDING_CURVE_USER_VOLUME_ACCUMULATOR_REF`

*Variable* · `sdk/dist/svm/venues/pumpfun-bonding-curve/index.d.ts`

The user-scoped remaining PDAs the CLASSIC v1 adapter shape does not (and cannot,
being pool-scoped) precompute: `user_volume_accumulator` and its wSOL ATA. Every
caller building a real CPI (or resolving these ladder refs) must derive them from
the REAL trading wallet at execute/resolve time - mirroring pumpswap's
`USER_VOLUME_ACCUMULATOR_REF` pattern, just two refs instead of one (buy\_exact\_quote\_in\_v2
/ sell\_v2 both need the account; sell\_v2 additionally needs its ATA at a
different fixed position - see buildSwapV2 below).

```typescript theme={null}
PUMPFUN_BONDING_CURVE_USER_VOLUME_ACCUMULATOR_REF = "pumpfun-bonding-curve-user-volume-accumulator"
```

### `PUMPFUN_BONDING_CURVE_ASSOCIATED_USER_VOLUME_ACCUMULATOR_REF`

*Variable* · `sdk/dist/svm/venues/pumpfun-bonding-curve/index.d.ts`

```typescript theme={null}
PUMPFUN_BONDING_CURVE_ASSOCIATED_USER_VOLUME_ACCUMULATOR_REF = "pumpfun-bonding-curve-associated-user-volume-accumulator"
```

### `pumpfunBondingCurve`

*Variable* · `sdk/dist/svm/venues/pumpfun-bonding-curve/index.d.ts`

```typescript theme={null}
pumpfunBondingCurve: {
    slug: "pumpfun-bonding-curve";
    kind: "constant-product";
    programId: Address;
    fetchPoolConfig(load: AccountLoader, pool: Address, mint: Address): Promise<PumpfunBondingCurvePoolConfig>;
}
```

### `pumpfunBondingCurveUserVolumeAccumulatorPda`

*Function* · `sdk/dist/svm/venues/pumpfun-bonding-curve/index.d.ts`

PDA(\["user\_volume\_accumulator", user], PROGRAM) - resolve at execute time with the real wallet.

```typescript theme={null}
export declare function pumpfunBondingCurveUserVolumeAccumulatorPda(user: Address): Promise<Address>;
```

### `pumpfunBondingCurveAssociatedUserVolumeAccumulator`

*Function* · `sdk/dist/svm/venues/pumpfun-bonding-curve/index.d.ts`

ATA(userVolumeAccumulator, TOKEN\_PROGRAM, wSOL) - resolve at execute time with the real wallet.

```typescript theme={null}
export declare function pumpfunBondingCurveAssociatedUserVolumeAccumulator(user: Address): Promise<Address>;
```

### `PumpfunBondingCurvePoolConfig`

*Interface* · `sdk/dist/svm/venues/pumpfun-bonding-curve/index.d.ts`

```typescript theme={null}
export interface PumpfunBondingCurvePoolConfig extends PoolConfig {
    venue: typeof SLUG;
    direction: "quoteToBase" | "baseToQuote";
    baseMint: Address;
    baseTokenProgram: Address;
    creator: Address;
    protocolFeeBps: bigint;
    creatorFeeBps: bigint;
    feeRecipient: Address;
    associatedQuoteFeeRecipient: Address;
    buybackFeeRecipient: Address;
    associatedQuoteBuybackFeeRecipient: Address;
    associatedBaseBondingCurve: Address;
    associatedQuoteBondingCurve: Address;
    creatorVault: Address;
    associatedCreatorVault: Address;
    sharingConfig: Address;
}
```
