When starting with Ethereum based Transactions it’s sometimes confusing to understand what’s going on, behind the hood, and which of the addresses plays what kind of role.
Thanks to https://etherscan.io / it’s quite easy to follow a transaction flow and reverese engineer the overall flow.
In this article I explain a Ethereum ERC-20 token transaction scenario:
“Send 900 KNC (KyberNetwork) Token for a Wallet with the address (0xe443) to the address (0x227).”
This resulted in the following transaction with Transaction Hash 0xb39:
The From field, represents the blockchain address of the sender Wallet (0xe443)
The To field, represents the KyberNetwork Token contract (0xdd9), which holds all Kyber token assets
Tokens Transferred field, shows in the From field the sender of token (MEW Wallet) and in the For field the receiver address (0x227)
The Transaction Fee is 0.13 USD.
It’s important to realize that a ERC-20 token transfer will go to token contract address and not directly to receiver address (as for example when transfer Ethereum coins directly). The receiver address is configured as additional parameter of the contract.
If we check out the KyberNetwork contract (0x99d), we can see that the Total Supply of tokens is around 214'0250'142,… tokens (KNC) which results in a current Fully dilluted Market Cap of 52'071'916 USD (token multiplied by its current Price) .
Currently there are 53'219 Holders (i.e. Ethereum addresses, holding KNC tokens)
Having Filtered by Token Holder set to my receiver address (0x227) , will show the actual balance of 900 KNC (of a value of around 218 USD)
It should be now clear, a ERC-20 contract will hold a list of all token holders (53'219 addresses) with the actual token assets,
Checking my Ethereum Address directly (0x227) will show the Token received.