How to distinguish Smart Contracts from regular payments

Hi,

I’m completely new into blockchain.

We are trying to build a system, which allows us to compare multiple blockchains when it comes to the number of payments done and it’s total value, plus number of Smart Contracts. To make it happen, we need to be able to distinguish these two things from the regular stream of the transactions.

My question is, having the model described on your website here how I can do that. Which field indicates that we are dealing with Smart Contract or not. Is this even possible to do?

As example I can tell that in Ethereum, it’s possible by the data field which is present in every transaction (the name of this field is input when reading it). When it’s empty, we are dealing with regular payment, otherwise with Smart Contract. At least according to this document.

Thanks for help in advance,
Adrian

Contract address is formed from the hash of the contract code.
I don’t think you can distinguish it from a regular address.

Before an address is ever used as a sender of a transaction, you cannot distinguish multisig addresses from logicsig/smart contract addresses. (You may be able to distinguish normal signature addresses from multisig and logicsig addresses with some probability, but I did not check, because signature addresses might satisfy some pattern.)

As soon as an address is used as a sender of a transaction recorded on the blockchain, you can learn whether it was a signature, a multisig, or a logicsig address by looking how the transaction was signed.

Note that Algorand has also the notion of delegated logicsig addresses (https://developer.algorand.org/docs/asc).