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

# deposit: Deposit templates

> Deposit templates: 4 exports of the deposit module of @eco-incorp/sauce, including DEPOSIT_TEMPLATES, depositTemplateFor, listDepositTemplates, DepositKey.

The `deposit` namespace emits deposit programs from protocol templates listed under `DepositKey`. Compile with `baseDirs: [...deposit.DEPOSIT_BASE_DIRS]`, or `COMPOSED_BASE_DIRS` for a swap-then-deposit program.

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

This page covers `sdk/dist/deposit/templates.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>

### `deposit.DEPOSIT_TEMPLATES`

*Variable* · `sdk/dist/deposit/templates.d.ts`

```typescript theme={null}
DEPOSIT_TEMPLATES: Readonly<Record<DepositKey, DepositTemplate>>
```

### `deposit.depositTemplateFor`

*Function* · `sdk/dist/deposit/templates.d.ts`

Looks up a template by `protocol:action`, throwing (and listing every registered key) rather
than letting a caller emit a program that would misbehave on-chain - same posture as
`toSwapParams`'s guard on `UndispatchablePoolType`.

```typescript theme={null}
export declare function depositTemplateFor(protocol: string, action: string): DepositTemplate;
```

### `deposit.listDepositTemplates`

*Function* · `sdk/dist/deposit/templates.d.ts`

```typescript theme={null}
export declare function listDepositTemplates(): readonly DepositTemplate[];
```

### `deposit.DepositKey`

*Type* · `sdk/dist/deposit/templates.d.ts`

```typescript theme={null}
export type DepositKey = "weth:wrap" | "weth:unwrap" | "aave-v3:supply" | "aave-v3:withdraw" | "spark:supply" | "spark:withdraw" | "compound-v3:supply" | "euler-v2:deposit" | "erc4626:deposit" | "lido:stake" | "lido:wrap";
```
