BTCintel
nodeok
mempool68,715 tx
node next1.08 sat/vB
retarget40 blocks
chainmainnet

Docs

Block audit

btcintel mirrors the node's mempool and keeps, at every moment, the block it would build now: the first projected block. When the node connects a block, the engine compares that template with what the block actually contains and writes the difference once, as GET /v1/blocks/{id}/audit and the audit sibling of the block page. It is a record of what one well-connected node expected; it is not a verdict on the miner.

What the row holds

FieldMeaning
template_at, template_ntx, template_weight, template_fees_satThe template as of the last projection recompute before the block: its size and the fees it carried.
missingTemplate transactions the block did not include, each with the package fee rate it was selected at and its age in our mempool at block time.
added, freshBlock transactions our mempool knew but the template had not selected; fresh lists those that arrived within 30 seconds before the block.
never_seenBlock transactions our mempool never saw: out-of-band inclusion, or propagation we missed.
fullrbfBlock transactions that replaced a mempool transaction which did not signal BIP125.
match_rate, expected_fees_sat, expected_weightHow much of the template the block kept, and what the template would have earned.
template_min_rate, block_min_rateThe lowest fee rate the template included and the lowest the block included among transactions we knew.
sanctioned_missing, sanctions_fetch_idMissing transactions that spend an address with a current OFAC listing, each with the claim it hits, and the OFAC fetch that was in force. Computed against the snapshot of that moment, so the answer never changes when the list does.
sigopReserved: empty until the projection tracks sigop limits.

What it does not say

There is no censored field and there will not be one. A missing transaction has many honest explanations: it reached the miner late, it conflicted with something the miner saw first, the miner's template policy differs from Bitcoin Core's defaults, our node's view lagged. The row records the evidence; reading it as a policy claim about a pool is a separate Curated claim with a named source, a method and a citation, exactly like every other claim in the Curated band.

Absent and empty

The row is written once at block connect and never updated or backfilled. Blocks connected while the engine was down have no audit: absent means the engine did not see the block, not that the block was perfect. An empty missing list means the block contained every template transaction. The block list carries a summary, audit.match_rate and audit.missing, on the blocks that have a row.

curl -s https://api.btcintel.io/v1/blocks/900000/audit \
  | jq '.audit | {match_rate, missing: (.missing | length), never_seen: (.never_seen | length), fullrbf: (.fullrbf | length), sanctioned_missing}'