CalcMint

Bitcoin KYC Tracing Guide

What it means for a Bitcoin address to be "KYC," why the distinction matters for your privacy and fungibility, and how to actually trace which of your UTXOs are exchange-linked.

If you've bought Bitcoin on an exchange and also received it peer-to-peer, your wallet holds coins with very different histories — even though every satoshi looks identical on-screen. Some of your UTXOs can be traced back to a KYC exchange that verified your identity; others may have no such link. This guide explains why that distinction matters and walks through using the free KYC Address Tracker to map it out for your own wallet — entirely in your browser, with nothing uploaded.

What does it mean for a Bitcoin address to be "KYC"?

Bitcoin itself has no concept of identity — addresses are just public keys. "KYC" (Know Your Customer) is a label you attach to an address once you have evidence connecting it to a verified account somewhere: an exchange sent coins to it, or coins were sent from it to an exchange withdrawal or deposit address you recognize. Once that link exists, every other address that address has touched inherits some of that exposure — which is exactly what on-chain surveillance firms and exchanges themselves do when screening deposits.

A KYC-linked UTXO isn't inherently unsafe or unspendable. It just means the coin's history is provably connected to an identity, and that connection can surface again — for example, if you later deposit that coin (or anything mixed with it) to another regulated exchange.

Why KYC vs. non-KYC actually matters

Fungibility and coin selection

Bitcoin is only as fungible as your wallet software makes it. If your wallet blindly combines a KYC-linked UTXO with a non-KYC one in the same transaction, both inputs become linked in the eyes of anyone doing chain analysis — the "clean" coin inherits the exposure of the other. Knowing which UTXOs are which lets you do deliberate coin control: choose non-KYC inputs when privacy matters, and KYC inputs when you're transacting with a regulated counterparty anyway.

Selling or depositing without over-sharing

When you send coins to a new exchange, its compliance team can often trace the deposit back through several hops. If a non-KYC UTXO gets combined with a KYC one on its way in, you may end up revealing more of your transaction history than the deposit alone required.

Understanding your real exposure

Many holders simply don't know how exposed their "private" acquisitions really are. A coin bought peer-to-peer years ago might have passed through an address that later touched a KYC exchange — address reuse and consolidation are the usual culprits. Mapping the history is the only way to find out.

How on-chain tracing actually works

Every Bitcoin transaction spends one or more existing outputs (inputs) and creates new ones (outputs). Following a UTXO's history backward means walking its inputs to find where the coins came from; following it forward means walking the outputs it eventually funded. Two ideas make this practically useful:

This is the same basic method blockchain analytics companies use, just run by you, for your own wallet, with the explicit goal of protecting your own privacy instead of surveilling someone else's.

Step-by-step: using the KYC Address Tracker

The KYC Address Tracker turns this process into a visual, clickable graph instead of a spreadsheet of txids. Here's the workflow:

  1. Add your own addresses. Export the address list (and, ideally, balances) from your hardware wallet and add each one — they show up as square nodes.
  2. Fetch transaction history. Click a node and hit "Fetch transaction history" to pull its on-chain activity from a public block explorer API and draw every counterparty address as a connected node.
  3. Flag what you know. As you recognize an address — an exchange, a friend, a known KYC deposit — flag it Own/External and KYC/Non-KYC. Flagging one address KYC automatically propagates that taint forward through everything it later funded.
  4. Declutter as it grows. Busy addresses (exchange hot wallets especially) can explode into hundreds of connections. Use "Hide outputs"/"Hide inputs" on a node to collapse a branch you don't care about, and the Filter menu to show only own or only external addresses.
  5. Pull real balances. "Get balances" fetches current confirmed balances for every address in one batch, so you can see at a glance which UTXOs still hold value.
  6. Switch to List view for a sortable table (address, balance, last transaction, KYC status) instead of the graph — useful once you have dozens of addresses mapped.
  7. Save your work. Export the whole map as a JSON file any time and re-import it later to keep investigating — nothing is stored on any server in between.

Try it on your own wallet

Runs entirely client-side — your addresses are only ever sent to the block explorer API you choose, never to this site.

Open the KYC Address Tracker →

Limitations and best practices

Tracing is a research aid, not a legal proof. A shared transaction doesn't always mean shared ownership, and the "common-input-ownership" assumption (all inputs to one transaction belong to the same wallet) can occasionally be wrong — CoinJoins and some wallet-coordinated transactions break it on purpose. Treat inferred (propagated) KYC flags as a strong hint to investigate, not a final verdict, and keep your own notes on why you flagged an address the way you did.

On privacy specifically: this tool never sends your data to CalcMint's server. It does, however, query the block explorer API you configure (mempool.space by default) directly from your browser to fetch transaction history and balances — that provider necessarily sees the addresses you look up, the same way it would if you searched them manually on its website.

Frequently asked questions

What does it mean for a Bitcoin UTXO to be "KYC"?

It means the UTXO's on-chain history can be linked — directly or through a chain of transactions — to an address that interacted with an identity-verified exchange account.

Can this tool prove an address belongs to an exchange?

No. It surfaces on-chain connections for you to review and flag manually based on evidence you recognize (a labeled withdrawal, a known deposit address, etc). It doesn't guess ownership on its own.

Does the KYC Address Tracker upload my wallet data anywhere?

No. Everything runs in your browser and saves to your browser's local storage unless you explicitly export a JSON file. The only outbound calls are to the block explorer API, to look up transaction history and balances.

What's the difference between a confirmed and an inferred KYC flag?

Confirmed means you explicitly marked the address KYC because you have direct evidence. Inferred (shown in amber) means it was automatically tainted because it received funds forwarded from a confirmed KYC address — you can override it any time.

Why would I want to keep KYC and non-KYC coins separate?

To preserve fungibility and control what history you reveal when spending. Mixing a non-KYC coin into the same transaction as a KYC one links their histories together going forward.