The Ethereum's
json RPC api
has a format with fields like for ex - from, to, data, value, gas, gasprice… etc.
When the value of ‘to’ field is missing or empty, and there is ‘data’ field, the request is about deploying a smart contract.
When the value of ‘to’ field is present, and there is ‘data’ field, the request is about calling a function of a smart contract.