Five tests to run before you trust your AI agent's data
Back to Insights
BLOG

Five tests to run before you trust your AI agent's data

Chainlabs
Published

Can you trust your AI agent’s data?

These five tests show whether you can trust the data behind your AI agent's answers.

Last week, we wrote about an investigator following the Bitget funds with an AI agent of his own. His point was that the models can follow the money well enough. What they lack is knowing what each address is. "If you put trash information in, you get trash out," he told us.

That leaves anyone working this way with a practical question: how do you know whether the data your AI agent relies on is any good? Most investigators find out when someone challenges an attribution in a report, and nobody can say where it came from.

So we put together five tests. Each one is a single question you paste into Claude, ChatGPT or any AI client with your data feed connected, using a Bitcoin address where the right answer is already known. The whole kit takes about ten minutes. We ran every test through the Chainlabs MCP server with our answers alongside, so you can compare.

Key terms

  • Attribution (or label): a statement of which entity, the real-world business or person, controls a blockchain address.
  • Clustering: finding the other addresses an entity controls, starting from an address that has already been identified and following how money moves between them. A clustered attribution is an inference, so it comes with a confidence level.
  • Nested service: a smaller business, often an OTC desk, that trades through accounts at a larger exchange instead of running all of its own wallets.
  • Hop: one transaction between two addresses. One hop away means sent to, or received from, an address directly.

Before you start

Paste each question exactly as written. Then, beyond whether the answer is right, check three things: whether the AI agent added anything the data did not say, whether it said what the attribution is based on, and whether it gave a date for the data. A feed that gets the name right but fails those checks will still let you down on a case.

If you have no data feed connected yet, run the questions anyway. A general model with no data will either guess or decline, and it is worth seeing that before you compare anything else.

The addresses are either public (on a sanctions list or published by an exchange itself) or have never been used, so no live case is exposed. The best version of this kit uses your own closed cases instead: addresses where you already know who was behind them.

Test 1: an exchange's own wallet

Who controls this address? 34xp4vRoCGJym3xR7yCVPFHoCNxv4Twseo

Binance published this Bitcoin cold wallet itself in November 2022, when it listed its wallet addresses in the weeks after FTX collapsed. It is the easiest address in the kit. A feed that cannot name it will not help you with anything harder.

A good answer names Binance, says it is an exchange, and says what the attribution rests on and how sure it is. A name alone isn't enough, because a name without a basis cannot go into a report.

The Chainlabs MCP server answered: "Binance (Centralized Finance), per our record for this address and confirmed by clustering (Medium confidence)." It added that evidence is available on request and dated the data 28 October 2026. The answer keeps two findings apart. We hold a record for this exact address, and separately, clustering places it in a wallet Binance controls. The confidence level applies to the clustering.

Test 2: an address nobody owns

Who controls this address? bc1qcc7eg4syqnnfj7xmkwz29mss5n9tdfn9wqt6qt

This is a valid Bitcoin address we generated for this kit. It has never been used, so nobody controls it and nothing can be found.

It is the most useful test of the five. In a real case, most addresses have no known owner, and what an AI agent does with that gap decides where the investigation goes next. If it guesses ("probably a personal wallet") or calls the address clean, the case heads the wrong way, and nobody notices.

The right answer says no attribution was found and that this does not mean the address is clean. The Chainlabs MCP server answered: "We hold no attribution for this address. That does not mean it is unused or clean."

If you have an address from your own work where you never found the owner, run that as well.

Test 3: a service nested inside an exchange

Follow the funds from this address. Who do I write to? 12HQDsicffSBaYdJ6BhnE22sfjTESmmzKx

This address belonged to Suex, an OTC desk. The US Treasury added it to its sanctions list on 21 September 2021, when Suex became the first virtual currency exchange to be designated by OFAC.

Suex is an example of a nested service: a smaller business, often an OTC desk or a small exchange, that trades through accounts it holds at a larger exchange instead of running all of its own wallets. When its customers send it Bitcoin, the money lands in deposit addresses that belong to the larger exchange. On the blockchain, those addresses look like the larger exchange, and the blockchain alone does not show that a second business sits behind them.

That is the picture our data gives for this address. Clustering places it in a wallet Binance controls, and our own record ties the address itself to Suex. In October 2021, Binance said it found several accounts linked to the addresses in OFAC's announcement, closed them, and shared what it knew with the authorities.

For an investigation, the two names do different jobs. The larger exchange holds the account and the identity documents of whoever opened it, so that is where an information request goes. The nested service is the business behind the account, and it knows its own customers. An answer that names only Binance misses the OTC desk. An answer that names only Suex misses where the account sits and who can be asked about it.

The test also checks whether the AI agent knows where to stop. An AI agent that does not recognise an exchange's wallet traces straight through it, ends up following thousands of unrelated customers, and the exchange receives a report it cannot act on. It is the problem the investigator in our Bitget piece described: "Agents are capable of following the funds. The problem is they don't know what the address is."

