The comparison
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.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 seetoken_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
Two traps to avoid
Decimals are not optional. A fungible token amount is stored onchain as an integer with no decimal point; the token’sdecimals 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 before treating NFT volume as real demand.
Next steps
- Token standards — the specific interfaces behind each asset type
- Balances — how Allium models holdings