Skip to content

Commit a6b3f4a

Browse files
Merge pull request #968 from multiversx/integrators-faq
Integrators FAQ
2 parents 091ecb0 + 556a855 commit a6b3f4a

File tree

2 files changed

+107
-0
lines changed

2 files changed

+107
-0
lines changed

docs/integrators/faq.md

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
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+

sidebars.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -503,6 +503,7 @@ const sidebars = {
503503
],
504504
},
505505
"integrators/walletconnect-json-rpc-methods",
506+
"integrators/faq",
506507
],
507508
Advanced: [
508509
{

0 commit comments

Comments
 (0)