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

# Mint and Burn

> WKRC supply changes only through governance-approved mint and burn operations tied to real KRW fiat movements — not through algorithmic inflation.

> New WKRC enters circulation only when a licensed institution deposits KRW. It leaves circulation only when a holder redeems KRW. No minting happens without a corresponding fiat movement.

## Why supply changes

On most blockchains, the native token supply inflates through block rewards. WKRC has no block rewards. Supply is controlled entirely through two operations:

| Operation | Trigger                                  | Who initiates                      |
| --------- | ---------------------------------------- | ---------------------------------- |
| Mint      | Fiat deposited into a collateral account | Approved minter (GovMinter quorum) |
| Burn      | Holder requests KRW redemption           | Approved minter (GovMinter quorum) |

Neither operation can proceed without quorum approval from multiple minter members. No single minter can unilaterally issue or destroy WKRC.

## The mint flow

```text theme={null}
KRW deposit detected → mint proof created → GovMinter proposal submitted
→ minter quorum reached → NativeCoinAdapter.mint() executed
→ Transfer(0x0, beneficiary, amount) emitted
```

Each mint is linked to a unique `depositId` from the banking system. The same `depositId` cannot be used twice — preventing double minting.

## The burn flow

```text theme={null}
KRW redemption requested → burn proof created → GovMinter proposal submitted
→ minter quorum reached → NativeCoinAdapter.burn() executed
→ Transfer(from, 0x0, amount) emitted
→ KRW returned off-chain
```

## What this means for your app

**Total supply is auditable.** Every `Mint` and `Burn` event on the NativeCoinAdapter maps to a real-world fiat transaction. You can track `totalSupply()` changes on-chain and verify they correspond to events.

**Supply changes are predictable in cadence.** Minting requires off-chain fiat settlement plus on-chain quorum voting — it is not instantaneous. Supply does not spike from block-reward inflation.

**Balances do not disappear without a transaction.** The only way an address loses WKRC is through an explicit transfer or a burn that includes their address in the `from` field. Governance cannot confiscate balances unilaterally.

**`Transfer(0x0, beneficiary, amount)` signals a mint.** If you index ERC-20 `Transfer` events from `0x0000000000000000000000000000000000000000`, those are mint events. Burns are `Transfer(from, 0x0, amount)`.

## Key contract addresses

| Contract          | Address                                      | Role                                          |
| ----------------- | -------------------------------------------- | --------------------------------------------- |
| NativeCoinAdapter | `0x0000000000000000000000000000000000001000` | Executes mint/burn, emits ERC-20 events       |
| GovMinter         | `0x0000000000000000000000000000000000001003` | Manages proposals and quorum voting           |
| GovMasterMinter   | `0x0000000000000000000000000000000000001002` | Controls which addresses are approved minters |

## Developer benefits

* Stable, auditable supply — no surprise inflation from block rewards
* Standard ERC-20 events for mints and burns — index `Transfer` from/to `address(0)`
* `totalSupply()` on NativeCoinAdapter reflects the true circulating supply at any block

## Related

* [WKRC Gas Token](/en/v0.3/learn/wkrc-gas-token) — how WKRC works as both gas and stablecoin
* [Governance Overview](/en/v0.3/learn/governance-overview) — GovMinter and GovMasterMinter in context
* [Contract Addresses](/en/v0.3/reference/contract-addresses) — full address table
