Currently available Monero blockchain explorers have several limitations which are of
special importance to privacy-oriented users:
The Onion Monero Blockchain Explorer was ported to Aeon. The port was
conducted by [stoffu](https://github.com/moneroexamples/onion-monero-blockchain-explorer/pull/118).
- they use JavaScript,
- have images which might be used for [cookieless tracking](http://lucb1e.com/rp/cookielesscookies/),
- track users activates through google analytics,
- are closed sourced,
- are not available as hidden services,
- do not support Monero testnet nor stagenet networks,
- have limited JSON API.
## Addresses
In this example, these limitations are addressed by development of
an Onion Monero Blockchain Explorer. The example not only shows how to use
Monero C++ libraries, but also demonstrates how to use:
Mainnet
- [crow](https://github.com/ipkn/crow) - C++ micro web framework
- [mstch](https://github.com/no1msd/mstch) - C++ {{mustache}} templates
- [json](https://github.com/nlohmann/json) - JSON for Modern C++
- [fmt](https://github.com/fmtlib/fmt) - Small, safe and fast string formatting library
## Explorer hosts
Tor users:
- [http://dvwae436pd7nt4bc.onion](http://dvwae436pd7nt4bc.onion) (Front-end templates are [maintained by @suhz](https://github.com/suhz/onion-monero-blockchain-explorer/tree/moneroexplorer.com/src/templates)).
<h4style="font-size: 15px; margin: 0px">({{^enable_js}}no javascript - {{/enable_js}}no cookies - no web analytics trackers - no images - open sourced)</h4>
txMinConfirms:10,// corresponds to CRYPTONOTE_DEFAULT_TX_SPENDABLE_AGE in Monero
txCoinbaseMinConfirms:60,// corresponds to CRYPTONOTE_MINED_MONEY_UNLOCK_WINDOW in Monero
coinSymbol:'XMR',
openAliasPrefix:"xmr",
coinName:'Monero',
coinUriPrefix:'monero:',
addressPrefix:18,
integratedAddressPrefix:19,
subAddressPrefix:42,
addressPrefixTestnet:53,
integratedAddressPrefixTestnet:54,
subAddressPrefixTestnet:63,
addressPrefixStagenet:24,
integratedAddressPrefixStagenet:25,
subAddressPrefixStagenet:36,
coinSymbol:'AEON',
openAliasPrefix:"aeon",
coinName:'Aeon',
coinUriPrefix:'aeon:',
addressPrefix:0xB2,
integratedAddressPrefix:0x2733,
subAddressPrefix:0x06B8,
addressPrefixTestnet:0x0426,
integratedAddressPrefixTestnet:0x2C27,
subAddressPrefixTestnet:0x0AAC,
addressPrefixStagenet:0x011A,
integratedAddressPrefixStagenet:0x2C1B,
subAddressPrefixStagenet:0x0B20,
feePerKB:newJSBigInt('2000000000'),//20^10 - for testnet its not used, as fee is dynamic.
dustThreshold:newJSBigInt('1000000000'),//10^10 used for choosing outputs/change - we decompose all the way down if the receiver wants now regardless of threshold