> ## 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: the declaration and description of each of the 4 exports of @eco-incorp/sauce.

The `deposit` namespace emits a program that makes protocol deposits, withdrawals, stakes or wraps from data. `deposit.depositSource(spec)` returns a `function main()` program with each call and its approval, which `routes.compileSauceProgram` compiles; `deposit.listDepositTemplates()` lists the supported calls, one template per protocol and action (`aave-v3` `supply`, `lido` `stake`, `weth` `unwrap`, ...).

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

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

### `deposit.DEPOSIT_TEMPLATES`

*Variable* · `@eco-incorp/sauce`

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

### `deposit.depositTemplateFor`

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

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.

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

### `deposit.listDepositTemplates`

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

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

### `deposit.DepositKey`

*Type* · `@eco-incorp/sauce`

```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";
```


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