Web3 dapp

Here is a typical flow of a web3 dapp with a visual representation:

  1. User opens the dapp: The user opens the web3 dapp in their web browser.

  2. Check for Web3 provider: The dapp checks if a web3 provider (such as Metamask) is installed on the user's computer. If not, the user is prompted to install it.

  3. Connect to Ethereum network: The dapp connects to the Ethereum network through the web3 provider, allowing the user to interact with the blockchain.

  4. Request user's account: The dapp requests the user's Ethereum account address from the web3 provider.

  5. Display dapp interface: The dapp displays its interface, showing the user what actions they can perform.

  6. User sends a transaction: The user selects an action and sends a transaction to the Ethereum network through the web3 provider.

  7. Transaction is broadcast: The transaction is broadcast to the Ethereum network, where it is verified and processed by miners.

  8. Transaction is confirmed: Once the transaction is confirmed by the network, the dapp updates the user's interface to reflect the result of the action.

  9. Retrieve data from the blockchain: If necessary, the dapp retrieves data from the blockchain to display to the user.

  10. User disconnects: The user disconnects from the dapp, ending their session on the Ethereum network.

Visual Representation

        +--------------------------------------+
        |                                      |
        |            Web3 Dapp                 |
        |                                      |
        +--------------------------------------+
                             |
                             |
                             |
                             |
                +----------------------------+
                |                            |
                |   Check for Web3 Provider  |
                |                            |
                +----------------------------+
                             |
                             |
                             |
                             |
               +---------------------------+
               |                           |
               |    Connect to Network     |
               |                           |
               +---------------------------+
                             |
                             |
                             |
                             |
                +----------------------------+
                |                            |
                |      Request User's       |
                |      Ethereum Account     |
                |                            |
                +----------------------------+
                             |
                             |
                             |
                             |
          +------------------|------------------+
          |                   |                  |
          |                   |                  |
+-----------------+ +------------------+ +---------------------+
|                 | |                  | |                     |
| User selects an | | User sends a     | | Dapp retrieves data  |
| action          | | transaction      | | from the blockchain  |
|                 | |                  | |                     |
+-----------------+ +------------------+ +---------------------+
          |                   |                  |
          |                   |                  |
          |                   |                  |
+-----------------+ +------------------+ +---------------------+
|                 | |                  | |                     |
| Transaction     | | Transaction is   | | Display updated      |
| is broadcasted  | | confirmed        | | interface and result |
| to the network   | |                  | | of the action        |
|                 | |                  | |                     |
+-----------------+ +------------------+ +---------------------+
                             |
                             |
                             |
                             |
                +----------------------------+
                |                            |
                |        User disconnects     |
                |                            |
                +----------------------------+

Last updated