# Review of Blockchain Tokens Creation and Valuation
## 3 Blockchain Tokens Development
### Blockchain Overview  
In this section, we provide a technical overview of the Ethereum platform as is one of the most popular platforms for creating and issuing tokens. Thanks to its smart contract capabilities and widespread adoption of cryptocurrency space, it has become the go-to choose for creating various types of tokens, including utility tokens and security tokens. Ethereum features built-in programming languages that allow anyone to create rules for ownership and transactions and an incorporated Ethereum Virtual Machine (EVM) that facilitates code execution [92; 93]. The smart contracts are compiled into EVM operational code, enforcing the rules for executing transactions and operations on the blockchain. Mover the state of the network, accounts, and transactional process is stored on the chain allowing for executing the smart contracts by each peer node. Each account has a 20-byte address derived from the public key of the account and has a state composed of storage, contract code, current Ether balance, and a nonce which is a counter that ensures each transaction is executed only once [92]. There are two types of accounts with the same structure and capabilities of sending messages with only small differences between them. The externally owned accounts are created by third parties that are outside of the blockchain network and have no associated code. The messages sent by this type of account are created and signed by the owner. The second type of account is associated with a smart contract and has code that is executed every time a message is received, and it also has storage that can be modified by the code. For the externally owned accounts, the contract code and storage are null. The accounts can send messages from one \begin{table}
\begin{tabular}{c c c} \hline \hline
**Category** & **Number of Articles** & **Selected Articles** \\ \hline Tokenomics & 10 & [20; 21; 25; 26; 27; 28; 29; 30; 31; 32] \\ Price determinants & 14 & [21; 33; 34; 35] \\ Finance and investments & 12 & [20; 31; 46; 47; 48; 49; 50; 51; 52; 53; 54; 55] \\ Blockchain tokens’ applicability & 39 & [43; 55; 56; 57; 58; 59; 60; 61; 62; 63; 64; 65; 66; 67; 68; 69; 70; 71; 72; 73; 74; 75; 76; 77; 78; 79; 80; 81; 82; 83; 84; 85; 86; 87; 88; 89; 90; 91] \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Selected papers distributed per category. Figure 3: Results distribution based on publication year. to another (Figure 4) in the same manner regardless of their type. The messages can contain data besides value (unlike Bitcoin transactions). If the recipient account is contract-based, it can also send a response back to the sender. The transactions are initiated by externally owned accounts and are applied to the current state using a state transition function to determine the next state of the network. The transactions contain information about the sender-recipient account and a signed data package that contains the initial message to be sent. If the recipient account has an associated code, it is executed in the state transition function by miners. The Ethereum blocks contain the most recent state of the network, a list of the transactions included in that block, the block number, and difficulty. The state is stored in a tree component, and it is updated by changing only the part of the tree that contains the accounts that are affected by the transactions in the block (Figure 5). The state is given by the accounts, and after the transactions are executed, the state of the network changes. The smart contract's structure is shown in Figure 6. Each contract has code and storage in addition to account address, value, and nonce that are also present for the externally owned accounts. The definition of a smart contract has two components. The contract state is defined by specifying the state variables and their types, and the structure of the events that can be emitted by this smart contract during code execution. The second component defines at least one constructor and the functions that can be triggered by sending messages to the contract.