# Токэн үүсгэх

### Товчхон

TEO блокчэйн нь эфериумийн EVM(Ethereum virtual machine)-ийг дэмждэг тул дурын ухаалаг гэрээг хөгжүүлэх боломжтой юм. Энэ заавраар энгийн ERC20 стандартын токэнийг  [Remix Ethereum](https://remix.ethereum.org) түүл болон [Метамаск](https://metamask.io/download/)  хэтэвч ашиглан корэкс блокчэйн дээр үүсгэх заавар хүргэж байна.

TEo сүлжээнд токэн үүсгэхэд таны хаягт гүйлгээний шимтгэл төлөхөд хүрэлцэхүйц CRX хэрэгтэй.

{% hint style="info" %}
Энэ заавраар таныг хэдийн корэкс блокчэйнийг өөрийн метамаск хэтэвчтэй холбосон гэж үзэн үргэлжлэх тул хэрэв та хараахан холбож амжаагүй бол [ЭНЭ](/general/metamask.md) зааврын дагуу холбоорой.
{% endhint %}

### Remix IDE түүлийн тухай

Remix IDE нь эфериум болон эфериумд суурилсан блокчэйнүүд дээр ухаалаг гэрээг хамгийн хялбараар үүсгэж болох вэб аппликэйшн юм. Та ямар нэг нэмэлт програм эсвэл компайлар суулгах шаардлагагүй мөн блокчэйний нөүд асаах ч хэрэггүйгээр вэб хөтөч ашиглан өөрийн ухаалаг гэрээг үүсгэх боломжтой. [Нүүр хуудас](https://remix.ethereum.org) нь дараах байдлаар харагдана.

![Remix Ethereum Homepage](/files/uXfnUvlxCcH9ztjWQHRq)

### Remix-ээ метамасктай холбох

Метамаскын цонхноос "Corexchain Testnet"-ийг сонгоод, Remix-ийн хуудаснаас Remix -> Deploy & Run Transactions -> Environment цэсний "Injected Web3" хэсгийг сонгоход метамаскын холбох цонх нээгдэнэ. Тест токэн үүсгэх хаягаа сонгоод "Connect" товчийг дарж холбоно. Хэрэв бүх зүйл амжилттай болсон бол доорх зураг дээрх шиг "Custom (3305) network" гэж харагдана. Энэ зааврыг тест сүлжээн дээр үүсгэлээ. Хэрэв үндсэн сүлжээн дээр үүсгэх бол "Corexchain Mainnet"-ийг сонгоно.

![Connect metamask](/files/3euPgXqHEIxtqLOPZ0Kh)

### ERC20 токэн

File Explorers -> Create New File цэсээр "TestErcToken.sol" нэртэй файл үүсгээд "Test" нэртэй нийт хэмжээ 100000 TKN байдаг шинэ токэн үүсгэе.

```solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract Token is ERC20 {

    constructor () ERC20("Test", "TKN") {
        _mint(msg.sender, 1000000 * (10 ** uint256(decimals())));
    }


    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
}
```

Ухаалаг гэрээний кодоо бичиж дууссаны дараа Solidity Compiler цэсний "Compile TestErcToken.sol" товчыг дарж Solidity эх файлаа компайл хийцгээе.

Хэрэв компайл алдаагүй амжилттай болсон бол зүүн дээд хэсгийн Solidity Compiler -ийн icon зөв тэмдэгтэй болно.

![Source code](/files/OaRtC3VCejN80jx8Q16D)

Кодоо бичсэн, компайл асуудалгүй хийгдсэн бол бидэнд Deploy буюу токэноо блокчэйн дээр үүсгэх л үлдлээ. Ингэхийн тулд та "Deploy & run transactions" цэсний "Contract" жагсаалт дотроос сая үүсгэсэн "TestErcToken.sol" файлыг сонгоод "Deploy" товчыг дарна. Үүний дараа метамаскын шилжүүлэг хийх цонх нээгдэх ба шилжүүлгийг баталснаар Deploy хийх хүсэлт үүснэ.

![Deployment](/files/9U4ZYFkmcMKezYteZ0lH)

Бидний ухаалаг гэрээ үүсгэх хүсэлт амжилттай болсон бол "Deplioy & run transaction" цэсний доод хэсэгт "At Address" болон "Deployed Contracts"-ын утгууд автоматаар бичигдэнэ. "At Address" нь блокчэйн дээр үүссэн манай токэний хаяг бол "Deployed Contracts" дотор манай токэнийг функцүүдийг дуудаж шалгах боломжийг нээж өгнө. Доорх зурагт "Total Supply" функцийг дуудаж харуулсан жишээ оруулав. Мөн та мэтамаск хэтэвчний "Import token" цэсийг ашиглан шалгаж үзэх, шилжүүлэг хийх боломжтой.

![After deployment](/files/ExGp5APdH8o3wflKYfvP)

Блокчэйний [explorer](https://explorer.teo.mn)-ийн Contracts болон Transactions хуудсуудаас токэн үүссэн гүйлгээг харж болно.

![Explorer contract](/files/UdvCqqTWL37aRyQFOddP) ![Explorer transaction](/files/5gMKJNQppQwz3In5qdky)


---

# 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.teo.mn/development/token-creation.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.
