Skip to main content
All CollectionsTransactions / TagsCommon scenarios
Reflection, Taxed and Rebase tokens
Reflection, Taxed and Rebase tokens
Written by Robin Singh
Updated over a week ago

Cryptocurrencies with advanced tokenomics

Within their smart contract, cryptocurrencies can have built-in logic that influences the behavior of the token and its supply. The most popular tokenomics are:

  • Rebasing tokens (AMPL): The supply of this token changes dynamically and, with it, the amount of tokens held in the wallet (without any transaction happening on the blockchain).
    So you may currently own 10 AMPL, and the next month you will own 7 AMPL without any action taken (no deposit, withdrawal, etc.)

  • Taxed tokens (MINIDOGE, SAFEMOON): Any transaction with this token (withdrawal, trade) incurs a "tax" - so you spend more coins than was reported on the blockchain. The tax is deducted from your wallet inside of the smart contract only.

  • Tokens with reflections (MINIDOGE, SAFEMOON): Tokens with a built-in tax are usually accompanied by reflections - part of the collected "tax" is distributed evenly between the rest of the holders of this token (so you "earn" more tokens just by holding it). Those reflections, just like the tax, are not distributed as transactions on the blockchain and are only happening inside of the smart contract.

Documenting the reflections/taxes in Koinly

Since these tokenomics are not reported as transactions on the blockchain, they will not be imported to Koinly automatically and need to be added manually.
Our team is working on better automatic solutions for these tokens.

Accounting for the tax

To add a missing tax transaction, you need to add a manual withdrawal equal to the tax amount (it's usually 5% or 10% of the amount withdrawn) and tag it as a Cost. You should do this for every sale/withdrawal of this token.

Accounting for reflections

Since it's basically impossible to know how many tokens you got via reflections, we usually recommend adding the reflections whenever you encounter a Missing purchase history error (after accounting for the taxes).

Accounting for rebases

Rebasing tokens should be treated just like any other token that has undergone a rebase as in our article on Rebases / Swaps. You will most likely identify that your token has undergone a rebase due to a Missing purchase history error or incorrect balance.

Documenting reflections based on transactions

The initial status of transactions after syncing the wallet is as below:


Every disposal (withdrawal, trade) of a taxed token incurs a tax. For SAFEMOON it's 10%. So two manual transactions tagged as Cost should be added, one for each trade, the amount calculated as 10% of the amount being sold or traded:


After that, it's clear that there's a lot of SAFEMOON missing (you can see the Missing purchase history error) - assuming that we already added all the relevant transactions, the missing SAFEMOON has to be the acquired reflections we didn't account for yet - these have to be added at least before the transaction showing the error, the amount exactly what is missing:


Documenting reflections based on the current balance

The instructions above show an absolute minimum of adjustments necessary, where the rewarded reflections are added on a "per need" basis. It's possible that in your tax jurisdiction, this should be done more often (daily, weekly).

You can check how many reflections of a single currency you acquired since the last sync of your Koinly wallet - the reported imbalance will signal the difference between the number of tokens calculated in Koinly (based on previous transactions) and the current balance of your tokens (as reported by the smart contract).


The error above signifies that Koinly has -45068598.100481 fewer SAFEMOON tokens than is reported by the explorer. Assuming that all the other transactions (and manual taxes) were accounted for, this means that a deposit tagged as a "Reward" of -45068598.100481 SAFEMOON should be added with today's date to this wallet, to account for the reflections "as of today".

This cannot be done retroactively. If you need to add your reflections every day, you need to check the imbalance in Koinly every day and add the difference manually - there is no "balance history" for those types of tokens.

If in doubt, consider contacting a crypto-aware tax accountant to ask them how often those reflections need to be added. Because of the nature of this type of token, it's practically impossible to get the historical data - if you need to do the transactions daily, you need to check the current status of your SAFEMOON holdings every day in Koinly.

๐ŸŸก Note This article applies to all rebase tokens, reflection tokens, and taxed tokens, such as OHM, AMPL, KLIMA, TIME, ROME, HEC, SPA, FORT, SAFEMOON, SFM, MINIDOGE, BONFIRE, EGC, RFI, FLOKI, NFTART, and many more

Did this answer your question?