BitcoinTechnical

How to Verify a Bitcoin Transaction: A Complete Guide

Learn how to verify Bitcoin transactions step by step — from using block explorers and understanding txid to running your own full node for trustless verification.

· 13min

One of Bitcoin’s most revolutionary properties is that anyone can verify any transaction without asking permission from a bank, government, or any third party. In the traditional financial system, you must trust your bank’s statement that your wire transfer went through. With Bitcoin, you can verify it yourself — mathematically, cryptographically, and independently.

This guide walks you through every method of verifying a Bitcoin transaction, from the simplest approach using web-based block explorers to the gold standard of running your own full node. By the end, you’ll understand not just how to verify transactions, but why verification matters and what it actually proves.

Why Transaction Verification Matters

In traditional finance, “verification” means checking your bank’s records — records that the bank controls, can alter, and has historically manipulated. The 2008 financial crisis revealed that the entire system rested on trust in institutions that proved unworthy of it. Lehman Brothers’ balance sheets were “verified” by auditors right up until the firm collapsed.

Bitcoin eliminates this trust requirement. Every transaction is recorded on a public ledger that no single entity controls. Verification in Bitcoin means checking mathematical proofs — not trusting someone’s word. This is the difference between trustless verification and trusted verification, and it represents one of the most important innovations in the history of money.

There are several practical reasons to verify transactions:

  • Receiving payments: Before considering a payment settled, you need to confirm it has been included in a block and has sufficient confirmations
  • Security: Verifying protects against double-spend attempts and fraudulent transaction claims
  • Privacy awareness: Understanding what information is publicly visible helps you manage your financial privacy
  • Self-sovereignty: The ability to independently verify is what makes Bitcoin “trustless” — you don’t have to trust anyone

Understanding the Transaction ID (TXID)

Every Bitcoin transaction has a unique identifier called a Transaction ID or TXID. This is a 64-character hexadecimal string that serves as the transaction’s fingerprint. For a deeper understanding of how TXIDs work, see our detailed guide on what a TXID is.

A TXID looks like this:

e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

The TXID is generated by applying the SHA-256 hash function twice to the serialized transaction data. This means:

  • Every transaction has exactly one TXID
  • Even the tiniest change to the transaction would produce a completely different TXID
  • You cannot reverse-engineer the transaction data from the TXID alone
  • The TXID is deterministic — anyone with the same transaction data will compute the same TXID

When someone sends you Bitcoin, the TXID is the receipt. It’s the string you use to look up and verify the transaction on the blockchain.

Method 1: Using Block Explorers

The most accessible way to verify a Bitcoin transaction is through a block explorer — a website that provides a searchable interface to the Bitcoin blockchain. Think of it as a search engine for Bitcoin transactions.

  • mempool.space — Open-source, privacy-focused, shows mempool visualization
  • blockstream.info — Run by Blockstream, clean interface, Tor-accessible
  • blockchain.com/explorer — One of the oldest, widely used but less privacy-focused
  • oxt.me — Advanced analytics and transaction graph visualization

Step-by-Step Verification

Step 1: Obtain the TXID

Get the transaction ID from your wallet software, the sender, or a payment processor. Every Bitcoin wallet displays the TXID after broadcasting a transaction. In most wallets, you can find it in the transaction history or details screen.

Step 2: Search the TXID

Paste the TXID into the search bar of your chosen block explorer. The explorer will return the full transaction details.

Step 3: Verify the key details

Once you’ve found the transaction, check these critical fields:

  • Status: Is the transaction confirmed or still pending (unconfirmed)?
  • Block height: Which block includes this transaction?
  • Confirmations: How many blocks have been mined on top of the block containing your transaction?
  • Outputs: Does the correct amount appear at the correct receiving address?
  • Fee: What fee was paid? (This affects confirmation speed)
  • Timestamp: When was the transaction included in a block?

Step 4: Assess confirmation count

The number of confirmations indicates how deeply buried the transaction is in the blockchain:

ConfirmationsSecurity LevelRecommended For
0UnconfirmedNothing — wait for at least 1
1MinimalSmall purchases (coffee, digital goods)
3ModerateMedium-value transactions
6StrongLarge purchases, exchanges
60+Very strongExtremely high-value settlements

Each new confirmation makes it exponentially more expensive to reverse the transaction. After 6 confirmations (approximately 1 hour), the cost of a double-spend attack exceeds the resources of virtually any attacker. For a deeper understanding of how fees affect confirmation time, see our Bitcoin fee guide.

Limitations of Block Explorers

