Our guide, Coinbase Transaction Explained, covers the full theory of how Monero builds its miner tx, with one-time outputs derived from the recipient's public view key and public spend key together with an ephemeral transaction secret key. This article skips the theory and goes straight to the commands: what to do, in what order, to confirm for yourself that a specific payout arrived where it should, or to independently audit the outputs received by the pool's audit wallet.

What You Are Actually Confirming

There are two distinct checks a solo miner will typically want to perform, and they should not be confused. The first is simple: confirming that a specific block paid out correctly to your own address. Since the payout goes directly to your wallet, this needs no tooling provided by OwnBlock. The second is more ambitious: independently identifying the outputs received by the pool's audit wallet to cross-check them against what it reports, using the secret view key —also called the private view key— OwnBlock publishes through its API for this purpose. This guide covers both, in that order.

Case 1: Confirming Your Own Payout (the Easy Case)

Since OwnBlock pays directly to the miner's address in the miner tx, with no custodial balance, verifying your own payout is simply a matter of looking at your own wallet:

  • Note the block height and date from your OwnBlock dashboard or Telegram alert.
  • Open your wallet (GUI, monero-wallet-cli or Feather Wallet) and check incoming transfers around that time.
  • Check the amount: it should match the block reward minus the pool's 2% fee.
  • Confirm the output has already unlocked: Monero mining rewards have a 60-block maturity period —about two hours— before they can be spent.

In monero-wallet-cli, show_transfers coinbase lets you isolate transfers coming from miner transactions. You can also use show_transfers in if you want to review all incoming transfers to the wallet.

Case 2: Verifying OwnBlock's Public Audit Wallet

If you want to go further than your own payout and independently identify the outputs received by the pool's audit wallet, OwnBlock's API (for example, /xmr/stats) publishes the pool's public address together with its secret view key —also called the private view key— specifically for this purpose. With those two pieces of data, you can create a view-only wallet and verify directly on-chain which outputs were received by that wallet, without relying on the block history or statistics published by OwnBlock:

bash
monero-wallet-cli --generate-from-view-key pool-audit-wallet
# When prompted, enter:
#   Standard address: <the pool's published address>
#   View key: <the pool's published view key>

Once restored and synced, show_transfers in or incoming_transfers will show you the history of outputs received by the audit wallet, which you can cross-check directly against the pool's public block history. You do not need the secret spend key for this: the secret view key lets you identify incoming outputs, but not spend the funds, and on its own it does not give a complete picture of how they were later spent either. That wallet does not hold miner balances: it only ever receives the pool fee. Therefore, every OwnBlock block accepted into the main chain should produce a corresponding incoming entry in that wallet. Orphaned or rejected blocks that appear in the pool's history do not produce a persistent entry on the main chain. Coinbase maturity affects when the output can be spent, not whether a synced wallet detects it. As an independent external check, P2Pool Observer currently lists OwnBlock as "Verified with view wallet keys" and uses the published address and secret view key to directly verify the coinbase outputs received by the audit wallet.

Proving a Specific Output Was Sent to Your Address

When OwnBlock builds the miner transaction, it generates an ephemeral transaction secret key (tx_key) used to derive that transaction's one-time output keys. Unlike implementations that rely solely on get_block_template, OwnBlock retains and publishes that tx_key for every block found, together with the miner tx hash, through its API. With those three pieces —the miner transaction hash, the tx_key published by OwnBlock, and the miner's address— monero-wallet-cli can cryptographically confirm how much that address received using check_tx_key. Note that this command does reveal your address to whoever runs the check; what it does not expose is your secret view key, your secret spend key, or your wallet's full history:

bash
check_tx_key <txid> <tx_key> <address>

This command confirms the amount received in that transaction by that address, without needing to import the full wallet or expose any other activity. The proof confirms that the specified address received that amount in the transaction; it does not by itself show whether the output remains unspent or has already matured. It is the right tool for one-off disputes or verification by a third party.

Common Verification Pitfalls

  • Forgetting the maturity period: the output can be detected on-chain before completing the 60-block maturity window, but it remains locked by consensus until then.
  • Comparing the gross amount with the net amount: your payout output already reflects the reward minus the 2% fee, not the full block reward.
  • Mixing up the pool's secret view key with its address, or vice versa: both pieces are required and are distinct from each other.
  • Confusing verifying your own payout with auditing the pool's audit wallet: these are two independent checks, and the first one needs no view key from the pool at all.

From Theory to Verification

Verifying a Monero coinbase payout does not require trusting what OwnBlock claims on its dashboard: it requires a wallet, a block you found, and standard Monero tools. If you are not mining yet, you can calculate your own odds with OwnBlock's free calculator and point your hashrate at OwnBlock's Monero solo mining pool when you want to verify the process against a real block.