Network difficulty
{{ difficultyChart ? 'Recent ' + difficultyChart.points.length + ' blocks' : 'Recent blocks' }}
Click any point to open that block and inspect its details.
Load recent blocks to draw the chart.
Transactions pool
Pending mempool
Loading mempool...
No pending transactions.
| Received | Amount | Fee | Size | Hash |
|---|---|---|---|---|
|
{{ formatDateTime(tx.receive_time) }}
{{ formatRelativeTime(tx.receive_time) }}
|
{{ formatCoins(tx.amount_out, false) }} | {{ formatCoins(tx.fee, false) }} | {{ formatBytes(tx.size) }} | {{ tx.hash }} |
Recent transactions
Latest confirmed transactions
Loading recent transactions...
{{ home.recentTransactionsError }}
No confirmed transactions in the current block window.
| Confirmed | Amount | Fee | Size | Block | Hash |
|---|---|---|---|---|---|
|
{{ formatDateTime(tx.timestamp) }}
{{ formatRelativeTime(tx.timestamp) }}
|
{{ formatCoins(tx.totalOutputsAmount, false) }} | {{ formatCoins(tx.fee, false) }} | {{ formatBytes(tx.size) }} | #{{ formatNumber(tx.blockIndex) }} | {{ tx.hash }} |
Recent blocks
Latest chain activity
Loading blocks...
{{ home.error }}
| Height | Time | Interval | Hash | Size | Difficulty | Txs |
|---|---|---|---|---|---|---|
| #{{ formatNumber(block.height) }} |
{{ formatDateTime(block.timestamp) }}
{{ formatRelativeTime(block.timestamp) }}
|
{{ block.lapse ? formatDuration(block.lapse) : '--' }} | {{ block.hash }} | {{ formatBytes(block.cumulative_size) }} | {{ formatDifficulty(block.difficulty) }} | {{ formatNumber(block.transactions_count) }} |
Historical charts
Network stats
{{ historicStatsChart.sourceLabel }} · {{ historicStatsChart.rangeLabel }} · {{ formatNumber(historicStatsChart.points.length) }} points
Block stats from the connected RPC node.
Stats RPC
{{ historicStatsChart ? historicStatsChart.metric.label : 'Historical series' }}
Loading historical stats...
{{ historicStats.error }}
Loading block...
{{ blockView.error }}
Block detail
{{ blockView.block.hash }}
Height #{{ formatNumber(blockView.block.index) }} · {{ blockView.block.isOrphaned ? 'Alternative chain block' : 'Main chain block' }} · {{ formatNumber(blockView.block.transactions.length) }} transactions
Header
Chain context
ML-DSA-65 ({{ formatNumber(blockMinerSignatureHex.length / 2) }} bytes)
{{ blockMinerSignatureHex }}
Economics
Reward breakdown
Transactions
Block contents
| # | Hash | Type | Fee | Total amount | Size |
|---|---|---|---|---|---|
| {{ index }} | {{ transaction.hash }} | {{ txTypeName(transaction.txType) }} | {{ transactionFeeCell(transaction) }} | {{ formatCoins(transaction.totalOutputsAmount, false) }} | {{ formatBytes(transaction.size) }} |
Loading transaction...
{{ txView.error }}
Transaction detail
{{ txView.tx.hash }}
{{ txView.tx.inBlockchain ? 'Confirmed' : 'Unconfirmed' }} · {{ txView.tx.inBlockchain ? transactionConfirmations + ' confirmations' : 'Waiting for inclusion' }}
Overview
Transaction payload
Extra data
{{ formatNumber(transactionRawExtra.length / 2) }} bytes
{{ transactionRawExtra }}
ML-DSA-65 ({{ formatNumber(transactionMinerSpendPub.length / 2) }} bytes)
{{ transactionMinerSpendPub }}
Account registration
Registry details
ML-KEM-768 ({{ formatNumber(txView.tx.accountRegistration.viewPublicKey.length / 2) }} bytes)
{{ txView.tx.accountRegistration.viewPublicKey }}
ML-DSA-65 ({{ formatNumber(txView.tx.accountRegistration.spendPublicKey.length / 2) }} bytes)
{{ txView.tx.accountRegistration.spendPublicKey }}
This transaction type carries no inputs.
| # | Amount | Nullifier | Spent output | ||||||
|---|---|---|---|---|---|---|---|---|---|
| {{ index }} | {{ formatCoins(input.data.amount, false) }} | Coinbase — newly minted coins | {{ formatCoins(input.data.amount, false) }} | {{ input.data.nullifier }} |
output {{ formatNumber(input.data.output.number) }} in {{ shortHash(input.data.output.transactionHash) }}
Authorization key, ML-DSA-65 ({{ formatNumber(input.data.input.auth_pub.length / 2) }} bytes){{ input.data.input.auth_pub }} |
Unsupported input type {{ input.type }} | |||
This transaction type carries no outputs.
| # | Amount | Output target | Global index | Spend lock |
|---|---|---|---|---|
| {{ index }} | {{ formatCoins(output.output.amount, false) }} |
{{ output.output.target.data.spend_commit }}
Spend commitment
Key encapsulation, ML-KEM-768 ({{ formatNumber(output.output.target.data.kem_ct.length / 2) }} bytes){{ output.output.target.data.kem_ct }} Encrypted payload ({{ formatNumber(output.output.target.data.enc_payload.length / 2) }} bytes){{ output.output.target.data.enc_payload }} |
{{ formatNumber(output.globalIndex) }} | {{ coerceNumber(output.output.unlock_height) ? 'until height ' + formatNumber(output.output.unlock_height) : '—' }} |
{{ transactionSignatureSummary }}
This transaction type carries no spend signatures.
Payment ID
{{ route.params.hash }}
Transactions found for this payment identifier.
Loading transactions...
{{ paymentView.error }}
No transactions found for this payment ID.
| Hash | Fee | Total amount | Size |
|---|---|---|---|
| {{ transaction.hash }} | {{ formatCoins(transaction.fee, false) }} | {{ formatCoins(transaction.amount_out || transaction.totalOutputsAmount, false) }} | {{ formatBytes(transaction.size) }} |
Address
{{ route.params.address }}
Bech32m decoding, post-quantum key inspection, and registered account-number lookup.
Validating address...
{{ addressView.error }}
Validation
Address status
Bech32m checksum verified — {{ addressView.result.network }} address{{ addressView.result.nodeConfirmed === false ? ' (the connected node runs the other network)' : '' }}.
ML-KEM-768 ({{ formatNumber(addressView.result.viewPublicKey.length / 2) }} bytes)
{{ addressView.result.viewPublicKey }}
ML-DSA-65 ({{ formatNumber(addressView.result.spendPublicKey.length / 2) }} bytes)
{{ addressView.result.spendPublicKey }}
Privacy note
Why balances stay hidden
This explorer cannot show a Discrete address balance or its full history. Every payment is delivered to a one-time stealth output: the sender encapsulates a secret to the recipient's ML-KEM-768 view key, so only the recipient can recognize which outputs are theirs. Observers cannot map funds back to a public address the way they can on transparent chains.
Account number
Registered alias
No canonical account number is registered for this address.
Account number
{{ route.params.accountNumber }}
Resolve a registered account number to its on-chain post-quantum identity keys.
Resolving account number...
{{ accountNumberView.error }}
Resolution
Registered identity keys
No account is registered at these coordinates.
ML-KEM-768 ({{ formatNumber(accountNumberView.result.viewPublicKey.length / 2) }} bytes)
{{ accountNumberView.result.viewPublicKey }}
ML-DSA-65 ({{ formatNumber(accountNumberView.result.spendPublicKey.length / 2) }} bytes)
{{ accountNumberView.result.spendPublicKey }}
Lookup note
What this identifier means
Account numbers are compact on-chain aliases: block height, transaction index, and a Luhn mod-36 check character. The keys stored at those coordinates form a full, payable Discrete identity — wallets can send to the account number directly. An H-I-T-C form adds a subaddress index that routes deposits without changing the keys.
Node monitor
Public network nodes
Live node health and common chain data from the published HTTPS list.
Loading nodes...
{{ nodesView.error }}
{{ node.name }}
{{ node.url }}This node did not respond to `getinfo` during the last refresh.
Alternative blocks
Competing chain tips
Alternative blocks currently visible from the connected node.
Loading alt blocks...
{{ altView.error }}
No alternative blocks reported by this node.
| Height | Time | Hash | Size | Difficulty | Txs |
|---|---|---|---|---|---|
| {{ formatNumber(block.height) }} |
{{ formatDateTime(block.timestamp) }}
{{ formatRelativeTime(block.timestamp) }}
|
{{ block.hash }} | {{ formatBytes(block.cumulative_size) }} | {{ formatDifficulty(block.difficulty) }} | {{ formatNumber(block.transactions_count) }} |
Tools
Explorer utilities
A collection of useful tools for interacting with the Discrete blockchain.
{{ tool.label }}
{{ tool.description }}
Tools
Broadcast transaction
Paste raw transaction hex and submit it to the connected node.
Tools
Validate address
Check whether an address is valid and inspect its public keys.
Tools
Verify signed message
Verify whether a post-quantum message signature matches the supplied address.
Tools
Amount converter
Convert between atomic units and human-readable XDS values.
Tools
Payment ID tools
Generate a payment ID, decode one to text, or encode a short ASCII memo into one.
Settings
Appearance and other preferences
Choose a theme, switch your RPC endpoint, etc.
Appearance
Theme
Node endpoint
Preferred RPC
Routing