In its most basic form, a cryptocurrency transaction is moving cryptocurrency from one address on the public blockchain to a different address. Other forms of transactions build on this basic idea.
When you “send” tokens, you are using your private key to sign a transaction and broadcast it to the blockchain network. This is a transaction request. In Ethereum, this is a request for code execution on the Ethereum Virtual Machine (EVM). Any user can broadcast a transaction request to the public blockchain network.
There are three steps to proposing a transaction on the Ethereum blockchain: create, sign, and broadcast. For Ethereum’s technical documentation on this topic, see Sending Transactions Using Web3.
For a transaction request to become a transaction (a fulfilled transaction request), the transaction request must be validated, executed, and committed to the network by some other node in the network. Execution of the transaction code changes the state of the EVM and, upon commitment, this state change is broadcast to all nodes in the network. In this way, the distributed nodes of the network verify the transaction (confirm its validity) and record it to the blockchain.
Once the transaction has been verified, the funds are sent to the recipient’s address. The ledger will then reflect the updated balance in your address and the recipient’s. “Success” for a transaction is when the transaction data is added to a block.
Transactions between externally-owned accounts can only be a transfer (send) of cryptocurrency. For instance, the owner of one account can send ETH to another account. The “Method” on EtherScan will be listed as “Transfer.” Note that if you have a wallet with multiple accounts, moving tokens from one account to another is a transaction. From the public blockchain perspective, there is no way to know that you are the owner of both accounts.
Examples of transactions in the Ethereum network include:
- Sending ETH from one account to another
- Publishing smart contract code into the Ethereum Virtual Machine (EVM)
- Executing smart contract code at address X in the EVM, with arguments Y
A cryptocurrency transaction can be identified by its transaction hash. Transaction hash is an identifier that uniquely identifies a transaction on a blockchain. A transaction hash looks like a long string of random letters and numbers (alphanumeric characters).
Just like in other types of online transactions, cryptocurrency transactions involve fees and time.
There is a network fee for sending cryptocurrency from one address to another. The network fee is the amount of cryptocurrency being paid to execute the transaction. Cryptocurrency transactions are made possible by consensus mechanisms such as mining. Any participant who broadcasts a transaction request must offer some amount of cryptocurrency to the network as a reward for processing the transaction.
The Ethereum network requires “gas” to execute transactions. Gas is a calculated transaction cost that is paid in ETH. When you send ETH or interact with a contract, you must pay for that computation.
Transaction fees vary over time. They are higher when the network is busy (i.e., congested). When a network is busy, it becomes more competitive to get a transaction through. Ethereum gas prices can be monitored at Ethereum Gas Station.
For instance, to send cryptocurrency from a centralized exchange to a decentralized wallet requires payment of the network fee. The centralized exchange incurs and pays a network transaction fee on the cryptocurrency networks to transfer cryptocurrency off the Coinbase platform. For these transactions, Coinbase will charge the sender a fee based on its estimate of the network transaction fee that it anticipates paying for the transaction.
The network fee covers the cost of verifying the transaction.
You can check the status of a transaction on a block explorer like EtherScan by searching for the hash of a transaction (txHash).