# Asset Model

KRC-20 supports two deployment modes to facilitate support for different usage scenarios.

### Deploy - Mint

The token model that anyone can mint, with optional "Fair Mint" and "Pre Allocation".

* **Unique Ticker**: as the token name, which is globally unique and is set by the deploy operation.
* **Fair Mint**: all circulating tokens are minted via mint operation , with no reserved. Any mint operation that does not exceed the supply limit is considered valid.
* **Pre Allocation**: the deployer can pre-allocate a certain number of tokens to a specific address at deployment.

Deploy-Mint is designed for **community-driven** and **open deployment** scenarios, such as fair launches, event-based minting, ecosystem incentive credentials, Meme assets, and similar use cases. Under this model, token distribution is inherently **more open and transparent**, facilitating the formation of a broadly distributed initial holder base. An optional Pre-Allocation mechanism can be used to provide necessary initial allocations for the team, ecosystem partners, or early contributors, without undermining the overall openness of the distribution.

### Deploy - Issue

The token issuance mode, mint operation is not available.

* **Token Issuance**: only token owner can execute the issue operation. The total issuance amount cannot exceed the parameter "max". When "max" is set to zero, unlimited issuance is allowed.
* **Name & CA**: allow duplicate token names, distinguished by unique Contract Address(CA), automatically generated by protocol.
* **Pre Allocation**: like the Deploy-Mint mode, the deployer can pre-allocate a certain number of tokens to the token owner address at deployment.

Deploy-Issue is better suited to scenarios that require a **clearly defined issuer** and **explicit supply management**, such as governance tokens, points/voucher-style assets, stablecoins or asset-pegged tokens, and enterprise or in-application credit assets. In this model, the token owner performs Issue operations on demand. Assets with identical tickers can be differentiated via the **contract address (CA)**, which also accommodates practical requirements such as multiple issuers, multiple versions, or the coexistence of same-named assets.