While block explorers are convenient, they have a fundamental limitation: you are trusting the explorer’s server to show you accurate data. A compromised or malicious block explorer could theoretically show you false information — displaying a transaction as confirmed when it isn’t, or showing incorrect amounts.

This is why block explorers are useful for casual verification but are not sufficient for high-value transactions or situations requiring true trustless verification. For that, you need your own node.

Method 2: Using Your Bitcoin Wallet

Most modern Bitcoin wallets provide built-in transaction verification. When you receive a transaction, your wallet will show:

  • The incoming amount
  • The sender’s address (if known)
  • The current confirmation count
  • The transaction fee

SPV (Simplified Payment Verification) wallets — including most mobile wallets — verify transactions by downloading block headers and checking that a transaction is included in a block through a cryptographic proof called a Merkle proof. This is more trustworthy than a block explorer because the wallet verifies the proof of work in the block headers, but it still doesn’t verify all the consensus rules. SPV wallets trust that miners are following the rules.

Full node wallets like Bitcoin Core, Sparrow (connected to your own node), or Specter Desktop provide the highest level of verification. They download and validate every block and every transaction according to all consensus rules. When a full node wallet shows a transaction as confirmed, you have the strongest possible assurance that it is valid.

Method 3: Using Bitcoin CLI (Command Line)

If you run a Bitcoin full node, you can verify transactions directly through the command line using bitcoin-cli. This is the most technical but also the most trustless method. For a guide on setting up your own node, see how to run a Bitcoin full node.

Looking Up a Raw Transaction

bitcoin-cli getrawtransaction <txid> true

This returns the full decoded transaction data, including:

{
  "txid": "e3b0c44298fc1c14...",
  "hash": "e3b0c44298fc1c14...",
  "version": 2,
  "size": 225,
  "vsize": 166,
  "weight": 661,
  "locktime": 0,
  "vin": [...],
  "vout": [
    {
      "value": 0.01500000,
      "n": 0,
      "scriptPubKey": {
        "address": "bc1q..."
      }
    }
  ],
  "blockhash": "00000000000000000002a...",
  "confirmations": 142,
  "blocktime": 1710820800
}

Key Fields to Examine

  • confirmations: Number of blocks mined since this transaction’s block
  • vout: The outputs — check that the correct amount goes to the correct address
  • vin: The inputs — which previous transaction outputs are being spent
  • blockhash: The hash of the block containing this transaction
  • vsize: The virtual size in vbytes, which determines the fee rate

Verifying a Transaction Is in a Block

bitcoin-cli getblock <blockhash>

This shows you the full block data, including a list of all transaction IDs in the block. You can confirm that your transaction’s TXID appears in the block’s transaction list.

Checking the Mempool for Unconfirmed Transactions

bitcoin-cli getmempoolentry <txid>

If a transaction hasn’t been confirmed yet, this command shows its mempool status, including:

  • The fee rate
  • The time it entered the mempool
  • Whether it depends on other unconfirmed transactions
  • Its ancestor and descendant transaction count

For more about how the mempool works, see our guide on what the mempool is.

Method 4: Verifying With Your Own Full Node (The Gold Standard)

Running your own full node is the only way to achieve truly trustless transaction verification. When you verify a transaction with your own node, you are not trusting any third party — you are independently applying all of Bitcoin’s consensus rules to every transaction and every block.

What Your Node Verifies

A full node checks every transaction against all consensus rules:

  1. Input validity: Are the inputs referencing real, unspent outputs? (No double-spending)
  2. Signature verification: Does the digital signature prove the sender has the right to spend these coins?
  3. Amount consistency: Do the inputs equal or exceed the outputs? (No inflation)
  4. Script execution: Do the locking and unlocking scripts execute correctly?
  5. Block validity: Does the block meet the proof-of-work difficulty requirement?
  6. Chain rules: Does the block follow all timing, size, and ordering rules?

This is fundamentally different from trusting a block explorer or even an SPV wallet. Your node has independently verified every single block from the genesis block to the present. It doesn’t take anyone’s word for anything.

Setting Up Verification on Your Node

The simplest way to verify transactions using your own node is to connect a wallet to it. Sparrow Wallet is an excellent choice — it can connect to your Bitcoin Core node via the local RPC interface or through an Electrum server you run yourself.

Once connected, every transaction your wallet displays has been verified by your own node against the full consensus rules. This is the level of verification that makes Bitcoin unique among monetary systems.

Understanding What Verification Actually Proves

It’s important to understand exactly what each level of verification proves — and what it doesn’t.

