When a transaction is marked “Fail” on Etherscan.io, the funds the sender intended to send are not deducted but remains in the sender’s wallet. However, the“Gas Fee” will still be deducted. Below are some scenarios where your transaction might fail:
Out of Gas
When a transaction has failed due to “Out of Gas”, this means the gas limit set during the transaction is below the required gas (computational cost – see here) needed to perform the transaction. The value of the transaction does not leave your address but the gas fee is deducted because of the computational cost incurred. You will need to reinitiate the transaction with an appropriate gas limit. Wallet services will usually suggest a gas limit for your transactions. Alternatively, you can also look at similar/past transactions/contracts which have been successfully processed to find out the gas limit required.
Possible reasons for an “Out of Gas” error warning:
Insufficient amount of gas limit provided
If you are interacting with a Contract, the minimum amount of gas limit required is > 21,000 (try increasing your gas limit)
Contract execution exceeds the minimum gas limit required
Contract execution error occurred, but the VM execution continues until all of the gas limit is exhausted.
Bad Jump Destination
In the event of "Bad Jump Destination", the errors are related to the nature of the contract. It may be a generic failure caused by technical elements in the code of the contract. Please contact the contract creator for further assistance.
In the event of "Bad Instruction" the errors are related to the nature of the contract. It may be a generic failure caused by technical elements in the code of the contract. Please contact the contract creator for further assistance.
Possible reasons for a [Bad instruction]:
This indicates a logical error during contract execution.
if interacting with a Token Contract, it's possible that the:
Tokens are not transferable yet
if interacting with a TokenSale/ICO Contract, it's possible that the:
ICO has yet to start
ICO has ended
ICO has reached its maximum contribution limit
ERC-20 Token Transfer might have Failed
The most common reasons an ERC-20 token transfer might have failed are:
The Token contract is locked (tokens are not transferable yet)
The sending from account has an insufficient token balance
The Token contract does not emit a Transfer event even though the balance is actually deducted. (Not fully ERC-20 compliant)