There are a few things you can do:
- If you have the extrinsic hash of the tx and its block number, using the polkadot app, you can explore the blocks and look for your transaction and check if its in block and if the execution was fine (extrinsicSuccess). But I don't think this is what you need.
- If you know the block number where your tx is in, query the block where your transaction is registered and inspect its events to check if the tx succeed or failed. You can use the Polkadot API to query the block has using its number like:
// Get the hash of the block nº1
const blockHash = await api.rpc.chain.getBlockHash(1);
// Get the block itself
const signedBlock = await api.rpc.chain.getBlock(blockHash);
- If you don't know your block number but know the extrinsic hash, you need to process each block (or a slice of them) until you find your extrinsic. This is needed because extrinsic hashes are not unique, but combining the block number + extrinsic hash is.
- You can also have an event listener running all the time and processing each block in order to keep track of every transaction execution.
This page is really useful to understand how to fetch things and determine the status of a transaction https://polkadot.js.org/docs/api/cookbook/blocks, but again, as long as you have some basic information of the transaction you should be able to make some queries that retrieve what you need.