What a Confirmed Transaction Proves

  • The sender had valid unspent outputs (they owned the coins)
  • The sender provided a valid cryptographic signature (they authorized the spend)
  • The transaction follows all consensus rules (no inflation, no double-spend)
  • Miners included it in a valid block with sufficient proof of work
  • The specified number of blocks have been mined on top of it

What Verification Does NOT Prove

  • The identity of the sender or receiver: Bitcoin addresses are pseudonymous. Verification proves that certain cryptographic keys authorized a transaction, not who controls those keys.
  • The purpose of the transaction: The blockchain records amounts and addresses, not reasons. A verified transaction could be a purchase, a donation, a transfer between your own wallets, or anything else.
  • That the coins aren’t “tainted”: Verification confirms the transaction is valid according to protocol rules, but it says nothing about the history or origin of the coins involved. This is a feature, not a bug — Bitcoin is fungible money.
  • Future safety: A confirmed transaction is irreversible in practice (especially after 6+ confirmations), but verification tells you about the current state, not future events.

Advanced: Verifying SegWit and Taproot Transactions

Bitcoin has evolved, and modern transactions use newer formats that affect verification.

SegWit Transactions

Segregated Witness (SegWit) transactions separate the signature data (witness) from the transaction data. When verifying SegWit transactions, you’ll notice:

  • The witness field contains the signature data
  • The vsize (virtual size) is smaller than the actual size, because witness data is discounted
  • Addresses start with bc1q (for native SegWit)

Your node verifies SegWit transactions using the same rules but with the witness data checked separately. This provides the same security guarantees while allowing more transactions per block.

Taproot Transactions

Taproot transactions (addresses starting with bc1p) use Schnorr signatures instead of ECDSA. From a verification perspective:

  • Schnorr signatures are more efficient to verify in batches
  • Complex spending conditions (multisig, timelocks) look identical to simple transactions on-chain, improving privacy
  • Your node handles all of this automatically — you don’t need to do anything different

Common Verification Scenarios

Scenario 1: Receiving a Payment

You sold an item and the buyer says they’ve sent Bitcoin. Here’s your verification checklist:

  1. Get the TXID from the buyer or your wallet
  2. Check that the transaction sends the correct amount to your address
  3. Wait for sufficient confirmations based on the transaction value
  4. For values over $1,000, wait for 3+ confirmations
  5. For values over $10,000, wait for 6 confirmations

Scenario 2: Transaction Stuck — Unconfirmed

You sent a transaction but it’s not confirming. Verify:

  1. Check that the transaction is in the mempool (visible on mempool.space or via getmempoolentry)
  2. Check the fee rate — is it competitive with current mempool conditions?
  3. If the fee is too low, consider using RBF (Replace-By-Fee) to bump the fee
  4. Check if the transaction depends on other unconfirmed transactions (CPFP chain)

Scenario 3: Verifying a Transaction for a Third Party

Someone claims they made a payment and wants you to verify it:

  1. Obtain the TXID independently (don’t trust a screenshot)
  2. Verify the transaction on your own node or multiple independent block explorers
  3. Confirm the output amount and destination address match the expected values
  4. Verify the confirmation count meets your security requirements

Privacy Considerations When Verifying

Every time you look up a transaction on a block explorer, you potentially reveal information:

  • Your IP address is associated with the transaction you’re looking up
  • The block explorer operator knows you’re interested in that specific transaction
  • Network observers may correlate your queries with your identity

To mitigate these privacy risks:

  • Use Tor: Access block explorers through the Tor Browser. Both mempool.space and blockstream.info offer Tor hidden services.
  • Run your own explorer: Tools like mempool.space can be self-hosted alongside your Bitcoin node
  • Use your own node: The most private option. Queries never leave your machine.
  • Use multiple explorers: Don’t give any single explorer a complete picture of your transaction interests

For a deeper discussion of Bitcoin privacy, see our guide on Bitcoin and privacy.

Conclusion: Don’t Trust, Verify

“Don’t trust, verify” is more than a Bitcoin slogan — it’s the foundational principle that separates Bitcoin from every other monetary system in history. For the first time, ordinary people can independently verify the monetary properties of the system they use: the supply schedule, the transaction rules, and the validity of every payment.

Start with block explorers to get comfortable with reading transaction data. As you progress in your Bitcoin journey, connect your wallet to your own node for the highest level of verification. The ability to independently verify is not just a technical feature — it is the mechanism through which Bitcoin achieves trustlessness, and trustlessness is what makes sound money possible in the digital age.

Every time you verify a transaction yourself, you’re participating in the decentralized consensus that makes Bitcoin work. You’re not just checking a payment — you’re helping to maintain the integrity of a monetary system that no single party controls.

Related