> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usexfg.org/llms.txt
> Use this file to discover all available pages before exploring further.

# How commitment deposits work

> Lock HEAT for a term, earn variable yield from protocol fees, keep balance private.

A **commitment deposit (CD)** locks **HEAT** for a fixed term and earns interest funded by **protocol fees** (atomic swaps + Hearth CD share) — not by printing tokens.

## Prerequisite: mint HEAT first

```
XFG → mint HEAT → lock HEAT as CD
```

There is **no** XFG CD path. COLD / Ember\_Heat / “lock XFG” flows are **deprecated and removed**.

See [Mint HEAT](/features/heat/mint-heat).

## CD vs staking vs bank CD

|                | Bank CD | Staking             | Fuego HEAT CD                 |
| -------------- | ------- | ------------------- | ----------------------------- |
| Asset locked   | Fiat    | Protocol token      | **HEAT**                      |
| Yield source   | Bank    | Emissions / rewards | **Swap + Hearth fee revenue** |
| Rate           | Fixed   | Schedule            | Variable                      |
| Transferable   | Rarely  | Rarely              | Yes (commitment transfer)     |
| Balance public | Yes     | Often               | Hidden (commitment)           |

Do not call this “staking.”

## How interest is funded

Yield plumbing is fed by the **only two protocol fee streams**:

| Source                        | Rate                                       | CD-related share                                              |
| ----------------------------- | ------------------------------------------ | ------------------------------------------------------------- |
| Atomic swap (SwapXFG / DeXFG) | **2%** per swap (1% initiation + 1% claim) | **69%** of that fee → CD yield pool (`SWAP_FEE_CD_SHARE_PCT`) |
| Hearth trade                  | **1%** (`HEARTH_FEE_BPS`)                  | Hearth routing → CD accumulator                               |

Also from atomic swaps: **11%** Bonus Vault, **20%** Treasury — not paid as base CD pro-rata yield.

Mint premium is **0 bps** (goes nowhere) and the **0.1%** CD creation fee is a donation to @fuegoxfg — neither is protocol revenue.

## On-chain representation

Creating a CD produces a `TransactionOutputCommitment` with a **real term** (block/epoch length), **not** `HEAT_TERM` (mint marker).

At maturity you spend with a commitment spend that can claim interest validated against fee-pool accounting.

## Epochs and terms

| Network | Blocks per epoch                  | Approx. time                    |
| ------- | --------------------------------- | ------------------------------- |
| Mainnet | **900** (`EPOCH_DURATION_BLOCKS`) | \~**5 days** (at \~480s blocks) |
| Testnet | **10**                            | Fast epochs for testing         |

Protocol CD term bounds:

| Bound | Epochs | Approx. mainnet |
| ----- | ------ | --------------- |
| Min   | **6**  | \~1 month       |
| Max   | **72** | \~1 year        |

## Lifecycle

```
Mint HEAT
    ↓
Create HEAT CD (term in epochs / blocks)
    ↓
Epochs pass — fees accumulate
    ↓
Maturity
    ↓
Withdraw HEAT (+ interest)  OR  Rollover (new CD = principal + interest)
```

<Card title="Create a HEAT CD" icon="plus" href="/features/commitment-deposits/creating-deposits">
  Step-by-step after you have HEAT.
</Card>
