I have set up a private ethereum blockchain and I have defined a new coin. When I send coins from one account to another through the smart contract the transaction is always mined even when the coins are not moved. Is there a way to use the blockchain data to verify if a transaction made permanent changes or not?

  • When you say "the coins are not moved", is there an error in the transaction? It sounds like there's a logic error in your contract that's killing the transaction. It will still get mined, but not have an effect on contract state. Can you post the contract code?
    – Jamie Hale
    Mar 26, 2018 at 15:14

2 Answers 2


Since byzantinum fork checking the status field in your transaction receipt should indicate if the transaction have failed or succeeded (Unless there's a bug in your contracts).

Before byzantinum fork there wasn't a direct way to ensure the transaction has succeeded; a common trick was to check that gasUsed < gas to indicate the transaction finished correctly (to be really sure you have to trace the transaction execution).


You need to check whether Transfer event was logged by your transaction.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.