{
  "$schema": "https://degreesofsatoshi.com/encyclopedia/schemas/article-v1.json",
  "schemaVersion": "1.0.0",
  "id": "bitcoin-address-validation",
  "canonical": "https://degreesofsatoshi.com/encyclopedia/bitcoin-address-validation/",
  "collection": "bitcoin",
  "title": "Checking a Bitcoin address: format, network and recipient",
  "description": "Check Bitcoin address syntax and network compatibility while keeping recipient authentication separate from checksum validity.",
  "aliases": [
    "check bitcoin address valid",
    "check bitcoin address valid explained"
  ],
  "dates": {
    "published": "2026-10-02",
    "modified": "2026-10-02",
    "verified": "2026-10-02T19:29:20.637Z",
    "dataAsOf": "2026-10-02"
  },
  "authorship": {
    "publisher": "Degrees of Satoshi editorial project",
    "process": "AI-assisted research and drafting with a separate automated source-verification pass; no external expert or named human review is implied."
  },
  "quickAnswer": {
    "text": "A valid Bitcoin address is a correctly encoded destination supported by the relevant network and wallet. Validation can detect format or checksum errors; it cannot tell you who controls the destination or whether it is the address you intended. Check the complete request against a trusted source and use the correct network context before authorizing payment.",
    "claimId": "bitcoin-address-validation-quick-answer",
    "sourceIds": [
      "x425-btc-core-validateaddress",
      "x425-btc-bip173",
      "x425-btc-bip350",
      "x425-btc-trezor-display"
    ]
  },
  "keyFacts": [
    {
      "label": "Format check",
      "value": "Valid encoding is not recipient identity",
      "sourceIds": [
        "x425-btc-core-validateaddress"
      ],
      "id": "format-check",
      "claimId": "bitcoin-address-validation-fact-format-check"
    },
    {
      "label": "Witness version",
      "value": "Bech32 and Bech32m apply to different versions",
      "sourceIds": [
        "x425-btc-bip350"
      ],
      "id": "witness-version",
      "claimId": "bitcoin-address-validation-fact-witness-version"
    },
    {
      "label": "Final check",
      "value": "Compare the full intended destination",
      "sourceIds": [
        "x425-btc-trezor-display"
      ],
      "id": "final-check",
      "claimId": "bitcoin-address-validation-fact-final-check"
    }
  ],
  "prerequisites": [
    "bitcoin-address-types",
    "lightning-network-explained"
  ],
  "sections": [
    {
      "id": "syntax",
      "heading": "Understand the scope of a validation result",
      "sourceIds": [
        "x425-btc-core-validateaddress",
        "x425-btc-bip173",
        "x425-btc-bip350"
      ],
      "paragraphs": [
        "Core’s validateaddress can return validity and the resulting output script, with error-location information where available. That result answers an encoding question. An attacker can provide a perfectly valid destination under their own control.",
        "Witness version 0 uses Bech32; version 1 and later use Bech32m under BIP-350. The appropriate decoder must validate the version and checksum pairing rather than accept any string with a familiar beginning."
      ]
    },
    {
      "id": "network",
      "heading": "Check more than a recognizable prefix",
      "sourceIds": [
        "x425-btc-bip173",
        "x425-btc-core-getblockchaininfo",
        "x425-btc-bolt11"
      ],
      "paragraphs": [
        "Mainnet and test environments use different conventions. Confirm the wallet’s selected chain and the recipient’s intended route as well as checking the address text. A familiar-looking prefix is not a substitute for checking those settings.",
        "A Lightning invoice is not a normal Bitcoin address. An interface rejecting it may expect a different payment method, rather than detecting a typo in an on-chain destination."
      ]
    },
    {
      "id": "human",
      "heading": "A valid address can still be the wrong one",
      "sourceIds": [
        "x425-btc-trezor-display"
      ],
      "paragraphs": [
        "Imagine that a malicious clipboard replacement swaps one valid destination for another. Both pass a checksum check. Comparing only the first and last few characters is weaker than checking the complete destination through the supported display or a trusted request.",
        "If an address fails validation, obtain it again from the intended recipient. Guessing which character to alter can produce a different destination; a checksum is an error detector, not permission to improvise a correction."
      ]
    }
  ],
  "faq": [
    {
      "question": "Does a checksum prove that an address belongs to the recipient?",
      "answer": "No. It checks consistency of the encoded text. A different person can supply a valid address with a valid checksum, so recipient authentication must come from the surrounding relationship or request.",
      "sourceIds": [
        "x425-btc-bip173",
        "x425-btc-trezor-display"
      ]
    },
    {
      "question": "Can all Bitcoin wallets send to every valid address type?",
      "answer": "No. Format and feature support depend on the wallet version and the type of output. A destination can be valid under a specification while an older interface does not support sending to it.",
      "sourceIds": [
        "x425-btc-bip350"
      ]
    }
  ],
  "claims": [
    {
      "id": "bitcoin-address-validation-quick-answer",
      "articleSlug": "bitcoin-address-validation",
      "statement": "A valid Bitcoin address is a correctly encoded destination supported by the relevant network and wallet. Validation can detect format or checksum errors; it cannot tell you who controls the destination or whether it is the address you intended. Check the complete request against a trusted source and use the correct network context before authorizing payment.",
      "sourceIds": [
        "source-da1629d9523069bc",
        "source-7c30c03ff7365c18",
        "source-b33f2e5a3eb0e76d",
        "source-6d1aa1923394141c"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-da1629d9523069bc",
          "locator": "Result: isvalid, address, scriptPubKey, error"
        },
        {
          "sourceId": "source-7c30c03ff7365c18",
          "locator": "Bech32; Segwit address format; Checksum design"
        },
        {
          "sourceId": "source-b33f2e5a3eb0e76d",
          "locator": "Specification; Compatibility"
        },
        {
          "sourceId": "source-6d1aa1923394141c",
          "locator": "Trusted display article: on-device verification steps and limits of what the device verifies"
        }
      ],
      "scope": {
        "collection": "bitcoin",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "Educational explanation. Product-specific behavior is scoped to the cited documentation, checked 2026-10-02.",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:29:20.637Z",
        "reviewer": "Independent automated verification — Codex /root/verify_ethereum_100, separate from the Bitcoin drafting agent",
        "notes": [
          "Checked Core29 validateaddress results, BIP173 encoding and BIP350 witness-version/checksum pairing. Address validity and ownership are separate; typo correction is not promised and full destination comparison is recommended."
        ]
      }
    },
    {
      "id": "bitcoin-address-validation-fact-format-check",
      "articleSlug": "bitcoin-address-validation",
      "statement": "Format check: Valid encoding is not recipient identity",
      "sourceIds": [
        "source-da1629d9523069bc"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-da1629d9523069bc",
          "locator": "Result: isvalid, address, scriptPubKey, error"
        }
      ],
      "scope": {
        "collection": "bitcoin",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:29:20.637Z",
        "reviewer": "Independent automated verification — Codex /root/verify_ethereum_100, separate from the Bitcoin drafting agent",
        "notes": [
          "Checked Core29 validateaddress results, BIP173 encoding and BIP350 witness-version/checksum pairing. Address validity and ownership are separate; typo correction is not promised and full destination comparison is recommended."
        ]
      }
    },
    {
      "id": "bitcoin-address-validation-fact-witness-version",
      "articleSlug": "bitcoin-address-validation",
      "statement": "Witness version: Bech32 and Bech32m apply to different versions",
      "sourceIds": [
        "source-b33f2e5a3eb0e76d"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-b33f2e5a3eb0e76d",
          "locator": "Specification; Compatibility"
        }
      ],
      "scope": {
        "collection": "bitcoin",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:29:20.637Z",
        "reviewer": "Independent automated verification — Codex /root/verify_ethereum_100, separate from the Bitcoin drafting agent",
        "notes": [
          "Checked Core29 validateaddress results, BIP173 encoding and BIP350 witness-version/checksum pairing. Address validity and ownership are separate; typo correction is not promised and full destination comparison is recommended."
        ]
      }
    },
    {
      "id": "bitcoin-address-validation-fact-final-check",
      "articleSlug": "bitcoin-address-validation",
      "statement": "Final check: Compare the full intended destination",
      "sourceIds": [
        "source-6d1aa1923394141c"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-6d1aa1923394141c",
          "locator": "Trusted display article: on-device verification steps and limits of what the device verifies"
        }
      ],
      "scope": {
        "collection": "bitcoin",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:29:20.637Z",
        "reviewer": "Independent automated verification — Codex /root/verify_ethereum_100, separate from the Bitcoin drafting agent",
        "notes": [
          "Checked Core29 validateaddress results, BIP173 encoding and BIP350 witness-version/checksum pairing. Address validity and ownership are separate; typo correction is not promised and full destination comparison is recommended."
        ]
      }
    }
  ],
  "sources": [
    {
      "id": "x425-btc-core-validateaddress",
      "label": "validateaddress RPC",
      "publisher": "Bitcoin Core",
      "url": "https://bitcoincore.org/en/doc/29.0.0/rpc/util/validateaddress/",
      "locator": "Result: isvalid, address, scriptPubKey, error",
      "note": "Address syntax validation does not authenticate a payee.",
      "version": "Bitcoin Core 29.0 RPC reference; not a recommendation to install an old release",
      "checkedAt": "2026-10-02T18:53:55.094Z",
      "contentSha256": "49a0af3da24209707e3fb1a3073fe504d9a4feec1f0e7cea0f1d1358c9b0f8f4",
      "recordId": "source-da1629d9523069bc"
    },
    {
      "id": "x425-btc-bip173",
      "label": "Base32 address format for native v0-16 witness outputs",
      "publisher": "Bitcoin Improvement Proposals",
      "url": "https://raw.githubusercontent.com/bitcoin/bips/927b6de9915c9262615a6399de51b200f81e5aa4/bip-0173.mediawiki",
      "locator": "Bech32; Segwit address format; Checksum design",
      "note": "Bech32 network prefixes and error detection; v1+ rules subsequently changed by BIP-350.",
      "version": "Pinned BIPs revision",
      "checkedAt": "2026-10-02T18:53:54.081Z",
      "contentSha256": "b19eab06b264bbd15ad7f7d640fa34de8f4a8809fba8a6ecc3e165545b27a543",
      "recordId": "source-7c30c03ff7365c18"
    },
    {
      "id": "x425-btc-bip350",
      "label": "Bech32m format for v1+ witness addresses",
      "publisher": "Bitcoin Improvement Proposals",
      "url": "https://raw.githubusercontent.com/bitcoin/bips/927b6de9915c9262615a6399de51b200f81e5aa4/bip-0350.mediawiki",
      "locator": "Specification; Compatibility",
      "note": "Version-specific checksum validation and compatibility limits.",
      "version": "Pinned BIPs revision",
      "checkedAt": "2026-10-02T18:53:54.129Z",
      "contentSha256": "63634b06aa8bae88b31929674736e74964c4598684269ac2b0b140c43a7a0dec",
      "recordId": "source-b33f2e5a3eb0e76d"
    },
    {
      "id": "x425-btc-trezor-display",
      "label": "Trezor’s Trusted Display",
      "publisher": "Trezor",
      "url": "https://trezor.io/guides/trezor-devices/trezor-fundamentals/trezor-s-trusted-display-verify-every-address-on-your-device",
      "locator": "Trusted display article: on-device verification steps and limits of what the device verifies",
      "note": "Manufacturer explanation of device display checks and the limits of a host-computer screen.",
      "checkedAt": "2026-10-02T18:53:56.900Z",
      "contentSha256": "b88fbc2dd8d7eb309d6c6aaba742dbedf7dec05e2ac57a230770e14bd2b2d14d",
      "recordId": "source-6d1aa1923394141c",
      "version": null
    },
    {
      "id": "x425-btc-core-getblockchaininfo",
      "label": "getblockchaininfo RPC",
      "publisher": "Bitcoin Core",
      "url": "https://bitcoincore.org/en/doc/29.0.0/rpc/blockchain/getblockchaininfo/",
      "locator": "Result: chain, blocks, headers, verificationprogress, initialblockdownload",
      "note": "Network identity and sync-status fields; progress is an estimate.",
      "version": "Bitcoin Core 29.0 RPC reference; not a recommendation to install an old release",
      "checkedAt": "2026-10-02T18:53:55.851Z",
      "contentSha256": "1606375ff762737f95c646b1acc42138eff69ce22d6490aca60f054dedf97ef1",
      "recordId": "source-961282fbeb6f3ea6"
    },
    {
      "id": "x425-btc-bolt11",
      "label": "BOLT 11: Invoice Protocol for Lightning Payments",
      "publisher": "Lightning specification contributors",
      "url": "https://raw.githubusercontent.com/lightning/bolts/1aadb719b4007c4cea0ba6e36b08c4fb53788dee/11-payment-encoding.md",
      "locator": "Human-Readable Part; Data Part; Tagged Fields; Payer / Payee Interactions; Payer / Payee Requirements",
      "note": "Invoice amounts, payment hashes, expiry, signing and feature constraints.",
      "version": "Pinned BOLTs revision",
      "checkedAt": "2026-10-02T18:53:57.096Z",
      "contentSha256": "d2ede88b25ca3017e8cce7cc313a88d3b6a780d34ded2d403b996b2a8c7e9810",
      "recordId": "source-e70fcc81fb7aecfd"
    }
  ],
  "related": {
    "articles": [
      "bitcoin-address-types",
      "lightning-network-explained",
      "bitcoin-merchant-invoices"
    ],
    "dossiers": [],
    "wallets": []
  },
  "revisionHistory": [
    {
      "date": "2026-10-02",
      "kind": "published",
      "summary": "First publication after primary-source research and separate automated verification."
    }
  ],
  "citation": "Degrees of Satoshi editorial project. “Checking a Bitcoin address: format, network and recipient.” Published 2026-10-02; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/bitcoin-address-validation/"
}
