# Tokens

### <mark style="color:purple;">**What are these tokens and what are they for?**</mark> <a href="#what-are-these-tokens-and-what-are-they-for" id="what-are-these-tokens-and-what-are-they-for"></a>

The most used examples in this ecosystem are the ERC20 standard Tokens.

There are several use cases for creating these tokens: Equity, Utility, Stable coin, and many others.

Tokens can be created for use within an ecosystem, can be sold in secondary markets, and much more.

### <mark style="color:purple;">**And how do I apply this to my business?**</mark> <a href="#and-how-do-i-apply-this-to-my-business" id="and-how-do-i-apply-this-to-my-business"></a>

Creating a currency can have several different use cases.

Here is a list of the most used:

* Currency or credits for internal use in an ecosystem or application
* Rewards programs for users
* Creation of coins for DeFi or Exchanges
* Representation of asset-backed currencies or fiat currencies
* Use your creativity!

It is important to note that these tokens (currencies), as they exist in the blockchain, are likely to be traded in secondary markets by their custodian holders. **And that's not a bad thing!**

### <mark style="color:purple;">**What steps should I follow to have my asset available on the blockchain?**</mark> <a href="#what-steps-should-i-follow-to-have-my-asset-available-on-the-blockchain" id="what-steps-should-i-follow-to-have-my-asset-available-on-the-blockchain"></a>

First of all, you need to plan and define very well the entire ecosystem that this asset will be inserted. It’s not recommended just creating a currency and playing in the market because the chances of something going wrong are huge.

1. Define your **use case** and business rules
2. Define the **blockchain protocol** that will be used, according to your need. Check performance, scalability, market cap, traded volumes and other infos!
3. Set the **Tokenomics** of your asset > stable coin? total supply? This is very important! Check the jurisdiction that you're inserted.
4. Define the way you want to present your asset to the market - **Name, Symbol and Decimals**
5. Define the **wallets** that will manage this asset. Any of your users will be able to have a wallet? Your business rules!
6. **Publish** this token on a **Testnet** and do as much testing as you can (don’t forget to use the admin wallet)
7. After testing the token, the ecosystem that involves the token and security factors, deploy the asset on the protocol **Mainnet**. This will cost you some % fees.
8. Your currency is **available** for official use!

### <mark style="color:purple;">Information and Functionalities of ERC20 Tokens:</mark>

#### <mark style="background-color:purple;">Your Token must have:</mark>

* **Name** - the complete way that holders, users and whoever sees your token on blockchain;
* **Symbol** - the way that you want your token to be presented - examples: MANA, SOl, ETH, DOGE. Make an impact!
* **Decimals** - this is extremely important according to the use case you chose. Beware - Ethereum based protocols allow up to 18 decimal places (fractions). But there are specific details for defining decimals - example Stable Coins.

{% hint style="info" %}
If you need some help to define your Tokens Structure, call us!
{% endhint %}

#### <mark style="background-color:purple;">Managing your Token:</mark>

Once published on Testnet or Mainnet, your token can be managed through the following functions and informations:

**Total Supply** -  allows you to see the total amount of your token in the market.

**Balance Of -** allows you to see how much a wallet holds of your token.

**Mint** - creates `amount` tokens and assigns them to `account`, increasing the total supply. It's like "printing money".

**Burn - d**estroys `amount` tokens from `account`, reducing the total supply.

**Transfer -** Emitted when `value` tokens are moved from one account (`from`) to another (`to`).

{% hint style="info" %}
There are many other complementary functionality possible in an ERC20 token. For more information check the OpenZeppelin docs <https://docs.openzeppelin.com/contracts/2.x/erc20>
{% endhint %}


---

# 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.cryptum.io/english/community-edition/sdk-guides/tokens.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.
