Given that we have a Blockchain with smart contracts. We have end users operating the platform for some time. Now one user wants to verify the claim of a transaction. Example, I have to prove that last month I have transferred some amount from my account to another user account.
This is a little unclear because you say
with smart contracts and then
claim of a transaction which sounds like any transaction - not necessarily to your contract.
A contract state will update when the transaction is observed. For example, from Alice to Bob, transfer X tokens in an ERC20 contract. The fact of this transaction is implied in the balances of both users, in the contract. There is nothing further to prove. So click your heels together. You're already home.
There are some smart contract design nuances that may or may not exist. Suffice it to say that whatever is important for the use-case ought to be conveniently provable. That wouldn't include going out of one's way to check arbitrary transactions because other patterns already exist:
- Event emitters should fire for every on-chain state change, so users can subscribe to those. Didn't hear about it? It didn't happen.
- There is a protocol-level facility to check the status of a specific transaction.
Common cases exist where one wants to confirm the existence of a specific transaction. For example, you bought my boat and before you sail away I want to be sure you haven't tricked me. In those cases, the transaction hash is the unique identifier for the transaction in question. You would give me the transaction hash, off-chain, so I can verify it myself. We just have to get the receipt and confirm it is mined in a block some time ago and the transaction was successful (e.g. it wasn't rejected for some reason).
A block explorer can help check specific transactions with no code or command line. It depends, of course, on trusting the source.
If one wants to personally verify or programmatically check then the CLI or a script can use a Web3.js method:
Deep down, these libraries (there are several in various languages) interact with the JSON-RPC interface of the Ethereum node which one can talk to directly.
Hope it helps.