There should be a standard to detect if a smart contract follows certain standards - similar to Ethereum's [ERC-165](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md) or NEO's [NEP-10](https://github.com/neo-project/proposals/blob/master/nep-10.mediawiki).