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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs-kasplex.gitbook.io/krc20/protocols/asset-model.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
