{
  "$schema": "https://degreesofsatoshi.com/encyclopedia/schemas/article-v1.json",
  "schemaVersion": "1.0.0",
  "id": "bitcoin-dust",
  "canonical": "https://degreesofsatoshi.com/encyclopedia/bitcoin-dust/",
  "collection": "bitcoin",
  "title": "Bitcoin dust: a relay-policy threshold, not a smallest coin",
  "description": "Distinguish Bitcoin dust relay policy from consensus validity and the satoshi unit, including why the threshold depends on the output type and fee setting.",
  "aliases": [],
  "dates": {
    "published": "2026-10-02",
    "modified": "2026-10-02",
    "verified": "2026-10-02T18:15:23.891Z",
    "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": "In Bitcoin Core relay policy, dust is an output whose value is small relative to its estimated spending cost at the configured dust relay fee. It is not a universal minimum amount enforced by Bitcoin consensus, and the threshold depends on the output’s script type and node policy.",
    "claimId": "bitcoin-dust-quick-answer",
    "sourceIds": [
      "core-policy"
    ]
  },
  "keyFacts": [
    {
      "label": "Unit",
      "value": "An amount can be denominated in whole satoshis and still count as dust under relay policy.",
      "sourceIds": [
        "core-policy"
      ],
      "id": "unit",
      "claimId": "bitcoin-dust-fact-unit"
    },
    {
      "label": "Script",
      "value": "Different output types have different estimated spending costs.",
      "sourceIds": [
        "core-policy"
      ],
      "id": "script",
      "claimId": "bitcoin-dust-fact-script"
    },
    {
      "label": "Policy",
      "value": "Relay acceptance and consensus validity answer different questions.",
      "sourceIds": [
        "core-policy",
        "bitcoin-dev-transactions"
      ],
      "id": "policy",
      "claimId": "bitcoin-dust-fact-policy"
    }
  ],
  "prerequisites": [
    "what-is-a-satoshi",
    "bitcoin-transaction-fees-and-mempool"
  ],
  "sections": [
    {
      "id": "threshold",
      "heading": "Why one fixed number is misleading",
      "sourceIds": [
        "core-policy"
      ],
      "paragraphs": [
        "Bitcoin Core v29.0 calculates a dust threshold using the output’s serialized size, an estimate of the input needed to spend it and a dust relay fee. Its treatment distinguishes witness and non-witness spending costs.",
        "Quoting a single dust threshold without identifying the script and policy setting omits part of the rule. Some provably unspendable outputs are treated differently because they are not expected to require a later spend."
      ]
    },
    {
      "id": "economics",
      "heading": "A small output can become costly to use",
      "sourceIds": [
        "bip141",
        "core-walletcreatefundedpsbt"
      ],
      "paragraphs": [
        "For illustration, if adding an input costs about 70 virtual bytes and the chosen fee rate is 20 sat/vB, that input contributes about 1,400 satoshis to the fee estimate. A 500-satoshi receipt would add less value than that illustrative marginal fee. Actual sizes depend on the script and signature.",
        "This economic comparison is separate from a node’s configured dust policy. Fee conditions can change, and a wallet may have other reasons for spending or excluding an output."
      ]
    },
    {
      "id": "privacy",
      "heading": "Unexpected small receipts do not authorize spending",
      "sourceIds": [
        "bitcoin-dev-wallets",
        "core-lockunspent",
        "bitcoin-whitepaper"
      ],
      "paragraphs": [
        "Receiving a tiny output does not reveal a private key or require you to spend it. Combining that receipt with other coins can create additional public relationships, so a wallet’s coin-control tools may be relevant.",
        "Avoid treating every tiny receipt as either harmless income or proof of a successful attack. Inspect its provenance and how your wallet would select it."
      ]
    }
  ],
  "faq": [
    {
      "question": "Is one satoshi always a relayable output?",
      "answer": "No. One satoshi is an amount unit. A node can reject an otherwise valid transaction from its mempool under dust or other relay policy.",
      "sourceIds": [
        "core-policy"
      ]
    }
  ],
  "claims": [
    {
      "id": "bitcoin-dust-quick-answer",
      "articleSlug": "bitcoin-dust",
      "statement": "In Bitcoin Core relay policy, dust is an output whose value is small relative to its estimated spending cost at the configured dust relay fee. It is not a universal minimum amount enforced by Bitcoin consensus, and the threshold depends on the output’s script type and node policy.",
      "sourceIds": [
        "source-d8199d250aac8f2f"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-d8199d250aac8f2f",
          "locator": "GetDustThreshold; IsDust"
        }
      ],
      "scope": {
        "collection": "bitcoin",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:15:23.891Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Read GetDustThreshold/IsDust: serialized output plus estimated spend size, witness treatment, configurable dustRelayFee and unspendable-output zero threshold. This is relay policy, not a consensus minimum denomination.",
          "Recomputed illustrative 70 vB × 20 sat/vB = 1,400 sat; the example is not a universal input-size quote. Added section 10 privacy support for combining receipts."
        ]
      }
    },
    {
      "id": "bitcoin-dust-fact-unit",
      "articleSlug": "bitcoin-dust",
      "statement": "Unit: An amount can be denominated in whole satoshis and still count as dust under relay policy.",
      "sourceIds": [
        "source-d8199d250aac8f2f"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-d8199d250aac8f2f",
          "locator": "GetDustThreshold; IsDust"
        }
      ],
      "scope": {
        "collection": "bitcoin",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:15:23.891Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Read GetDustThreshold/IsDust: serialized output plus estimated spend size, witness treatment, configurable dustRelayFee and unspendable-output zero threshold. This is relay policy, not a consensus minimum denomination.",
          "Recomputed illustrative 70 vB × 20 sat/vB = 1,400 sat; the example is not a universal input-size quote. Added section 10 privacy support for combining receipts."
        ]
      }
    },
    {
      "id": "bitcoin-dust-fact-script",
      "articleSlug": "bitcoin-dust",
      "statement": "Script: Different output types have different estimated spending costs.",
      "sourceIds": [
        "source-d8199d250aac8f2f"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-d8199d250aac8f2f",
          "locator": "GetDustThreshold; IsDust"
        }
      ],
      "scope": {
        "collection": "bitcoin",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:15:23.891Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Read GetDustThreshold/IsDust: serialized output plus estimated spend size, witness treatment, configurable dustRelayFee and unspendable-output zero threshold. This is relay policy, not a consensus minimum denomination.",
          "Recomputed illustrative 70 vB × 20 sat/vB = 1,400 sat; the example is not a universal input-size quote. Added section 10 privacy support for combining receipts."
        ]
      }
    },
    {
      "id": "bitcoin-dust-fact-policy",
      "articleSlug": "bitcoin-dust",
      "statement": "Policy: Relay acceptance and consensus validity answer different questions.",
      "sourceIds": [
        "source-d8199d250aac8f2f",
        "source-b282fdecc069b74d"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-d8199d250aac8f2f",
          "locator": "GetDustThreshold; IsDust"
        },
        {
          "sourceId": "source-b282fdecc069b74d",
          "locator": "P2PKH Script Validation; Transaction Fees And Change"
        }
      ],
      "scope": {
        "collection": "bitcoin",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:15:23.891Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Read GetDustThreshold/IsDust: serialized output plus estimated spend size, witness treatment, configurable dustRelayFee and unspendable-output zero threshold. This is relay policy, not a consensus minimum denomination.",
          "Recomputed illustrative 70 vB × 20 sat/vB = 1,400 sat; the example is not a universal input-size quote. Added section 10 privacy support for combining receipts."
        ]
      }
    }
  ],
  "sources": [
    {
      "id": "core-policy",
      "label": "Bitcoin Core relay-policy implementation",
      "publisher": "Bitcoin Core",
      "url": "https://raw.githubusercontent.com/bitcoin/bitcoin/v29.0/src/policy/policy.cpp",
      "locator": "GetDustThreshold; IsDust",
      "note": "Dust depends on script spend cost and relay-fee policy, not a consensus minimum.",
      "version": "Bitcoin Core v29.0",
      "checkedAt": "2026-10-02T17:03:40.248Z",
      "contentSha256": "cddacdf92b6ba51198a9ea9f63585cabbf6e48dfc718032babd09e271386aa34",
      "recordId": "source-d8199d250aac8f2f"
    },
    {
      "id": "bitcoin-dev-transactions",
      "label": "Bitcoin Developer Guide: Transactions",
      "publisher": "Bitcoin developer documentation contributors",
      "url": "https://developer.bitcoin.org/devguide/transactions.html",
      "locator": "P2PKH Script Validation; Transaction Fees And Change",
      "note": "UTXO inputs, transaction outputs, change and the difference paid as a fee.",
      "version": null,
      "checkedAt": "2026-10-02T17:03:41.190Z",
      "contentSha256": "449ae88ea59f9b198c398d3f5f56f83a92cd6be1638fa6681a1fdeea164892c0",
      "recordId": "source-b282fdecc069b74d"
    },
    {
      "id": "bip141",
      "label": "Segregated Witness consensus layer",
      "publisher": "Bitcoin BIPs contributors",
      "url": "https://raw.githubusercontent.com/bitcoin/bips/927b6de9915c9262615a6399de51b200f81e5aa4/bip-0141.mediawiki",
      "locator": "Block size; Transaction size",
      "note": "Transaction weight and virtual-size definitions in the SegWit specification.",
      "version": "BIP-141; immutable revision pinned in source URL",
      "checkedAt": "2026-10-02T17:22:20.465Z",
      "contentSha256": "d72409335872a32494f75e7547589abf4b3b23b6beebe6bc6999c7a84b135e2c",
      "recordId": "source-896e868816ad19d1"
    },
    {
      "id": "core-walletcreatefundedpsbt",
      "label": "walletcreatefundedpsbt RPC",
      "publisher": "Bitcoin Core",
      "url": "https://bitcoincore.org/en/doc/29.0.0/rpc/wallet/walletcreatefundedpsbt/",
      "locator": "Arguments and result fields",
      "note": "Input selection, fee units, change output, selected inputs and transaction funding.",
      "version": "Bitcoin Core 29.0.0 RPC",
      "checkedAt": "2026-10-02T17:03:40.827Z",
      "contentSha256": "d30514044f4ab73bb52b4f8d9bb2d5b8a64482c26fd1b63be11defcb0f2ac6d6",
      "recordId": "source-a8abe4366f2656ba"
    },
    {
      "id": "bitcoin-dev-wallets",
      "label": "Bitcoin Developer Guide: Wallets",
      "publisher": "Bitcoin developer documentation contributors",
      "url": "https://developer.bitcoin.org/devguide/wallets.html",
      "locator": "Wallet Programs; Public Key Distribution-Only Wallets; Hierarchical Deterministic Key Creation",
      "note": "Spending keys, address derivation, backups and privacy trade-offs.",
      "version": null,
      "checkedAt": "2026-10-02T17:03:41.163Z",
      "contentSha256": "e136c099f4abfa15673e3ead4f06e61536de38a71b88ef4a8965706c718d5893",
      "recordId": "source-38ff15e10892f1ee"
    },
    {
      "id": "core-lockunspent",
      "label": "lockunspent RPC",
      "publisher": "Bitcoin Core",
      "url": "https://bitcoincore.org/en/doc/29.0.0/rpc/wallet/lockunspent/",
      "locator": "Arguments and result fields",
      "note": "Preventing specified wallet outputs from automatic coin selection.",
      "version": "Bitcoin Core 29.0.0 RPC",
      "checkedAt": "2026-10-02T17:03:41.086Z",
      "contentSha256": "f8b3a01fa0af658e8f7d3e4d0b6b78ab86d58ed37d8751a0c448b46968c8969b",
      "recordId": "source-9f8c993a5e0440ca"
    },
    {
      "id": "bitcoin-whitepaper",
      "label": "Bitcoin: A Peer-to-Peer Electronic Cash System",
      "publisher": "Satoshi Nakamoto",
      "url": "https://bitcoin.org/bitcoin.pdf",
      "locator": "Sections 4–5 and 7–11",
      "note": "Most-work chain selection, Merkle inclusion, SPV limits and transaction change.",
      "version": "2008 paper",
      "checkedAt": "2026-10-02T17:03:41.335Z",
      "contentSha256": "b1674191a88ec5cdd733e4240a81803105dc412d6c6708d53ab94fc248f4f553",
      "recordId": "source-0e46aca4dbc5a030"
    }
  ],
  "related": {
    "articles": [
      "bitcoin-fee-rate",
      "bitcoin-coin-control",
      "bitcoin-virtual-size"
    ],
    "dossiers": [],
    "wallets": []
  },
  "revisionHistory": [
    {
      "date": "2026-10-02",
      "kind": "published",
      "summary": "Initial Bitcoin encyclopedia entry at this permanent URL."
    },
    {
      "date": "2026-10-02",
      "kind": "publishing-format",
      "summary": "Added reusable claims, explicit source locators, and matching Markdown and JSON. This publishing change does not itself establish factual verification."
    }
  ],
  "citation": "Degrees of Satoshi editorial project. “Bitcoin dust: a relay-policy threshold, not a smallest coin.” Published 2026-10-02; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/bitcoin-dust/"
}
