TzKt can recognize the FA1.2 and FA2 tokens like this one: https://ghostnet.tzkt.io/KT1WkGNtcuGq6Rxh8CPSn9J1z7vgxsupBYps/operations/

Here, it understands that it is a token with GaGe as its symbol. And, then also sends it through its API.

But, when I try to deploy my own test FA1.2 Token, it doesn't recognize it. I also added the contract metadata and the token metadata as per the standards. Can anyone help me understand what am I missing here, and how TzKt checks if a smart contract is of a token?

2 Answers 2


In short: in your particular case the tokens will be recognized after the first transfer call.

Why? Your contract doesn't fully implement the FA standard (in particular, according to the standard, you must have a ledger bigmap called %ledger, but in your contract it's called %balances). Therefore, tzkt couldn't recognize it automatically when the contract was originated. However, tzkt is smart enough to try to recognize it later, by analyzing contract's behavior when you do operations with the tokens. So, there is nothing to worry about :)

  • 1
    Awesome! Now I understand. Thanks :) Oct 27, 2022 at 11:01

It is correctly recognized by TzKT. You can see it at the top left, below the contract address it says financial asset.

You can also see it by requesting their API, it recognized the contract as being compliant with FA1.2:

$ curl https://api.ghostnet.tzkt.io/v1/contracts/KT1JDDJTABTbMrAqL3QdHwqaAam2FBjF9wLq
{... "tzips":["fa12"]...}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.