XDC Observatory
The XDC Observatory is the block explorer for the XDC Network.

XDC Observatory

The XDC Observatory is the network explorer for the XDC Network. The core of the XDC Observatory involves extracting data from the XDC distributed ledger and indexing and displaying the processed data in a concise and readable manner for the masses and laypersons. It also serves as the analytics platform for the XDC Network and a search engine for users looking for details regarding blocks generated and transactions executed on the XDC Network. The search bar enables users to enter an address and look for the balance, values, or transactions made through that address.
XDC Observatory Landing Page

What is the purpose of the XDC Observatory?

While traditional block explorers can serve as a primary resource for network users to view transactions, verify contract code, and visualize other network data, they have historically been unimaginative and fairly limited in scope. The XDC Observatory’s user interface offers an easy-to-use package of tools and features, which help populate useful network data in a more accessible manner.
Users can register and create an account on XDC Observatory. Once signed up, users can add addresses to their watchlist and be notified via email of any associated transactions. With a compatible wallet like XDCPay, they can connect to the Observatory, and even send tokens from one account to another. Developers have access to all the API services necessary to build decentralized applications and serve data feeds to the XDC Observatory to display network information.
With Observatory, the XDC Network brings a new user experience to the network, emphasizing transparency, accessibility, network credibility - and perhaps most uniquely, personalization of the user experience.

Components of the XDC Observatory

The most fundamental functions of XDC Observatory include:

Exploring XDC Addresses

The XDC Observatory allows users to search transaction histories, smart contracts execution and token transfer information. Users would require to paste an address in the search bar, and the Observatory will return all the asked details. The information comprises details on token balance, the number of transactions, sender’s and receiver’s addresses and much more.
The transaction tab shows all the transactions being executed on-chain. For each transaction, Observatory lists down the TxHash (Transaction Hash or Transaction ID), the block number in which the transaction is recorded, the value being transferred, duration since the transaction was confirmed, sender and receiver’s details and the total transaction fees.

Checking TxHash

TxHash is used to track the status of a transaction. When users search for specific transaction details, the Observatory presents the data that will include transaction receipt status - whether the transaction is successful or failed, the block height, the value being transferred, the amount of gas used, and the sender’s and receiver’s address.

Overall Block Monitoring

XDC Observatory is a reliable resource for live blockchain data. Besides representing all the contracts, blocks and transaction details, it monitors the gas price and makes it visible to the users. Users can check the gas price and adjust the gas fee before confirming the transaction.
The data representation on Observatory is quite simple, elegant and easy to comprehend. With live graphs, tables and charts, XDC Observatory prove to be a handy tool for all the XDC stakeholders. These graphical data representations include transaction history chart, token supply table, address growth chart and network information chart.

Architecture

The XDC Observatory is written in a highly modular fashion to allow maximum flexibility and scalability. Observatory follows microservice architecture.
The database stores information related to the chain of blocks, transactions within the blocks, address details, token details and smart contracts information; no cryptographic signatures or data is stored. The DocumentDB of AWS is designed to allow read-only access from other applications. Its schema is highly normalized which helps to prevent data inconsistencies.

System Components

  1. 1.
    Consumer: ReactJS application to view the Observer.
  2. 2.
    System.Microservices:
    1. 1.
      Observer Scan microservice
    2. 2.
      Observer Process data microservice
    3. 3.
      Observer Transaction microservice
    4. 4.
      Observer block microservice
    5. 5.
      Observer Address microservice

Integrations

  1. 1.
    ECOIN (ECOIN) - xdc536dd70445cea1e97f9bf1bada04cbda5199a2a1
  2. 2.
    SRX (storx) - xdc5d5f074837f5d4618b3916ba74de1bf9662a3fed
  3. 3.
    PLI (plugin) - xdcff7412ea7c8445c46a8254dfb557ac1e48094391
  4. 4.
    PRNT (PrimeNumbers Tokens) - xdc0e11710aad67e7427cfbc12c353284c2e335f62c
  5. 5.
    GBEX (Globiance Exchange Token) - xdc34514748f86a8da01ef082306b6d6e738f777f5a
  6. 6.
    XSP (XSP Token) - xdc36726235dadbdb4658d33e62a249dca7c4b2bc68

Interfaces

End-User’s Web Portal

List of APIs

The following are the APIs used in Observatory development:
  1. 1.
    getLatestBlocks: Returns the latest block generated on-chain.
  2. 2.
    getLatestTransactions: Returns the latest transaction executed.
  3. 3.
    getTotalAccounts: Fetches the total number of accounts.
  4. 4.
    getAccountDetailsUsingAddress: Returns the account details of an address.
  5. 5.
    getLatestAccounts: Fetches the latest accounts created.
  6. 6.
    getTotalTokens: Returns the total number of tokens available.
  7. 7.
    getListOfTokens: Returns the list of tokens that a specified user has issued.
  8. 8.
    getTokenUsingTokenNameAndAddress: Returns tokens of the specified token name and address.
  9. 9.
    getTotalContracts: Returns total smart contracts created.
  10. 10.
    getListOfContracts: Returns the list of smart contracts of the specific user.
  11. 11.
    getContractDetailsUsingAddress: Returns smart contract details of the specified address.
  12. 12.
    getListOfHoldersForToken: Returns the list of all the holders for the specified token.
  13. 13.
    getHolderDetailsUsingAddress: Returns the details of holders of the specified address.
  14. 14.
    get-token-overview: Returns details of the specified token.
  15. 15.
    get-history-price: Returns price history of the specified token.
  16. 16.
    getBlockDetail: Returns details of the specified block.
  17. 17.
    getLatestBlocks: Returns the latest block processed on the chain.
  18. 18.
    getTotalBlocks: Gets the total number of blocks generated.
  19. 19.
    getLatestTransactions: Returns the latest transaction processed on the chain.
  20. 20.
    getTotalTransactions: Returns the total number of transactions executed on-chain.
  21. 21.
    getTransactionsForAddress: Returns transactions for the specified address.
  22. 22.
    getTransactionDetails: Gets the details of the specified transaction.
  23. 23.
    getAddressStats: Returns the stats for the specified address.
  24. 24.
    getListOfTransferTransactionsForToken: Gets the list of transfer transactions for the specified token.
  25. 25.
    getTotalTransferTransactionForToken: Fetches the list of all the transactions for the specified token.
  26. 26.
    getTransferTransactionDetailsUsingHash: Gets transactions details for the specified hash.
  27. 27.
    getCoinMarketCap: Fetches the coin value from CoinMarketCap.
  28. 28.
    getCoinMarketTotalSupply: Returns total supply value directly from CoinMarketCap.
  29. 29.
    getCurrentTPS: Returns the current transaction rate.
  30. 30.
    getMaxTPS: Returns the maximum transaction rate on the chain.

Building and Running the Observatory

The Observatory is a React app. It is compatible with all devices, including Mac OS, Windows, iOS and Android. Local installation
Download NodeJS, version greater than 12 on your system.
Clone the repo on your local system.
Install dependencies:
npm install
Run locally to connect to XDC Mainnet
npm start
Run locally to connect to apothem
npm run start-development
To create build for XDC Mainnet
npm run production
Then this will start XDC Observer on your system on URL:- http://localhost:3000 and you can see all details for XDC Observer.