> ## 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: Token accounts

> Token accounts: the declaration and description of each of the 5 exports of @eco-incorp/sauce/svm.

`@eco-incorp/sauce/svm` is the Solana side: the client (`createSauceSvmClient`), clusters, PDAs, account resolution against the compiler's account manifest, Kitchen and engine instructions, transactions and sending, token accounts, and compute planning for `@sauce/router`'s Solana venues. `@eco-incorp/sauce/svm/engine` exports the engine's wire format and instruction builders, `@eco-incorp/sauce/svm/verify` verifies settle programs and engine CPI data, and `@eco-incorp/sauce/svm/engine-artifacts` (Node only) returns file paths to the packaged engine and Kitchen binaries.

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

Generated from the type declarations of `@eco-incorp/sauce`.

### `resolveSvmToken`

*Function* · `@eco-incorp/sauce/svm`

Reads `mint` and resolves it: its token program, decimals and extensions. Throws when the account
is missing, is owned by neither token program, or is not an initialized mint.

```typescript theme={null}
export declare function resolveSvmToken(load: OwnedAccountLoader, mint: Address): Promise<SvmToken>;
```

### `svmTokenAccount`

*Function* · `@eco-incorp/sauce/svm`

`owner`'s associated token account for the mint, under the mint's own token program.

```typescript theme={null}
export declare function svmTokenAccount(token: Pick<SvmToken, "mint" | "tokenProgram">, owner: Address): Promise<Address>;
```

### `svmTokenReceived`

*Function* · `@eco-incorp/sauce/svm`

What the destination of a transfer of `amount` receives at `epoch`: `amount` less the fee.

```typescript theme={null}
export declare function svmTokenReceived(token: SvmToken, amount: bigint, epoch: bigint): bigint;
```

### `svmTokenToSend`

*Function* · `@eco-incorp/sauce/svm`

What to send at `epoch` for the destination to receive exactly `amount`.

```typescript theme={null}
export declare function svmTokenToSend(token: SvmToken, amount: bigint, epoch: bigint): bigint;
```

### `SvmToken`

*Interface* · `@eco-incorp/sauce/svm`

```typescript theme={null}
export interface SvmToken {
    readonly mint: Address;
    readonly tokenProgram: Address;
    readonly decimals: number;
    readonly extensions: MintExtensions;
    readonly transferRefusals: readonly string[];
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.