MouseXplore is our open source block explorer that supports (at the current time) Bitcoin, Litecoin, Ethereum, Neo and Stellar. The team at MouseBelt noticed block explorers often get forked off of open source repositories, so we wanted to provide a starting point for four relatively different repositories that make good starting points for customization.
During development we had to determine how we could merge multiple blockchains into a single UI. To start, we looked at other popular open-source block explorers to pull common components. They all shared a homepage with a search feature, recent blocks and recent transactions, so it was an easy starting point.
The transaction and account pages are where things start to differ: Bitcoin and Litecoin support multi input/multi output transactions, while Ethereum is single input single output. Additionally, ethereum supports tokens via smart contracts, while Bitcoin does not. In order to make a uniform UI, we had do handle differences between each of these cryptocurrencies.
This block explorer also allows a user to power a wallet. We support APIs on some of the blockchains to submit a raw transaction, allowing an API-based web wallet managing keys on device to submit transactions. Some of the cryptocurrencies in the MouseWallet follow this flow as an example. If you wish to use them in your app, feel free to either use our API or fork it for yourself (if you want to be fully in control of the product, we recommend the latter).
To handle lookup of information not readily available on the node, we make use of a cron task to parse blocks into a mongodb instance. On some blockchains, getting a history of transactions by a single account takes some time, so we cache the result in a datastore to return rapidly. If deploying and running the project, make sure to give the cron enough time to sync to the network.
This project intends to make it easy to develop applications and add new cryptocurrencies into a community block explorer. Fork it at https://github.com/norestlabs/mousexplore and add your own token!