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

> Accessors: 5 exports of the svm module of @eco-incorp/sauce, including venue, venues, SvmVenueSlug, SvmVenueAccessor, SvmVenueAccessors.

`@eco-incorp/sauce/svm` is the Solana side: staging a program through the kitchen, resolving accounts against the compiler's account manifest, building and sending transactions, and verifying settle programs. Solana execution goes through the Kitchen client here; the SDK's SVM route helpers emit a legacy instruction that the released engine does not accept.

```typescript theme={null}
import { createSauceSvmClient } from "@eco-incorp/sauce/svm";
```

This page covers `sdk/dist/svm/accessors.d.ts`.

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

### `venue`

*Function* · `sdk/dist/svm/accessors.d.ts`

Import-based front door: `venue('raydium-cp-swap').swap(...)` - the
analogue of `descriptors/accessors.ts`'s `on(chainRef)`, for
`__ECO_ROUTES_NO_GLOBALS__` hosts and the TS2451 own-`const Solana` caveat.

```typescript theme={null}
export declare function venue(slug: SvmVenueSlug): SvmVenueAccessor;
```

### `venues`

*Function* · `sdk/dist/svm/accessors.d.ts`

The lazy, memoising tree the `Solana` global composes (see
../routes/globals.ts). Builds zero adapter wrappers until a namespace is
actually touched; two reads of the same namespace off one `venues()` call
return the identical object.

```typescript theme={null}
export declare function venues(): SvmVenueAccessors;
```

### `SvmVenueSlug`

*Type* · `sdk/dist/svm/accessors.d.ts`

Registered venue slugs only - see this module's own header for why the other \~77 are excluded.

```typescript theme={null}
export type SvmVenueSlug = RegisteredVenueSlug;
```

### `SvmVenueAccessor`

*Interface* · `sdk/dist/svm/accessors.d.ts`

One leaf: `Solana.<Venue>`. Every member forwards to the identically-shaped
`SvmVenueAdapter` member (`.adapter`) - an accessor call and a direct
adapter call are indistinguishable in behavior, errors, and returned
objects.

```typescript theme={null}
export interface SvmVenueAccessor {
    readonly slug: SvmVenueSlug;
    readonly kind: SvmVenueAdapter["kind"];
    readonly programId: Address;
    readonly adapter: SvmVenueAdapter;
    poolConfig(load: AccountLoader, pool: Address): Promise<PoolConfig>;
    quoteAccounts(cfg: PoolConfig): VenueAccount[];
    quoteSource(cfg: PoolConfig, i: number, amountIn: bigint): string;
    swap(cfg: PoolConfig, user: SwapUser, amountIn: bigint): VenueSwap;
    referenceQuote(cfg: PoolConfig, state: AccountBytesMap, amountIn: bigint, now: bigint): bigint;
}
```

### `SvmVenueAccessors`

*Type* · `sdk/dist/svm/accessors.d.ts`

The whole typed tree `venues()` returns - one namespace per registered adapter slug.

```typescript theme={null}
export type SvmVenueAccessors = {
    readonly [S in SvmVenueSlug as PascalOf<S>]: SvmVenueAccessor;
};
```
