Learn about Ethereum

In this article, we take a deep dive into the world of Ethereum and include everything you would ever want to know about Ethereum, including its network fees and GAS, Nonces and transactions, and finally some common errors you may come across.


In this Article:

What is Ethereum?
Ethereum GAS
  • What is a GAS price?
  • How much do I pay for an Ethereum transaction?
  • Ethereum Nonces
    Ethereum Errors
    Other fantastic Exodus Ethereum Resources

    What is Ethereum

    All about Ethereum

    Ethereum is a blockchain network that went live on 30 July, 2015. It was initially proposed by programmer Vitalik Buterin.

    Ethereum is an open-source blockchain network that supports smart contracts. The native cryptocurrency of the Etheruem Blockchain is the Ether (ETH) cryptocurrency, that is used to power the network.

    Ethereum is also home to thousands of ERC20 tokens (fungible tokens), and ERC721 tokens (non-fungible tokens) as well as many other decentralized apps and trying to redefine the internet with Web 3.0 - a decentralized internet.

    Why Ethereum is powerful

    Ethereum is a Turing complete blockchain platform that supports the creation of decentralized apps, custom tokens, and general programs using smart contracts - let’s unpack this!

    In essence, Ethereum is a very powerful blockchain technology that allows anyone to build their own programs that can run on the ETH blockchain network. The fact that Ethereum is Turing complete is important, as it is the reason why Ethereum is so powerful. Turing complete means you can code pretty much anything you can think of and it will run on the ETH network. This also means that it can implement and understand any future coding ideas too.

    When you build a decentralized app on Ethereum, what you are doing is writing code like a normal program, a program in Ethereum is called a smart contract. The term "smart contract" is another way of saying computer program.

    Your smart contract is forever saved on the Ethereum blockchain and it is immutable once you deploy it. Meaning that once your program goes “live” on the ETH network, the code can’t be changed. This in-built safety feature allows you to trust that your code can’t be tampered with once it is on the ETH network, making it an incredibly secure platform to run your programs.


    Ethereum GAS

    What is GAS?

    Straight from ethereum.org we see that GAS is:

    “Gas refers to the unit that measures the amount of computational effort required to execute specific operations on the Ethereum network.”

    What does this mean?

    Every transaction on the Ethereum network will take up computer power and resources and therefore will have some sort of network fee associated with the transaction. GAS is the name given to this network fee you must pay. GAS is given in small denominations of ETH called GWEI.

    What is GWEI?

    GWEI is a smaller unit of ETH where:

    1 GWEI = 0.000000001 ETH (or 10-9 ETH)

    The reason GWEI is used for transaction fee prices is because transaction fees on the Ethernet network are usually not too expensive, and has been found to most easily fit into the GWEI denomination of ETH, so it is easier to say “my transaction fee cost 50 GWEI” rather than "my transaction fee cost 0.00000005 ETH” or "my transaction fee cost 50000000000 WEI".

    Ethereum actually has a lot of other denominations, most notably WEI which is the smallest denomination of ETH, and GWEI which is a GIGA-WEI, where:

    1 WEI = 0.000000001 GWEI = 0.000000000000000001 ETH

    You can see more denominations of ETH here: ETH Unit Converter.

    What is a GAS Limit?

    GAS Limit is set for every transaction on the ETH network and refers to the maximum amount of GAS a particular transaction is willing to pay to confirm itself.

    The minimum GAS limit is set at 21,000 across the ETH network and there is no upper limit set for the network. The upper limit will be set by the user or wallet sending the transaction and will depend on the current market conditions as to what the limit will be.

    The GAS Limit’s main use is to ensure you do not overpay in network fees, as the GAS limit will ensure that if your transaction is taking up more network resources than originally expected, the transaction will fail with Out of GAS.

    What is a GAS price?

    GAS Price refers to the amount of GWEI a transaction is willing to spend per unit of GAS in the GAS limit, look at the below section to see more.

    How much do I pay for an Ethereum transaction?

    We will use this Kyber token swap transaction as an example: 0x5cb018e5a7e17b310f0d201652765ab1fbef73064d004572a99919170cab6bbf

    1
    First thing you will need to do is click on Click to see More.

    2

    Here we can first see:

    • GAS Price was set to 0.0000000223125 ETH (22.3125 Gwei)
    • GAS Limit was set to 65,142

    Meaning the maximum amount of ETH that this tx could ever use for the network fee would be:
    GAS Limit × GAS Price
    = 65,142 × 0.0000000223125 ETH
    = 0.00145348087 ETH


    3
    However, now look at GAS Used By Transaction on etherscan, which we can see is 54,285 (83.33% of the original allocated 65,142)

    Just above, we figured out that the most amount of ETH that could be used in network fees was 0.00145348087 ETH

    But this transaction did not need all of the resources allocated to it in the GAS Limit, it only needed 83.33% of it. So we then do the following calculation to figure out the amount of ETH that was paid in this transaction:

    GAS Used by Transaction × GAS Price
    = 54,285 × 0.0000000223125 ETH
    = 0.0012112340625 ETH

    Which we can see here:


    Ethereum Nonces

    What is a Nonce?

    A Nonce in the simplest terms is a value that can only be used once. The nonce in Etheruem is used as a counter to ensure a transaction can’t be sent twice, to protect against replay attack.

    How do Ethereum Nonces work?

    In Ethereum, each transaction leaving your wallet will include a nonce automatically.

    • All the nonce does is count the transactions that leave your wallet, it does not count transactions coming into your wallet. The nonce is included in all outgoing transactions, whether you are sending ETH, ERC20 tokens, nfts, interacting with smart contracts - any outgoing transaction.
    • If you create a brand new wallet and send one transaction from it, that nonce will equal 0. The next transaction you send from your wallet will be nonce 1 the next outgoing transaction will be nonce 2 etc.

    Nonces must be confirmed in order from lowest nonce to highest nonce and you cannot skip confirming a nonce

    • So if you send transactions at nonce 30 and nonce 31, then nonce 31 must wait for nonce 30 transaction before it can itself get confirmed.
    • You can’t send transactions out and skip nonces like so: 1, 2, 4, 5 since nonce 3 is missing and nonces can't be skipped .

    Where can I see the nonce associated with my outgoing transaction?

    • The nonce will be shown in your transaction details on etherscan like so:

    How does accelerating a stuck Ethereum transaction work in Exodus?

    It uses nonces and something called Replace By Fee!

    Let’s imagine you have sent a transaction out of your Exodus wallet at nonce 99 and set a low fee. After some time you realize it has gotten stuck and you would like to speed up the confirmation process, so you click on Accelerate and soon enough your transaction has confirmed, but how is this possible?

    With the in-built Ethereum feature called Replace By Fee your Exodus wallet is taking the stuck transaction at nonce 99, then it will rebroadcast the transaction with the same nonce 99 and the same amount of ETH (or ERC20 token depending on what you have sent), but has included a different network fee.

    In Exodus, the GAS Price gets bumped up 20% from the original GAS price, but keeps the same GAS limit and same ETH (or ERC20) token value being sent.

    The 20% higher GAS Price is enough to ensure your transaction gets confirmed in a reasonable time!

    How do Ethereum Nonces impact me?

    In general, you might not ever notice, nor need to know how nonces work. They are supposed to be automatic and “hidden”. However there will be times when maybe your transaction gets stuck, and then nothing will send from your wallet. This is due to nonces!

    Nonces must be confirmed in order - what does this mean? Let’s explain with an example:

    If you send transactions from your wallet, for example at nonce 44, then send another transaction which will be nonce 45, and then another transaction at nonce 46. Now let’s imagine the transaction at nonce 44 got stuck for some reason, then the transactions at nonce 45 and 46 cannot, and will not, be confirmed until the nonce 44 transaction has confirmed. This is in-built into Ethereum and why nonces are important, they must always be confirmed in order from lowest nonce to highest nonce in the mempool.

    This is what it looks like if you have unconfirmed transactions at lower nonce's that your current transaction is waiting for:


    Ethereum Errors

    Out of GAS

    This error will occur when your transaction has hit the GAS Limit as more resources are needed to confirm the transaction.

    When you encounter this error, the amount of ETH (or ERC20) does not leave your address however the amount of ETH used to pay the GAS network fee up until the full GAS Limit still gets deducted from your wallet as that amount of resources was already used in this transaction, even though the transaction did not get confirmed.

    This will usually happen if you are interacting with a resource-heavy smart contract that needs to run lots of code to perform your transaction.

    Your Exodus wallet will automatically set this for you to ensure you always have the appropriate limit set. However, the “Out of GAS” error will usually happen if you are interacting with a resource-heavy smart contract that needs to run lots of code to perform your transaction. When this happens, it is best to find out what the appropriate GAS limit is from whoever is maintaining the smart contract you are interacting with.

    Reverted

    This error will occur for many reasons, it is usually specific to the smart contract you are interacting with.

    When you encounter this error, it is almost as if the transaction never happened, so the amount of ETH (or ERC20) does not leave your address however the amount of ETH used to pay the GAS network fee still gets deducted from your wallet as that amount of resources was already used in this transaction, even though the transaction did not get confirmed. You just won’t max out the GAS Limit like an "Out of GAS" error, so in this "Reverted" case, you will not waste as much ETH in network fees.

    Bad Jump Destination

    This error will occur for many reasons, it is usually specific to the smart contract you are interacting with.

    When you encounter this error, it is best to contact the maintainer of the smart contract you are interacting with to understand why you are receiving this error.

    Bad Instruction

    This error will occur for many reasons, it is usually specific to the smart contract you are interacting with.

    When you encounter this error, it is best to contact the maintainer of the smart contract you are interacting with to understand why you are receiving this error.