|
| 1 | +--- |
| 2 | +id: faq |
| 3 | +title: Frequently Asked Questions |
| 4 | +--- |
| 5 | + |
| 6 | +[comment]: # "mx-abstract" |
| 7 | + |
| 8 | +This page contains answers to frequently asked questions about connecting an application to MultiversX, be it an exchange, wallet, dApp, Web3 indexer or data provider. |
| 9 | + |
| 10 | +## General information |
| 11 | + |
| 12 | +### What is the native token of MultiversX? |
| 13 | + |
| 14 | +**EGLD** on Mainnet, **XeGLD** on Devnet and Testnet. The atomic unit of the native token (think of `wei` for Ethereum) is not named. |
| 15 | + |
| 16 | +``` |
| 17 | +1 EGLD = 10^18 atomic units = 1000000000000000000 atomic units |
| 18 | +``` |
| 19 | + |
| 20 | +See [constants](/developers/constants). |
| 21 | + |
| 22 | +### What kind of consensus does MultiversX use? |
| 23 | + |
| 24 | +See more at [secure proof of stake](/learn/consensus). |
| 25 | + |
| 26 | +### What is the block time (round duration)? |
| 27 | + |
| 28 | +The block time (round duration) is [6 seconds](/developers/constants). Also see [the welcome page](/welcome/welcome-to-multiversx). |
| 29 | + |
| 30 | +### Does MultiversX employ sharding? |
| 31 | + |
| 32 | +Currently, the MultiversX network has 3 regular shards, plus a special one, called the _metachain_ - this arrangement holds not only on _mainnet_, but also on _devnet_ and _testnet_. |
| 33 | + |
| 34 | +Transactions between accounts assigned to the same shard are called _intra-shard transactions_. Transactions between accounts located in distinct shards are called _cross-shard transactions_. |
| 35 | + |
| 36 | +More details about the sharded architecture of MultiversX can be found [here](/learn/sharding). |
| 37 | +Integrators may choose to have a unified view of the network, leveraging the [hyperblock](/integrators/egld-integration-guide) abstraction. |
| 38 | + |
| 39 | +## Wallet |
| 40 | + |
| 41 | +### What signature scheme does MultiversX use? |
| 42 | + |
| 43 | +For transactions, [ed25519](/developers/signing-transactions/signing-transactions) is used. |
| 44 | + |
| 45 | +### What BIP-0044 coin type is being used? |
| 46 | + |
| 47 | +CoinType is **508**, according to: [SLIP-0044](https://github.com/satoshilabs/slips/blob/master/slip-0044.md). |
| 48 | + |
| 49 | +### What is the derivation path for wallets? |
| 50 | + |
| 51 | +The derivation path is `m/44'/508'/0'/0'/{address_index}'`. That is, the _account index_ stays fixed at `0`, while the _address index_ is allowed to vary. |
| 52 | + |
| 53 | +## Transactions |
| 54 | + |
| 55 | +### What is the schema of a transaction? |
| 56 | + |
| 57 | +See [transactions](/learn/transactions). |
| 58 | + |
| 59 | +### How to determine the status of a transaction? |
| 60 | + |
| 61 | +See [querying the blockchain](/integrators/querying-the-blockchain). |
| 62 | + |
| 63 | +### What can be said about transactions finality? |
| 64 | + |
| 65 | +A transaction is final when the block or blocks (for cross-shard transactions) that notarize it have been declared **final**. |
| 66 | +Generally speaking, a transaction can be considered final as soon as it presents the _hyperblock coordinates_ (hyperblock nonce and hyperblock hash) when queried from the network, and these coordinates are under (older than) the [latest final hyperblock](/integrators/querying-the-blockchain#querying-finality-information). |
| 67 | + |
| 68 | +For more details, see [integration guide](/integrators/egld-integration-guide) and [querying the blockchain](/integrators/querying-the-blockchain). |
| 69 | + |
| 70 | +## Accounts |
| 71 | + |
| 72 | +### How does an address look like? |
| 73 | + |
| 74 | +An **account** is identified by an **address**, which is the **bech32-encoded** public key of the account. |
| 75 | +For the **bech32** encoding, the human-readable part (HRP) is `erd`. |
| 76 | + |
| 77 | +### Types of accounts |
| 78 | + |
| 79 | +Both _regular user accounts_ and _smart contract accounts_ can hold tokens: EGLD and ESDT tokens (fungible, semi-fungible or non-fungible ones). |
| 80 | + |
| 81 | +Regular user accounts can sign transactions using their private key. Smart contracts cannot create actual transactions, as they cannot sign them. Instead, they interact with other accounts by crafting so-called _unsigned transactions_ (or smart contract results). |
| 82 | + |
| 83 | +### How are accounts created? |
| 84 | + |
| 85 | +Regular user accounts get created on the blockchain when the corresponding address receives tokens for the first time. On the other hand, (user-defined) smart contract accounts are created when a smart contract is deployed. The address of a smart contract is a function of `[address of the deployer, nonce of deployment transaction]`. For a smart contract account, there is no (known) private key. |
| 86 | + |
| 87 | +### How to distinguish between a normal account and a smart contract? |
| 88 | + |
| 89 | +Examples of addresses: |
| 90 | + - **regular user account:** `erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th` |
| 91 | + - **smart contract:** `erd1qqqqqqqqqqqqqpgqq66xk9gfr4esuhem3jru86wg5hvp33a62jps2fy57p` |
| 92 | + |
| 93 | +If the address (decoded as bytes) has a prefix of 8 bytes of `0x00`, then it refers to a smart contract. |
| 94 | + |
| 95 | +## Smart Contracts |
| 96 | + |
| 97 | +There are two types of smart contracts on MultiversX: **system smart contracts** and **user-defined smart contracts**. System smart contracts are coded into the Protocol itself, while user-defined smart contracts are developed and deployed by users. The latter are written primarily in **Rust**. The Virtual Machine uses the **WASM** format, by leveraging the [Wasmer](https://wasmer.io/) engine. |
| 98 | + |
| 99 | +### How to detect contract deployment events? |
| 100 | + |
| 101 | +Look for events of type [`SCDeploy`](/developers/event-logs/contract-deploy-events). |
| 102 | + |
| 103 | +### Is it possible to upgrade a smart contract? |
| 104 | + |
| 105 | +Yes, if the `upgradeable` flag is set in the contract's [metadata](/developers/data/code-metadata). Also see [upgrading smart contracts](/developers/developer-reference/upgrading-smart-contracts). |
| 106 | + |
0 commit comments