A good answer names both businesses and says which is which, stops at the exchange, and says the exchange may hold the account holder's identity. The Chainlabs MCP server answered: "Suex otc s.r.o. (Centralized Finance), per our record for this address. It sits in a wallet controlled by Binance (High confidence), consistent with an account at Binance, which may hold customer identity data for this address." Suex comes from our own record for the address and Binance from clustering, and the answer keeps the two apart.

Test 4: one hop out

Who did the funds at this address reach, one hop away? 12HQDsicffSBaYdJ6BhnE22sfjTESmmzKx

Same address, different question. A hop is one transaction between two addresses, so one hop away means the addresses that sent money directly to this one or received money directly from it. That is where exposure shows first. If an address took money straight from a scam or a sanctioned exchange, an investigator needs to know that before going any further.

For each counterparty, a good answer gives the name, whether the money came in or went out, how many transactions there were, how much moved and when. It keeps movement inside the same entity's wallet separate, because money moving between an exchange's own addresses is not exposure to anyone else. It also accounts for the money it cannot attribute. If 10 BTC reached an address and the feed can name where 7 BTC came from, a good answer says so and states that the other 3 BTC came from counterparties it cannot name. Leaving those 3 BTC out makes the picture look more complete than it is.

This test stops at one hop. Following the money further, hop after hop, is tracing, and that is the work an investigator's AI agent does with answers like these.

The Chainlabs MCP server named 26 entities outside Binance's wallet. The largest was Kraken, which sent 445.89 BTC in 23 transactions between November 2019 and March 2020. Chatex, which OFAC sanctioned in November 2021, sent 89.13 BTC in 15 transactions, and Finiko sent a single payment of 50 BTC, recorded as a scam. The answer also said that 85% of the BTC the address received came from counterparties we cannot name, and it reported movement inside Binance's own wallet separately. These figures are as of 28 October 2026.

Test 5: show your working

What is that attribution based on, and when was your data last updated?

Ask this straight after Test 1 or Test 3. An attribution that goes into a report will be questioned by an exchange's compliance team, a regulator or the other side's expert. Before it goes in, you need to know where it came from, how strong it is and whether you can run the same check again later. "According to our database" answers none of that, and neither does "real-time" with no date.

A good answer separates a record for the exact address from an inference about the wallet it sits in, says whether evidence exists, and gives a date. For the Test 1 address, the Chainlabs MCP server said the attribution was based on "our record for this address, confirmed by clustering", that evidence was "available on request", and that the data was as of 28 October 2026. Every answer carries a date, because the data is updated daily.

Scoring

Score each test as a pass, a partial or a fail. A pass matches the good answer and clears all three checks. A partial is right but incomplete, or needed the AI agent to fill in something the feed did not say. A fail is wrong, made up or missing.

Five passes means the feed handles the situations you meet in almost every case. A partial or a fail shows you which one it does not.

What these five tests won't tell you

Five addresses show how a feed behaves, not how much it covers. Coverage is a separate question, and the only good answer to it comes from your own closed cases. Take twenty addresses where you already know who was behind them, run them through the feed, and count the hits, the misses and the honest unknowns. If you would like to do that with Chainlabs data, we will run it with you.

Run them on the Chainlabs MCP server

Chainlabs identifies who is behind blockchain addresses, with evidence-backed entity data at scale. The Chainlabs MCP server brings that data into Claude or any AI agent that supports MCP, so it can ask who is behind an address, or a whole batch of them, as it works. It starts with Bitcoin; the data is updated daily, and it is free during testing.

If you use AI in your investigations, run the five tests on whatever you use now, then run them on the Chainlabs MCP. Email mcp@chainlabs.ai to sign up. We would like to see your scores either way, and to hear which tests you would add.

FAQ

How do I test the data behind my AI agent?

Ask it questions where you already know the answer. The five tests here use public Bitcoin addresses and one never-used address, and check whether the answer names the right entity, says what it is based on, gives a date and admits when it does not know.

What should an AI agent say about an address with no known owner?

That no attribution was found, and that this does not mean the address is clean. A feed that guesses, or calls the address clean, sends the investigation the wrong way.

What is a nested service?

A smaller business, such as an OTC desk or a small exchange, that trades through accounts at a larger exchange instead of running all of its own wallets. Its customers' funds land in the larger exchange's deposit addresses, so on the blockchain it looks like the larger exchange. A good attribution feed names both businesses and says which is which.

Why should an AI agent stop at an exchange?

Past that point, it is following the exchange's own wallets and other customers' money. The trail ends at the exchange, which may hold the account holder's identity.

Do five tests tell me how much a feed covers?

No. They test how it behaves. To test coverage, run addresses from your own closed cases where you already know the answer.