Self-hosted Bitcoin transaction analysis for organizations requiring compliance monitoring without third-party privacy risks or excessive costs.
Companies forced to conduct blockchain analysis for regulatory compliance can now do so with complete data sovereignty:
Import comprehensive address databases from trusted public sources:
Organizations can upload and maintain comprehensive address databases for compliance monitoring:
Self-hosting eliminates the privacy leaks and excessive costs of third-party chain analysis services:
Meet AML/KYC requirements by screening customer Bitcoin transactions against sanctioned addresses without exposing sensitive customer data to external chain analysis firms.
Screen deposits and withdrawals against comprehensive risk databases while maintaining customer privacy and avoiding the high costs of commercial chain analysis services.
Implement comprehensive compliance monitoring for Bitcoin payments while protecting merchant and customer transaction privacy from external blockchain surveillance companies.
This self-hosted solution enables companies that are legally required to perform blockchain analysis to achieve full regulatory compliance while minimizing privacy exposure and operational costs. Transaction data, customer information, and business intelligence remain completely within your infrastructure, eliminating the privacy risks and excessive fees associated with third-party chain analysis services like Chainalysis, Elliptic, or TRM Labs.
Enterprise Address Database Management: Users can upload hundreds of thousands of addresses from publicly available lists such as Open Sanctions and ChainAbuse. This allows organizations to achieve compliance equivalent to commercial chainanalysis tools without relying on third-party services that cause privacy leaks and cost substantial amounts of money. Services running this platform can self-host tags and memos for addresses and transactions they conduct with their users without sharing sensitive information with external chain analysis providers.
The Bitcoin Transaction Analyzer uses the mempool.space API to perform comprehensive blockchain analysis. Every transaction discovered during the analysis (initial transaction plus all transactions found during 3-hop network traversal) is analyzed against 9 different patterns to identify behavioral characteristics, privacy practices, and potential risks.
GET /api/tx/{txid}
- Retrieve transaction detailsGET /api/address/{address}
- Get address statisticsGET /api/address/{address}/txs
- Get address transaction historyPurpose: Immediately terminates analysis when encountering very large CoinJoin transactions (≥10 inputs AND ≥10 outputs) to prevent resource exhaustion and excessive API usage.
Retrieves complete transaction details including inputs (vin) and outputs (vout).
Checks if transaction has ≥10 inputs AND ≥10 outputs (indicates very large mixing transaction).
Confirms transaction follows CoinJoin pattern with similar output amounts.
Analysis stops immediately, returns "Large coinjoin detected" message with hop location.
Purpose: Identifies privacy-enhancing transactions that mix multiple inputs and outputs with similar amounts to obscure transaction trails.
Retrieves complete transaction details including inputs (vin) and outputs (vout).
Checks if transaction has ≥5 inputs AND ≥5 outputs (minimum for CoinJoin mixing).
Extracts all output values and calculates unique amounts.
Flags as CoinJoin if: unique_amounts < total_amounts / 3
This indicates many outputs have identical amounts (mixing characteristic).
Purpose: Identifies transactions that distribute funds from few inputs to many outputs, typical of exchange payouts or salary payments.
Computes: ratio = input_count / output_count
Flags as batch if: ratio < 0.2
(less than 1:5 ratio)
Purpose: Identifies transactions that combine many inputs into fewer outputs, typical of wallet cleanup or exchange consolidation.
Computes: ratio = input_count / output_count
Flags as consolidation if: ratio > 5
(more than 5:1 ratio)
Purpose: Identifies transactions originating from high-activity addresses, typically indicating exchange or institutional withdrawals.
For each input address:
Flags if address has >100 transactions (high activity threshold)
Get previous transaction for each input:
Check inputs of previous transactions for high-activity addresses
Categorizes findings by hop distance (immediate vs. one-hop-back)
Purpose: Identifies transactions sending funds to high-activity addresses, typically indicating exchange or institutional deposits.
For each output address:
Flags if address has >100 transactions
For each output address, get spending transactions:
Then check those spending transactions' outputs for high-activity addresses
Confirms transactions actually spend from the original output addresses
For validated spending transactions:
Check if next-hop destinations have >100 transactions
Purpose: Identifies transactions sending funds to previously used addresses, reducing privacy and creating linkable patterns.
For each output address:
Retrieves address statistics including transaction count
Flags if address has >1 transaction (indicating previous use)
Computes reuse percentage and identifies most-used addresses
Purpose: Identifies transactions where >95% of output value is quickly forwarded within 6 blocks, indicating payment routing or intermediary behavior.
Requires confirmed transaction with block height
Sum all output values for percentage calculations
For each output address:
Find transactions that spend from this output
For each spending transaction:
Sum rapidly forwarded amounts and check if >95% of total
Purpose: Identifies transactions sending funds to previously used addresses that had zero balance, indicating potential address recycling or surveillance evasion.
Requires confirmed transaction with block height
For each output address:
Verify address has >1 transaction (reused)
Get complete transaction history:
Calculate balance at time of current transaction
For each historical transaction (before current):
Flag if address was reused but had zero balance
Purpose: Identifies transactions involving monitored addresses flagged for suspicious activity, compliance violations, or regulatory concerns.
From transaction data, collect all addresses from inputs and outputs
For each match, record:
Store alerts in database for compliance reporting and audit trails
All 11 transaction analysis flags are applied to the initial transaction immediately after fetching from the API.
The analyzer performs 10 hops total:
All 11 transaction analysis flags are applied to every transaction discovered during the 5-hop backward and 5-hop forward traversal:
Throughout the analysis, all discovered addresses are checked against the monitored address database.
All API calls include rate limiting (0.5 second delays) to respect mempool.space API limits.
Transaction and address data are cached during analysis to minimize API calls and improve performance.
All flags, alerts, and analysis data from every analyzed transaction are compiled into a comprehensive report with:
This documentation covers all 11 transaction analysis flags implemented in the Bitcoin Blockchain Analyzer.
For technical support or questions, please refer to the system administrator.