# What would be the best way to implement a non-transfer "loyalty points" with ASA?
This might be out of context but can this [Custom Transfer Logic](https://developer.algorand.org/solutions/assets-and-custom-transfer-logic/) be done using Reach? As far as I know, Reach can’t do transactions group.

# How to tell whether an asset is NFT
The only different between the two tokens I mention above is that the NFT has ipfs url and the FT has http url. Maybe that is how Pera team classify tokens?

I want to make an Algorand wallet app that can classify ASAs to Assets or NFTs. Given an ASA. How can I tell whether it is an asset or an NFT? On Pera wallet:

This is an NFT: [Algorand](https://testnet.algoexplorer.io/asset/97602862)

This is not an NFT: [Algorand](https://testnet.algoexplorer.io/asset/97603053) Both have decimals = 0, supply = 1 and an URL.

# PyTeal App.localPut does not work as I expected
Amazing! Thanks for quick and detailed answer bro. It works!

My code:
Seq([
Assert(
Txn.application_args[0] == Bytes("b")
),
App.localPut(Int(0), Bytes("T1"), Btoi(Txn.application_args[1])),
App.localPut(Int(0), Bytes("T2"), Btoi(Txn.application_args[2])),
Int(1)
])

Script:
export TOKEN1_INDEX="35…"

# Couldn't sign tx with kmd: key does not exist in this wallet
Thanks for the quick reply and warm welcome! Indeed I have to use logicsig to sign the third transaction goal clerk sign -i split-2.tx -o signout-2.tx to goal clerk sign -i split-2.tx -o signout-2.tx -p ../build/escrow.teal. It works now.
