# ADR 004: Token fractions

## Status

| Category                  | Status           |
| ------------------------- | ---------------- |
| **Authors**               | Alexandr Kolesov |
| **ADR Stage**             | ACCEPTED         |
| **Implementation Status** | Implemented      |
| **Start Date**            | 2021-09-08       |

## Summary

The aim of this ADR is to define the smallest fraction for CHEQ tokens.

## Context

Cosmos SDK doesn't provide native support for token fractions. The lowest denomination out-of-the-box that can be used in transactions is `1token`.

To address this issue, similar Cosmos networks assume that they use **N** digits after the decimal point and multiply all values by **10^(-N)** in UI.

### Examples of lowest token denominations in Cosmos

Popular Cosmos networks were compared to check how many digits after the decimal point are used by them:

* Cosmos: **6**
* IRIS: **6**
* Fetch.ai: **18**
* Binance: **8**

## Decision

Fractions of CHEQ tokens will be referred by their [SI/metric prefix](https://en.wikipedia.org/wiki/Metric_prefix#List_of_SI_prefixes), based on the power of 10 of CHEQ tokens being referred to in context. This notation system is common across other Cosmos networks as well.

It was decided to go with **10^-9** as the smallest fraction, with the whole number token being 1 CHEQ. Based on the SI prefix system, the lowest denomination would therefore be called "**nanocheq**".

## Consequences

### Backward Compatibility

* There is no backward compatibility. To adjust the number of digits after the decimal point (lowest token denomination), the network should be restarted.

### Positive

* The power of 10 chosen for the lowest denomination of CHEQ tokens is more precise than for Cosmos ATOMs, which allows transactions to be defined in smaller units.

### Negative

* This decision is hard to change in the future, as changes to denominations require significant disruption when a network is already up and running.

### Neutral

* N/A

## References

* [Cosmos ADR proposal to add coin metadata](https://docs.cosmos.network/sdk/v0.50/build/architecture/adr-024-coin-metadata)


---

# 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.cheqd.io/node/architecture/adr-list/adr-004-token-fractions.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.
