> ## Documentation Index
> Fetch the complete documentation index at: https://docs.allium.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Fungible vs non-fungible

> The difference between interchangeable and unique onchain assets, and which Allium tables track each.

**Fungible** assets are interchangeable. One USDC is identical to and exchangeable for any other USDC, so all that matters is how much you hold. **Non-fungible** assets are not: each unit is a distinct item with its own identity, so what matters is *which* one you hold.

This distinction is not cosmetic. It changes the shape of the data, the questions you can ask, and how you price a holding.

## The comparison

|                      | Fungible                                               | Non-fungible                                                                           |
| :------------------- | :----------------------------------------------------- | :------------------------------------------------------------------------------------- |
| **Unit of account**  | An amount, divisible to many decimal places            | A whole item, identified by a token ID                                                 |
| **Balance means**    | "This address holds 1,250.45 of token X"               | "This address holds token X #4821 and #9107"                                           |
| **Price**            | One price per token, applies to every unit             | One price per item; two items in the same collection can differ by orders of magnitude |
| **Typical examples** | USDC, ETH, WBTC, governance tokens, tokenized equities | Profile-picture collections, art, in-game items, domain names, tokenized deeds         |
| **Common standards** | ERC-20, SPL Token                                      | ERC-721, ERC-1155, Metaplex NFT                                                        |

<Info>
  Native coins — ETH on Ethereum, SOL on Solana, BTC on Bitcoin — are fungible but are **not** tokens. They are tracked by the protocol itself rather than by a token contract, which is why they appear differently in raw data: as a `value` field on a transaction rather than as a token transfer event. Allium normalizes both into the transfers and balances tables so you do not have to special-case them.
</Info>

## Semi-fungible assets

Some standards sit in between. ERC-1155 lets a single contract hold both fungible and non-fungible token IDs: an in-game currency and a unique sword can live side by side, distinguished only by which token ID you look at. Tokenized real-world assets often behave this way too — 1,000 fractional shares of one specific building are fungible with each other and with nothing else.

When you see `token_id` **and** a quantity greater than one on the same record, you are looking at a semi-fungible asset.

## What this means in Allium's data

| Question                                        | Where to look                                                                                 |
| :---------------------------------------------- | :-------------------------------------------------------------------------------------------- |
| Fungible transfers and balances                 | [Token Transfers](/historical-data/token-transfers) and [Balances](/historical-data/balances) |
| Token metadata — name, symbol, decimals, supply | [Tokens](/historical-data/tokens/profile-beta)                                                |
| NFT sales, mints, and collections               | [NFTs](/historical-data/nft-trades)                                                           |
| Fungible token prices                           | [Prices](/historical-data/prices)                                                             |
| Wallet holdings across both, in realtime        | [Realtime APIs](/api/developer/overview)                                                      |

### Two traps to avoid

**Decimals are not optional.** A fungible token amount is stored onchain as an integer with no decimal point; the token's `decimals` value tells you where the point goes. USDC has 6 decimals, most ERC-20s have 18, and some have 0. Reading a raw amount without applying decimals produces numbers wrong by a factor of a trillion. Allium's transfer and balance tables expose both the raw and the decimal-adjusted amount — use the adjusted one unless you specifically need the raw integer.

**Valuing NFTs is not the same as valuing tokens.** There is no single price for a collection. Floor price, last sale, and average sale answer different questions, and thin markets make all three noisy. Be explicit about which one you are using, and see [wash trading flags](/historical-data/nft-trades/wash-trading-flags) before treating NFT volume as real demand.

## Next steps

* [Token standards](/guides/token-standards) — the specific interfaces behind each asset type
* [Balances](/historical-data/balances) — how Allium models holdings
