[{"data":1,"prerenderedAt":3140},["ShallowReactive",2],{"article-multisig-contract-wallet-attribution":3,"content-query-6PetJljpvJ":745,"related-multisig-contract-wallet-attribution":1288},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"slug":10,"date":11,"lastUpdated":11,"author":12,"readingTime":13,"category":14,"tags":15,"ogImage":21,"featured":6,"body":22,"_type":739,"_id":740,"_source":741,"_file":742,"_stem":743,"_extension":744},"\u002Farticles\u002F38-multisig-contract-wallet-attribution","articles",false,"","One address, many actors: contract wallet attribution","Contract wallets and multisigs are not one-person accounts. Experts reconstruct owners, signers, modules, and relayers to attribute on-chain activity.","multisig-contract-wallet-attribution","2026-08-29","Nick Kampe",12,"Methodology",[16,17,18,19,20],"multisig","wallet","account-abstraction","smart-contracts","evidence","\u002Fog\u002Fmultisig-contract-wallet-attribution.png",{"type":23,"children":24,"toc":714},"root",[25,33,40,56,79,84,89,95,102,107,113,118,124,137,143,164,170,193,199,204,239,252,258,263,269,283,288,294,299,498,503,509,514,527,533,538,543,581,602,608,614,625,631,640,646,655,661,670,676,685],{"type":26,"tag":27,"props":28,"children":29},"element","p",{},[30],{"type":31,"value":32},"text","When a disputed wallet is a smart contract, the address is an execution account, not a person. Authority over it is defined by code: an owner list, a signature threshold, enabled modules, guards, and sometimes delegation or account-abstraction infrastructure. For fraud, corporate, and probate counsel the question is therefore not \"who owns this address\" but \"whose authorization moved these assets,\" and where that answer stops being a chain fact and becomes inference.",{"type":26,"tag":34,"props":35,"children":37},"h2",{"id":36},"contract-wallets-are-not-ordinary-accounts",[38],{"type":31,"value":39},"Contract Wallets Are Not Ordinary Accounts",{"type":26,"tag":27,"props":41,"children":42},{},[43,45,54],{"type":31,"value":44},"Ethereum distinguishes externally owned accounts (EOAs) from contract accounts. An EOA is controlled by its private key; a contract account has no private key and acts according to its code when called. EIP-7702 adds a third fact an analyst may need to account for: an EOA can carry a delegation indicator that causes calls to execute delegated code. The ",{"type":26,"tag":46,"props":47,"children":51},"a",{"href":48,"rel":49},"https:\u002F\u002Fethereum.org\u002Fdevelopers\u002Fdocs\u002Faccounts\u002F",[50],"nofollow",[52],{"type":31,"value":53},"ethereum.org account documentation",{"type":31,"value":55}," describes the EOA and contract-account distinction.",{"type":26,"tag":27,"props":57,"children":58},{},[59,61,68,70,77],{"type":31,"value":60},"A transaction that appears \"signed by the wallet\" is signed by whatever actors the wallet's code accepts. Contracts cannot sign the way key-based accounts do, which is why the ",{"type":26,"tag":46,"props":62,"children":65},{"href":63,"rel":64},"https:\u002F\u002Feips.ethereum.org\u002FEIPS\u002Feip-1271",[50],[66],{"type":31,"value":67},"ERC-1271 standard",{"type":31,"value":69}," exists: a contract exposes ",{"type":26,"tag":71,"props":72,"children":74},"code",{"className":73},[],[75],{"type":31,"value":76},"isValidSignature(hash, signature)",{"type":31,"value":78}," and returns a fixed magic value when the signature is valid for it. Validation can be context dependent, keyed to time, state, or a signer's authorization level.",{"type":26,"tag":27,"props":80,"children":81},{},[82],{"type":31,"value":83},"An analyst who treats a contract-wallet address as an EOA misattributes everything downstream, because the assumption of one key, one signer, one person does not hold.",{"type":26,"tag":27,"props":85,"children":86},{},[87],{"type":31,"value":88},"Safe Smart Account, formerly Gnosis Safe, is a common multisig implementation. A Safe stores an owner list and a threshold, the minimum number of owner approvals needed to execute, on-chain. Changes to the owner set or threshold are Safe transactions, so the same address can have different control arrangements at different times.",{"type":26,"tag":34,"props":90,"children":92},{"id":91},"the-actors-behind-a-single-address",[93],{"type":31,"value":94},"The Actors Behind a Single Address",{"type":26,"tag":96,"props":97,"children":99},"h3",{"id":98},"owners-and-signers",[100],{"type":31,"value":101},"Owners and Signers",{"type":26,"tag":27,"props":103,"children":104},{},[105],{"type":31,"value":106},"Owners are the addresses permitted to approve transactions; each approval is a signature over the transaction hash. Owners can themselves be contracts, a configuration ERC-1271 anticipated, so owner lists can nest. In Safe's standard execution path, transaction input contains a packed signature value that can include an ECDSA signature, an ERC-1271 contract signature identifying its verifying contract, or a pre-validated hash. For that execution path, the analyst can often enumerate which approving addresses were presented: a chain fact.",{"type":26,"tag":96,"props":108,"children":110},{"id":109},"the-threshold",[111],{"type":31,"value":112},"The Threshold",{"type":26,"tag":27,"props":114,"children":115},{},[116],{"type":31,"value":117},"The threshold is a control setting, not a person; a change from 2-of-3 to 1-of-1 is a concentration-of-control event that leaves its own signed record. The threshold in force on the transfer date is usually the first thing to pin down.",{"type":26,"tag":96,"props":119,"children":121},{"id":120},"modules",[122],{"type":31,"value":123},"Modules",{"type":26,"tag":27,"props":125,"children":126},{},[127,129,135],{"type":31,"value":128},"Modules are contracts an owner set enables through an approved wallet transaction. Once enabled, a module can execute transactions through the wallet without collecting the owner-threshold signatures used in ordinary Safe execution. Evidentiary significance: a transfer executed through a module does not carry owner signatures in the standard ",{"type":26,"tag":71,"props":130,"children":132},{"className":131},[],[133],{"type":31,"value":134},"execTransaction",{"type":31,"value":136}," encoding, and whether owners approved depends on the module logic rather than the threshold.",{"type":26,"tag":96,"props":138,"children":140},{"id":139},"guards",[141],{"type":31,"value":142},"Guards",{"type":26,"tag":27,"props":144,"children":145},{},[146,148,154,156,162],{"type":31,"value":147},"Guards add pre- and post-execution checks; unlike modules they cannot originate transactions, only pass or block them. A guard change is recorded on-chain, including the ",{"type":26,"tag":71,"props":149,"children":151},{"className":150},[],[152],{"type":31,"value":153},"ChangedGuard",{"type":31,"value":155}," event emitted by Safe's ",{"type":26,"tag":71,"props":157,"children":159},{"className":158},[],[160],{"type":31,"value":161},"setGuard",{"type":31,"value":163}," function. That interface is a transaction guard on ordinary Safe execution. A module-executed transfer is a different path, so a claim that the guard should have stopped it requires showing the guard actually ran on that execution.",{"type":26,"tag":96,"props":165,"children":167},{"id":166},"relayers-bundlers-paymasters-and-delegated-code",[168],{"type":31,"value":169},"Relayers, Bundlers, Paymasters, and Delegated Code",{"type":26,"tag":27,"props":171,"children":172},{},[173,175,182,184,191],{"type":31,"value":174},"Submission is not approval. Safe contracts allow relayed execution, so the account submitting an execution can differ from the owners who signed it. Under account abstraction the separation is structural: ",{"type":26,"tag":46,"props":176,"children":179},{"href":177,"rel":178},"https:\u002F\u002Feips.ethereum.org\u002FEIPS\u002Feip-4337",[50],[180],{"type":31,"value":181},"ERC-4337",{"type":31,"value":183}," defines UserOperations, a pseudo-transaction naming the sender account, factory data, gas limits and fees, optional paymaster data, and a signature the account itself validates. Bundlers collect valid UserOperations and submit them to a shared EntryPoint contract, so the on-chain transaction's sender is the bundler, not the smart-account address. Paymasters can sponsor fees. A related mechanism is ",{"type":26,"tag":46,"props":185,"children":188},{"href":186,"rel":187},"https:\u002F\u002Feips.ethereum.org\u002FEIPS\u002Feip-7702",[50],[189],{"type":31,"value":190},"EIP-7702",{"type":31,"value":192},", under which an EOA signs an authorization tuple writing a persistent delegation indicator into its account code. The authorization list is processed before that transaction's execution, and the indicator remains in effect on later calls until it is updated, so attribution requires reading the delegation indicator in effect at the disputed date along with the delegate contract.",{"type":26,"tag":34,"props":194,"children":196},{"id":195},"reconstructing-configuration-at-the-disputed-time",[197],{"type":31,"value":198},"Reconstructing Configuration at the Disputed Time",{"type":26,"tag":27,"props":200,"children":201},{},[202],{"type":31,"value":203},"For an identified wallet implementation, configuration changes may be recoverable from its transactions, event logs, and historical state. The analyst must establish from the code and records which changes are observable, then reconstruct the configuration to the relevant date rather than reading today's state. The reconstruction runs in six layers:",{"type":26,"tag":205,"props":206,"children":207},"ol",{},[208,214,219,224,229,234],{"type":26,"tag":209,"props":210,"children":211},"li",{},[212],{"type":31,"value":213},"Classify the account: EOA or contract, including any EIP-7702 delegation indicator, and the implementation behind any proxy.",{"type":26,"tag":209,"props":215,"children":216},{},[217],{"type":31,"value":218},"Rebuild the configuration history to the disputed date.",{"type":26,"tag":209,"props":220,"children":221},{},[222],{"type":31,"value":223},"Classify each execution path: owner-signed, module-executed, or delegated call.",{"type":26,"tag":209,"props":225,"children":226},{},[227],{"type":31,"value":228},"Extract approving addresses from signature data where the execution path encodes it.",{"type":26,"tag":209,"props":230,"children":231},{},[232],{"type":31,"value":233},"Identify infrastructure actors: submitter, gas payer, refund receiver, bundler, paymaster.",{"type":26,"tag":209,"props":235,"children":236},{},[237],{"type":31,"value":238},"Map addresses to persons or entities using off-chain evidence.",{"type":26,"tag":27,"props":240,"children":241},{},[242,244,250],{"type":31,"value":243},"What is not on-chain deserves equal emphasis. Which human held each key is almost always an off-chain question, and confirmations collected before a transaction reached threshold may live only in the wallet provider's services. The ",{"type":26,"tag":46,"props":245,"children":247},{"href":246},"\u002Fresources\u002Funderstanding-wallet-ownership-evidence",[248],{"type":31,"value":249},"evidence methods used to tie keys to people",{"type":31,"value":251}," apply here with one twist: a single key is only part of the authorization.",{"type":26,"tag":34,"props":253,"children":255},{"id":254},"account-abstraction-and-the-erc-4337-pipeline",[256],{"type":31,"value":257},"Account Abstraction and the ERC-4337 Pipeline",{"type":26,"tag":27,"props":259,"children":260},{},[261],{"type":31,"value":262},"ERC-4337 changes how wallets are created and run. The sender account can be deployed for the first time inside the UserOperation via factory data, so the wallet can be created and transacted in one flow. The EntryPoint contract validates gas, calls the account's validation function, then calls it to execute; what counts as a valid signature is defined by the account's own code. Safe's ERC-4337 integration uses a module that validates a UserOperation against Safe owner signatures, then executes a module transaction. The forensic consequence: the chain identifies the account and the executor infrastructure, while authority lives in the account's code.",{"type":26,"tag":34,"props":264,"children":266},{"id":265},"counterfactual-accounts-authorization-before-the-contract-exists",[267],{"type":31,"value":268},"Counterfactual Accounts: Authorization Before the Contract Exists",{"type":26,"tag":27,"props":270,"children":271},{},[272,274,281],{"type":31,"value":273},"Deterministic deployment means an account's address can be computed before any code exists at it, using a factory and a salt; funds can sit at an address with no bytecode. ",{"type":26,"tag":46,"props":275,"children":278},{"href":276,"rel":277},"https:\u002F\u002Feips.ethereum.org\u002FEIPS\u002Feip-6492",[50],[279],{"type":31,"value":280},"ERC-6492",{"type":31,"value":282}," standardizes signature validation for predeploy contracts: the signature is wrapped with the factory address, deployment calldata, and the underlying ERC-1271 signature, ending in magic bytes that cannot collide with a key-based signature. The specification requires a verifier to detect the magic bytes first and, when they are present, call the factory with the deployment calldata (deploying if the wallet is not already deployed) before validating the inner ERC-1271 signature; then perform standard ERC-1271 checks if code exists; if that ERC-1271 call failed and the factory call was skipped because the wallet already had code, execute the factory calldata and retry; and attempt ecrecover only as a final step.",{"type":26,"tag":27,"props":284,"children":285},{},[286],{"type":31,"value":287},"The evidentiary upshot: a party can produce a signature for a counterfactual wallet before that wallet exists on-chain. The intended configuration may then be reconstructed from the factory address and deployment calldata in the ERC-6492 wrap, from any later on-chain deployment if one exists, and from off-chain records of the planned owner set; on-chain state alone may under-describe what happened.",{"type":26,"tag":34,"props":289,"children":291},{"id":290},"an-attribution-matrix-for-expert-reports-and-deposition",[292],{"type":31,"value":293},"An Attribution Matrix for Expert Reports and Deposition",{"type":26,"tag":27,"props":295,"children":296},{},[297],{"type":31,"value":298},"The table below is the organizing device I use in expert reports and at deposition; it forces a separate answer for each actor type and labels each as fact or inference.",{"type":26,"tag":300,"props":301,"children":302},"table",{},[303,332],{"type":26,"tag":304,"props":305,"children":306},"thead",{},[307],{"type":26,"tag":308,"props":309,"children":310},"tr",{},[311,317,322,327],{"type":26,"tag":312,"props":313,"children":314},"th",{},[315],{"type":31,"value":316},"Actor",{"type":26,"tag":312,"props":318,"children":319},{},[320],{"type":31,"value":321},"What the chain shows",{"type":26,"tag":312,"props":323,"children":324},{},[325],{"type":31,"value":326},"Off-chain evidence needed",{"type":26,"tag":312,"props":328,"children":329},{},[330],{"type":31,"value":331},"Typical dispute question",{"type":26,"tag":333,"props":334,"children":335},"tbody",{},[336,360,383,406,429,452,475],{"type":26,"tag":308,"props":337,"children":338},{},[339,345,350,355],{"type":26,"tag":340,"props":341,"children":342},"td",{},[343],{"type":31,"value":344},"Owner signer",{"type":26,"tag":340,"props":346,"children":347},{},[348],{"type":31,"value":349},"Approving address in executed signature data",{"type":26,"tag":340,"props":351,"children":352},{},[353],{"type":31,"value":354},"Which person controlled the key",{"type":26,"tag":340,"props":356,"children":357},{},[358],{"type":31,"value":359},"Did this person approve?",{"type":26,"tag":308,"props":361,"children":362},{},[363,368,373,378],{"type":26,"tag":340,"props":364,"children":365},{},[366],{"type":31,"value":367},"Threshold",{"type":26,"tag":340,"props":369,"children":370},{},[371],{"type":31,"value":372},"Current value and every change, each with signatures",{"type":26,"tag":340,"props":374,"children":375},{},[376],{"type":31,"value":377},"Who pushed the change and why",{"type":26,"tag":340,"props":379,"children":380},{},[381],{"type":31,"value":382},"Was control concentrated?",{"type":26,"tag":308,"props":384,"children":385},{},[386,391,396,401],{"type":26,"tag":340,"props":387,"children":388},{},[389],{"type":31,"value":390},"Module",{"type":26,"tag":340,"props":392,"children":393},{},[394],{"type":31,"value":395},"Module executions and enable\u002Fdisable records; signatures depend on the module",{"type":26,"tag":340,"props":397,"children":398},{},[399],{"type":31,"value":400},"Module code and operator",{"type":26,"tag":340,"props":402,"children":403},{},[404],{"type":31,"value":405},"Who could move funds without threshold signers?",{"type":26,"tag":308,"props":407,"children":408},{},[409,414,419,424],{"type":26,"tag":340,"props":410,"children":411},{},[412],{"type":31,"value":413},"Guard",{"type":26,"tag":340,"props":415,"children":416},{},[417],{"type":31,"value":418},"Guard address and change events; whether that guard ran on this execution path",{"type":26,"tag":340,"props":420,"children":421},{},[422],{"type":31,"value":423},"Guard code and operator",{"type":26,"tag":340,"props":425,"children":426},{},[427],{"type":31,"value":428},"Why did no check stop it?",{"type":26,"tag":308,"props":430,"children":431},{},[432,437,442,447],{"type":26,"tag":340,"props":433,"children":434},{},[435],{"type":31,"value":436},"Relayer or bundler",{"type":26,"tag":340,"props":438,"children":439},{},[440],{"type":31,"value":441},"Submitter and gas records on the execution",{"type":26,"tag":340,"props":443,"children":444},{},[445],{"type":31,"value":446},"Operator identity and logs",{"type":26,"tag":340,"props":448,"children":449},{},[450],{"type":31,"value":451},"Does submission equal authorization?",{"type":26,"tag":308,"props":453,"children":454},{},[455,460,465,470],{"type":26,"tag":340,"props":456,"children":457},{},[458],{"type":31,"value":459},"Paymaster",{"type":26,"tag":340,"props":461,"children":462},{},[463],{"type":31,"value":464},"UserOperation paymaster data and EntryPoint deposits",{"type":26,"tag":340,"props":466,"children":467},{},[468],{"type":31,"value":469},"Sponsorship terms and operator",{"type":26,"tag":340,"props":471,"children":472},{},[473],{"type":31,"value":474},"Who paid for the move?",{"type":26,"tag":308,"props":476,"children":477},{},[478,483,488,493],{"type":26,"tag":340,"props":479,"children":480},{},[481],{"type":31,"value":482},"Deployer or factory",{"type":26,"tag":340,"props":484,"children":485},{},[486],{"type":31,"value":487},"Deployment transaction and factory parameters",{"type":26,"tag":340,"props":489,"children":490},{},[491],{"type":31,"value":492},"Factory operator records",{"type":26,"tag":340,"props":494,"children":495},{},[496],{"type":31,"value":497},"What configuration was fixed at creation?",{"type":26,"tag":27,"props":499,"children":500},{},[501],{"type":31,"value":502},"This matrix operationalizes the six-layer reconstruction order. Each step yields either an on-chain fact or an inference needing its own evidence, and the expert report must state which.",{"type":26,"tag":34,"props":504,"children":506},{"id":505},"hypothetical-the-two-of-three-corporate-wallet",[507],{"type":31,"value":508},"Hypothetical: The Two-of-Three Corporate Wallet",{"type":26,"tag":27,"props":510,"children":511},{},[512],{"type":31,"value":513},"Illustrative scenario: a company runs a 2-of-3 Safe holding operating funds. The owners are keys held by two officers and one outside investor. Over ten months the threshold is raised to 3, then lowered to 2, and a spending-limit module is enabled. The disputed transfer, a large payment to a new address, executes with two signatures: one key-based and one ERC-1271 contract signature from a second Safe added as an owner eight months prior. Gas is paid by a relayer address that is not an owner.",{"type":26,"tag":27,"props":515,"children":516},{},[517,519,525],{"type":31,"value":518},"Replaying the Safe's history shows the second Safe entering the owner set, the threshold change that made two approvals sufficient, and the module enable with its authorizing transaction. Parsing the disputed transaction's signature data shows the two approving addresses and their types, including the nested Safe's verifying contract address. What the chain does not show is which humans held the officer keys or whether the module was operated by an employee with no owner status; those answers require device forensics, exchange records, custody policies, and depositions, following the ",{"type":26,"tag":46,"props":520,"children":522},{"href":521},"\u002Fresources\u002Fself-custody-vs-custodial-wallets",[523],{"type":31,"value":524},"self-custody discovery playbook",{"type":31,"value":526},".",{"type":26,"tag":34,"props":528,"children":530},{"id":529},"limitations-and-the-questions-to-ask",[531],{"type":31,"value":532},"Limitations and the Questions to Ask",{"type":26,"tag":27,"props":534,"children":535},{},[536],{"type":31,"value":537},"Proposals that never reached threshold exist only off-chain. Recovered signature addresses can identify an approving key or verifying contract, not a human. Implementations can be upgraded through proxies, so authority can change without the address changing; the upgrade is on-chain, but its effect requires code review. The same address can be deployed deterministically across chains with different states, so each chain is analyzed separately. ERC-1271 validation is context dependent by design: a signature valid on one date may be invalid on another, so validity at the relevant date, not today, is the question. A smart account has no native KYC record comparable to an exchange account, although a related service may hold records.",{"type":26,"tag":27,"props":539,"children":540},{},[541],{"type":31,"value":542},"The discovery questions that follow:",{"type":26,"tag":205,"props":544,"children":545},{},[546,551,556,561,566,571,576],{"type":26,"tag":209,"props":547,"children":548},{},[549],{"type":31,"value":550},"Was the address an EOA or a contract at the relevant date, including any EIP-7702 delegation indicator, and what implementation is behind it?",{"type":26,"tag":209,"props":552,"children":553},{},[554],{"type":31,"value":555},"Produce the full configuration history: every owner, threshold, module, and guard change, with transaction hashes.",{"type":26,"tag":209,"props":557,"children":558},{},[559],{"type":31,"value":560},"Produce raw transaction input data and event logs for each disputed transaction, not block explorer summaries.",{"type":26,"tag":209,"props":562,"children":563},{},[564],{"type":31,"value":565},"Which disputed transactions ran through modules, and what code was each module running?",{"type":26,"tag":209,"props":567,"children":568},{},[569],{"type":31,"value":570},"Who submitted each execution and who paid gas, including bundler and paymaster activity?",{"type":26,"tag":209,"props":572,"children":573},{},[574],{"type":31,"value":575},"Produce confirmation and signing records from any wallet provider interface used before execution.",{"type":26,"tag":209,"props":577,"children":578},{},[579],{"type":31,"value":580},"Document key custody for every owner address: devices, seed phrases, corporate policy, personnel changes.",{"type":26,"tag":27,"props":582,"children":583},{},[584,586,592,594,600],{"type":31,"value":585},"These are forensic facts and methods that apply in any U.S. forum. How a court weighs them depends on the jurisdiction's evidence rules, and the legal responsibility of each actor is a conclusion built on the factual record under corporate, agency, probate, or criminal law. Conduct executed through code is still conduct; the ",{"type":26,"tag":46,"props":587,"children":589},{"href":588},"\u002Fresources\u002Fsmart-contract-disputes",[590],{"type":31,"value":591},"smart contract disputes article",{"type":31,"value":593}," covers how courts treat it. Our ",{"type":26,"tag":46,"props":595,"children":597},{"href":596},"\u002Fmethodology",[598],{"type":31,"value":599},"methodology page",{"type":31,"value":601}," explains how expert reports separate chain facts from inference.",{"type":26,"tag":34,"props":603,"children":605},{"id":604},"frequently-asked-questions",[606],{"type":31,"value":607},"Frequently Asked Questions",{"type":26,"tag":96,"props":609,"children":611},{"id":610},"q-is-a-multisig-address-owned-by-any-single-person",[612],{"type":31,"value":613},"Q: Is a multisig address owned by any single person?",{"type":26,"tag":27,"props":615,"children":616},{},[617,623],{"type":26,"tag":618,"props":619,"children":620},"strong",{},[621],{"type":31,"value":622},"A:",{"type":31,"value":624}," No, not in the way an ordinary wallet is. The address is a contract with an owner list and threshold stored on-chain; control is defined by code, by the threshold number of owner approvals or the module's rules. \"Ownership\" is a legal characterization, resolved by who holds which key and what the parties agreed. No single owner key is sufficient unless the threshold is one.",{"type":26,"tag":96,"props":626,"children":628},{"id":627},"q-if-a-transaction-was-signed-by-enough-owners-who-is-responsible-for-it",[629],{"type":31,"value":630},"Q: If a transaction was signed by enough owners, who is responsible for it?",{"type":26,"tag":27,"props":632,"children":633},{},[634,638],{"type":26,"tag":618,"props":635,"children":636},{},[637],{"type":31,"value":622},{"type":31,"value":639}," The approvals are on-chain facts, but responsibility is a legal question depending on the signers' relationships. Signature evidence shows which addresses approved and the exact approval set; mapping those to persons, and deciding whether an approval binds the entity, the signer, or both, requires off-chain evidence and applicable law. The forensic contribution is pinning down who approved, when, and through which mechanism.",{"type":26,"tag":96,"props":641,"children":643},{"id":642},"q-can-activity-from-an-erc-4337-smart-account-be-traced-to-the-person-who-initiated-it",[644],{"type":31,"value":645},"Q: Can activity from an ERC-4337 smart account be traced to the person who initiated it?",{"type":26,"tag":27,"props":647,"children":648},{},[649,653],{"type":26,"tag":618,"props":650,"children":651},{},[652],{"type":31,"value":622},{"type":31,"value":654}," Only partially, and not from the chain alone. Under ERC-4337 the on-chain transaction is submitted by a bundler; the actor is the sender account, a contract whose code defines what signatures it accepts. The UserOperation contains signature data, but whether that data identifies approving keys depends on the account implementation. Connecting any approving address to a human, and separating the initiator from the infrastructure, requires the same off-chain evidence used for any self-custody wallet.",{"type":26,"tag":96,"props":656,"children":658},{"id":657},"q-what-does-it-mean-if-a-wallet-was-not-deployed-when-the-disputed-authorization-happened",[659],{"type":31,"value":660},"Q: What does it mean if a wallet was not deployed when the disputed authorization happened?",{"type":26,"tag":27,"props":662,"children":663},{},[664,668],{"type":26,"tag":618,"props":665,"children":666},{},[667],{"type":31,"value":622},{"type":31,"value":669}," The address existed as a computation, a deterministic deployment waiting to happen, with no bytecode on-chain at the time. ERC-6492 standardizes validating signatures for such predeploy accounts by wrapping the signature with factory and deployment data. For attribution, the intended owner set must be reconstructed from the factory address and deployment calldata in that wrap, from any later on-chain deployment if one exists, and from off-chain records, because the chain holds no configuration for a contract that did not yet exist.",{"type":26,"tag":96,"props":671,"children":673},{"id":672},"q-what-discovery-should-you-request-when-the-other-side-controls-a-contract-wallet",[674],{"type":31,"value":675},"Q: What discovery should you request when the other side controls a contract wallet?",{"type":26,"tag":27,"props":677,"children":678},{},[679,683],{"type":26,"tag":618,"props":680,"children":681},{},[682],{"type":31,"value":622},{"type":31,"value":684}," Go beyond the address. Request the implementation and proxy records, the full history of owner, threshold, module, and guard changes with transaction hashes, raw input data for each disputed transaction, module code, submission and gas records, wallet provider confirmation logs, and key custody documentation for every owner address. Without that layer, a contract-wallet attribution rests on the false premise that one address equals one person.",{"type":26,"tag":27,"props":686,"children":687},{},[688,690,696,698,704,706,712],{"type":31,"value":689},"Each matter turns on its own facts, and the line between what the chain proves and what must be proven around it varies with the wallet design and the parties' records. If you are facing that line, ",{"type":26,"tag":46,"props":691,"children":693},{"href":692},"\u002Fcontact",[694],{"type":31,"value":695},"contact us",{"type":31,"value":697}," to discuss the evidence picture, or see how ",{"type":26,"tag":46,"props":699,"children":701},{"href":700},"\u002Fservices#blockchain-tracing",[702],{"type":31,"value":703},"blockchain tracing engagements",{"type":31,"value":705}," and ",{"type":26,"tag":46,"props":707,"children":709},{"href":708},"\u002Fservices#litigation-consulting",[710],{"type":31,"value":711},"litigation consulting",{"type":31,"value":713}," are structured.",{"title":7,"searchDepth":715,"depth":715,"links":716},2,[717,718,726,727,728,729,730,731,732],{"id":36,"depth":715,"text":39},{"id":91,"depth":715,"text":94,"children":719},[720,722,723,724,725],{"id":98,"depth":721,"text":101},3,{"id":109,"depth":721,"text":112},{"id":120,"depth":721,"text":123},{"id":139,"depth":721,"text":142},{"id":166,"depth":721,"text":169},{"id":195,"depth":715,"text":198},{"id":254,"depth":715,"text":257},{"id":265,"depth":715,"text":268},{"id":290,"depth":715,"text":293},{"id":505,"depth":715,"text":508},{"id":529,"depth":715,"text":532},{"id":604,"depth":715,"text":607,"children":733},[734,735,736,737,738],{"id":610,"depth":721,"text":613},{"id":627,"depth":721,"text":630},{"id":642,"depth":721,"text":645},{"id":657,"depth":721,"text":660},{"id":672,"depth":721,"text":675},"markdown","content:articles:38-multisig-contract-wallet-attribution.md","content","articles\u002F38-multisig-contract-wallet-attribution.md","articles\u002F38-multisig-contract-wallet-attribution","md",{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"slug":10,"date":11,"lastUpdated":11,"author":12,"readingTime":13,"category":14,"tags":746,"ogImage":21,"featured":6,"body":747,"_type":739,"_id":740,"_source":741,"_file":742,"_stem":743,"_extension":744},[16,17,18,19,20],{"type":23,"children":748,"toc":1265},[749,753,757,767,783,787,791,795,799,803,807,811,815,825,829,845,849,865,869,873,900,909,913,917,921,931,935,939,943,1104,1108,1112,1116,1125,1129,1133,1137,1168,1182,1186,1190,1198,1202,1210,1214,1222,1226,1234,1238,1246],{"type":26,"tag":27,"props":750,"children":751},{},[752],{"type":31,"value":32},{"type":26,"tag":34,"props":754,"children":755},{"id":36},[756],{"type":31,"value":39},{"type":26,"tag":27,"props":758,"children":759},{},[760,761,766],{"type":31,"value":44},{"type":26,"tag":46,"props":762,"children":764},{"href":48,"rel":763},[50],[765],{"type":31,"value":53},{"type":31,"value":55},{"type":26,"tag":27,"props":768,"children":769},{},[770,771,776,777,782],{"type":31,"value":60},{"type":26,"tag":46,"props":772,"children":774},{"href":63,"rel":773},[50],[775],{"type":31,"value":67},{"type":31,"value":69},{"type":26,"tag":71,"props":778,"children":780},{"className":779},[],[781],{"type":31,"value":76},{"type":31,"value":78},{"type":26,"tag":27,"props":784,"children":785},{},[786],{"type":31,"value":83},{"type":26,"tag":27,"props":788,"children":789},{},[790],{"type":31,"value":88},{"type":26,"tag":34,"props":792,"children":793},{"id":91},[794],{"type":31,"value":94},{"type":26,"tag":96,"props":796,"children":797},{"id":98},[798],{"type":31,"value":101},{"type":26,"tag":27,"props":800,"children":801},{},[802],{"type":31,"value":106},{"type":26,"tag":96,"props":804,"children":805},{"id":109},[806],{"type":31,"value":112},{"type":26,"tag":27,"props":808,"children":809},{},[810],{"type":31,"value":117},{"type":26,"tag":96,"props":812,"children":813},{"id":120},[814],{"type":31,"value":123},{"type":26,"tag":27,"props":816,"children":817},{},[818,819,824],{"type":31,"value":128},{"type":26,"tag":71,"props":820,"children":822},{"className":821},[],[823],{"type":31,"value":134},{"type":31,"value":136},{"type":26,"tag":96,"props":826,"children":827},{"id":139},[828],{"type":31,"value":142},{"type":26,"tag":27,"props":830,"children":831},{},[832,833,838,839,844],{"type":31,"value":147},{"type":26,"tag":71,"props":834,"children":836},{"className":835},[],[837],{"type":31,"value":153},{"type":31,"value":155},{"type":26,"tag":71,"props":840,"children":842},{"className":841},[],[843],{"type":31,"value":161},{"type":31,"value":163},{"type":26,"tag":96,"props":846,"children":847},{"id":166},[848],{"type":31,"value":169},{"type":26,"tag":27,"props":850,"children":851},{},[852,853,858,859,864],{"type":31,"value":174},{"type":26,"tag":46,"props":854,"children":856},{"href":177,"rel":855},[50],[857],{"type":31,"value":181},{"type":31,"value":183},{"type":26,"tag":46,"props":860,"children":862},{"href":186,"rel":861},[50],[863],{"type":31,"value":190},{"type":31,"value":192},{"type":26,"tag":34,"props":866,"children":867},{"id":195},[868],{"type":31,"value":198},{"type":26,"tag":27,"props":870,"children":871},{},[872],{"type":31,"value":203},{"type":26,"tag":205,"props":874,"children":875},{},[876,880,884,888,892,896],{"type":26,"tag":209,"props":877,"children":878},{},[879],{"type":31,"value":213},{"type":26,"tag":209,"props":881,"children":882},{},[883],{"type":31,"value":218},{"type":26,"tag":209,"props":885,"children":886},{},[887],{"type":31,"value":223},{"type":26,"tag":209,"props":889,"children":890},{},[891],{"type":31,"value":228},{"type":26,"tag":209,"props":893,"children":894},{},[895],{"type":31,"value":233},{"type":26,"tag":209,"props":897,"children":898},{},[899],{"type":31,"value":238},{"type":26,"tag":27,"props":901,"children":902},{},[903,904,908],{"type":31,"value":243},{"type":26,"tag":46,"props":905,"children":906},{"href":246},[907],{"type":31,"value":249},{"type":31,"value":251},{"type":26,"tag":34,"props":910,"children":911},{"id":254},[912],{"type":31,"value":257},{"type":26,"tag":27,"props":914,"children":915},{},[916],{"type":31,"value":262},{"type":26,"tag":34,"props":918,"children":919},{"id":265},[920],{"type":31,"value":268},{"type":26,"tag":27,"props":922,"children":923},{},[924,925,930],{"type":31,"value":273},{"type":26,"tag":46,"props":926,"children":928},{"href":276,"rel":927},[50],[929],{"type":31,"value":280},{"type":31,"value":282},{"type":26,"tag":27,"props":932,"children":933},{},[934],{"type":31,"value":287},{"type":26,"tag":34,"props":936,"children":937},{"id":290},[938],{"type":31,"value":293},{"type":26,"tag":27,"props":940,"children":941},{},[942],{"type":31,"value":298},{"type":26,"tag":300,"props":944,"children":945},{},[946,968],{"type":26,"tag":304,"props":947,"children":948},{},[949],{"type":26,"tag":308,"props":950,"children":951},{},[952,956,960,964],{"type":26,"tag":312,"props":953,"children":954},{},[955],{"type":31,"value":316},{"type":26,"tag":312,"props":957,"children":958},{},[959],{"type":31,"value":321},{"type":26,"tag":312,"props":961,"children":962},{},[963],{"type":31,"value":326},{"type":26,"tag":312,"props":965,"children":966},{},[967],{"type":31,"value":331},{"type":26,"tag":333,"props":969,"children":970},{},[971,990,1009,1028,1047,1066,1085],{"type":26,"tag":308,"props":972,"children":973},{},[974,978,982,986],{"type":26,"tag":340,"props":975,"children":976},{},[977],{"type":31,"value":344},{"type":26,"tag":340,"props":979,"children":980},{},[981],{"type":31,"value":349},{"type":26,"tag":340,"props":983,"children":984},{},[985],{"type":31,"value":354},{"type":26,"tag":340,"props":987,"children":988},{},[989],{"type":31,"value":359},{"type":26,"tag":308,"props":991,"children":992},{},[993,997,1001,1005],{"type":26,"tag":340,"props":994,"children":995},{},[996],{"type":31,"value":367},{"type":26,"tag":340,"props":998,"children":999},{},[1000],{"type":31,"value":372},{"type":26,"tag":340,"props":1002,"children":1003},{},[1004],{"type":31,"value":377},{"type":26,"tag":340,"props":1006,"children":1007},{},[1008],{"type":31,"value":382},{"type":26,"tag":308,"props":1010,"children":1011},{},[1012,1016,1020,1024],{"type":26,"tag":340,"props":1013,"children":1014},{},[1015],{"type":31,"value":390},{"type":26,"tag":340,"props":1017,"children":1018},{},[1019],{"type":31,"value":395},{"type":26,"tag":340,"props":1021,"children":1022},{},[1023],{"type":31,"value":400},{"type":26,"tag":340,"props":1025,"children":1026},{},[1027],{"type":31,"value":405},{"type":26,"tag":308,"props":1029,"children":1030},{},[1031,1035,1039,1043],{"type":26,"tag":340,"props":1032,"children":1033},{},[1034],{"type":31,"value":413},{"type":26,"tag":340,"props":1036,"children":1037},{},[1038],{"type":31,"value":418},{"type":26,"tag":340,"props":1040,"children":1041},{},[1042],{"type":31,"value":423},{"type":26,"tag":340,"props":1044,"children":1045},{},[1046],{"type":31,"value":428},{"type":26,"tag":308,"props":1048,"children":1049},{},[1050,1054,1058,1062],{"type":26,"tag":340,"props":1051,"children":1052},{},[1053],{"type":31,"value":436},{"type":26,"tag":340,"props":1055,"children":1056},{},[1057],{"type":31,"value":441},{"type":26,"tag":340,"props":1059,"children":1060},{},[1061],{"type":31,"value":446},{"type":26,"tag":340,"props":1063,"children":1064},{},[1065],{"type":31,"value":451},{"type":26,"tag":308,"props":1067,"children":1068},{},[1069,1073,1077,1081],{"type":26,"tag":340,"props":1070,"children":1071},{},[1072],{"type":31,"value":459},{"type":26,"tag":340,"props":1074,"children":1075},{},[1076],{"type":31,"value":464},{"type":26,"tag":340,"props":1078,"children":1079},{},[1080],{"type":31,"value":469},{"type":26,"tag":340,"props":1082,"children":1083},{},[1084],{"type":31,"value":474},{"type":26,"tag":308,"props":1086,"children":1087},{},[1088,1092,1096,1100],{"type":26,"tag":340,"props":1089,"children":1090},{},[1091],{"type":31,"value":482},{"type":26,"tag":340,"props":1093,"children":1094},{},[1095],{"type":31,"value":487},{"type":26,"tag":340,"props":1097,"children":1098},{},[1099],{"type":31,"value":492},{"type":26,"tag":340,"props":1101,"children":1102},{},[1103],{"type":31,"value":497},{"type":26,"tag":27,"props":1105,"children":1106},{},[1107],{"type":31,"value":502},{"type":26,"tag":34,"props":1109,"children":1110},{"id":505},[1111],{"type":31,"value":508},{"type":26,"tag":27,"props":1113,"children":1114},{},[1115],{"type":31,"value":513},{"type":26,"tag":27,"props":1117,"children":1118},{},[1119,1120,1124],{"type":31,"value":518},{"type":26,"tag":46,"props":1121,"children":1122},{"href":521},[1123],{"type":31,"value":524},{"type":31,"value":526},{"type":26,"tag":34,"props":1126,"children":1127},{"id":529},[1128],{"type":31,"value":532},{"type":26,"tag":27,"props":1130,"children":1131},{},[1132],{"type":31,"value":537},{"type":26,"tag":27,"props":1134,"children":1135},{},[1136],{"type":31,"value":542},{"type":26,"tag":205,"props":1138,"children":1139},{},[1140,1144,1148,1152,1156,1160,1164],{"type":26,"tag":209,"props":1141,"children":1142},{},[1143],{"type":31,"value":550},{"type":26,"tag":209,"props":1145,"children":1146},{},[1147],{"type":31,"value":555},{"type":26,"tag":209,"props":1149,"children":1150},{},[1151],{"type":31,"value":560},{"type":26,"tag":209,"props":1153,"children":1154},{},[1155],{"type":31,"value":565},{"type":26,"tag":209,"props":1157,"children":1158},{},[1159],{"type":31,"value":570},{"type":26,"tag":209,"props":1161,"children":1162},{},[1163],{"type":31,"value":575},{"type":26,"tag":209,"props":1165,"children":1166},{},[1167],{"type":31,"value":580},{"type":26,"tag":27,"props":1169,"children":1170},{},[1171,1172,1176,1177,1181],{"type":31,"value":585},{"type":26,"tag":46,"props":1173,"children":1174},{"href":588},[1175],{"type":31,"value":591},{"type":31,"value":593},{"type":26,"tag":46,"props":1178,"children":1179},{"href":596},[1180],{"type":31,"value":599},{"type":31,"value":601},{"type":26,"tag":34,"props":1183,"children":1184},{"id":604},[1185],{"type":31,"value":607},{"type":26,"tag":96,"props":1187,"children":1188},{"id":610},[1189],{"type":31,"value":613},{"type":26,"tag":27,"props":1191,"children":1192},{},[1193,1197],{"type":26,"tag":618,"props":1194,"children":1195},{},[1196],{"type":31,"value":622},{"type":31,"value":624},{"type":26,"tag":96,"props":1199,"children":1200},{"id":627},[1201],{"type":31,"value":630},{"type":26,"tag":27,"props":1203,"children":1204},{},[1205,1209],{"type":26,"tag":618,"props":1206,"children":1207},{},[1208],{"type":31,"value":622},{"type":31,"value":639},{"type":26,"tag":96,"props":1211,"children":1212},{"id":642},[1213],{"type":31,"value":645},{"type":26,"tag":27,"props":1215,"children":1216},{},[1217,1221],{"type":26,"tag":618,"props":1218,"children":1219},{},[1220],{"type":31,"value":622},{"type":31,"value":654},{"type":26,"tag":96,"props":1223,"children":1224},{"id":657},[1225],{"type":31,"value":660},{"type":26,"tag":27,"props":1227,"children":1228},{},[1229,1233],{"type":26,"tag":618,"props":1230,"children":1231},{},[1232],{"type":31,"value":622},{"type":31,"value":669},{"type":26,"tag":96,"props":1235,"children":1236},{"id":672},[1237],{"type":31,"value":675},{"type":26,"tag":27,"props":1239,"children":1240},{},[1241,1245],{"type":26,"tag":618,"props":1242,"children":1243},{},[1244],{"type":31,"value":622},{"type":31,"value":684},{"type":26,"tag":27,"props":1247,"children":1248},{},[1249,1250,1254,1255,1259,1260,1264],{"type":31,"value":689},{"type":26,"tag":46,"props":1251,"children":1252},{"href":692},[1253],{"type":31,"value":695},{"type":31,"value":697},{"type":26,"tag":46,"props":1256,"children":1257},{"href":700},[1258],{"type":31,"value":703},{"type":31,"value":705},{"type":26,"tag":46,"props":1261,"children":1262},{"href":708},[1263],{"type":31,"value":711},{"type":31,"value":713},{"title":7,"searchDepth":715,"depth":715,"links":1266},[1267,1268,1275,1276,1277,1278,1279,1280,1281],{"id":36,"depth":715,"text":39},{"id":91,"depth":715,"text":94,"children":1269},[1270,1271,1272,1273,1274],{"id":98,"depth":721,"text":101},{"id":109,"depth":721,"text":112},{"id":120,"depth":721,"text":123},{"id":139,"depth":721,"text":142},{"id":166,"depth":721,"text":169},{"id":195,"depth":715,"text":198},{"id":254,"depth":715,"text":257},{"id":265,"depth":715,"text":268},{"id":290,"depth":715,"text":293},{"id":505,"depth":715,"text":508},{"id":529,"depth":715,"text":532},{"id":604,"depth":715,"text":607,"children":1282},[1283,1284,1285,1286,1287],{"id":610,"depth":721,"text":613},{"id":627,"depth":721,"text":630},{"id":642,"depth":721,"text":645},{"id":657,"depth":721,"text":660},{"id":672,"depth":721,"text":675},[1289,2004,2595],{"_path":1290,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":1291,"description":1292,"slug":1293,"date":1294,"lastUpdated":1294,"author":12,"readingTime":1295,"category":14,"tags":1296,"ogImage":1301,"featured":6,"body":1302,"_type":739,"_id":2001,"_source":741,"_file":2002,"_stem":2003,"_extension":744},"\u002Farticles\u002F39-crypto-seizure-warrant-trace-hamas-2026","What a seizure-warrant trace reveals about blockchain evidence","A case study of DOJ's September 2026 Hamas crypto seizures, showing how sworn warrant records layer blockchain paths with service-provider evidence.","crypto-seizure-warrant-trace-hamas-2026","2026-09-05",13,[1297,1298,1299,20,1300],"case-study","blockchain-tracing","seized-assets","litigation","\u002Fog\u002Fcrypto-seizure-warrant-trace-hamas-2026.png",{"type":23,"children":1303,"toc":1978},[1304,1309,1314,1320,1325,1330,1383,1388,1393,1399,1422,1428,1442,1448,1469,1475,1480,1486,1491,1497,1502,1508,1513,1519,1524,1534,1544,1555,1561,1566,1576,1629,1634,1640,1645,1760,1766,1771,1781,1791,1801,1811,1831,1837,1842,1870,1896,1900,1906,1915,1921,1930,1936,1945,1951,1960,1966],{"type":26,"tag":27,"props":1305,"children":1306},{},[1307],{"type":31,"value":1308},"On September 1, 2026, the Justice Department announced that it had seized over $560,000 in cryptocurrency intended for Hamas and disrupted the domains and servers the group used to solicit donations and recruit supporters. The announcement was the cumulative public record of a longer investigation: seizure warrants issued in the District of Columbia on March 25, June 25, and October 10, 2025, followed by infrastructure warrants on July 29 and August 18, 2026. The government then posted the underlying sworn warrant materials online. The posted packets include AO 109 returns, but those return, inventory, and certification fields are blank, so the public file documents authorization, not the date of execution.",{"type":26,"tag":27,"props":1310,"children":1311},{},[1312],{"type":31,"value":1313},"This is a public, government-published example of a trace described in sworn warrant materials. This article walks through that record to extract a transferable method for litigators and forensic experts, while being careful about what the materials do and do not prove. The legal posture of a criminal seizure investigation differs substantially from a private civil dispute, and the value of this case study is methodological, not an invitation to import government conclusions wholesale.",{"type":26,"tag":34,"props":1315,"children":1317},{"id":1316},"the-procedural-posture-allegations-probable-cause-and-seizure",[1318],{"type":31,"value":1319},"The Procedural Posture: Allegations, Probable Cause, and Seizure",{"type":26,"tag":27,"props":1321,"children":1322},{},[1323],{"type":31,"value":1324},"Before reading any warrant record, establish which legal conclusion the document supports. This case study is a useful lesson precisely because the September announcement reports a seizure premised on probable cause, not a judgment or conviction.",{"type":26,"tag":27,"props":1326,"children":1327},{},[1328],{"type":31,"value":1329},"These are the categories, in order of increasing legal weight:",{"type":26,"tag":1331,"props":1332,"children":1333},"ul",{},[1334,1344,1363,1373],{"type":26,"tag":209,"props":1335,"children":1336},{},[1337,1342],{"type":26,"tag":618,"props":1338,"children":1339},{},[1340],{"type":31,"value":1341},"Attributed allegations.",{"type":31,"value":1343}," The government states that Hamas, a designated Foreign Terrorist Organization, used the addresses and infrastructure to raise funds and recruit. At the point of a seizure, these are the government's allegations resting on its investigation, not judicial findings of fact.",{"type":26,"tag":209,"props":1345,"children":1346},{},[1347,1352,1354,1361],{"type":26,"tag":618,"props":1348,"children":1349},{},[1350],{"type":31,"value":1351},"Probable cause.",{"type":31,"value":1353}," The authorizing judge issued each warrant on a probable-cause showing. Under ",{"type":26,"tag":46,"props":1355,"children":1358},{"href":1356,"rel":1357},"https:\u002F\u002Fwww.law.cornell.edu\u002Frules\u002Ffrcrmp\u002Frule_41",[50],[1359],{"type":31,"value":1360},"Federal Rule of Criminal Procedure 41",{"type":31,"value":1362},", a judge must issue a warrant if probable cause is shown by affidavit or other information; the judge may also rely on sworn testimony.",{"type":26,"tag":209,"props":1364,"children":1365},{},[1366,1371],{"type":26,"tag":618,"props":1367,"children":1368},{},[1369],{"type":31,"value":1370},"The seizure itself.",{"type":31,"value":1372}," The Department announced that the FBI seized the funds and infrastructure. A seizure does not itself resolve ownership; a completed forfeiture process is ordinarily needed for a final forfeiture determination.",{"type":26,"tag":209,"props":1374,"children":1375},{},[1376,1381],{"type":26,"tag":618,"props":1377,"children":1378},{},[1379],{"type":31,"value":1380},"Final adjudication.",{"type":31,"value":1382}," Forfeiture, administrative or judicial, requires notice and an opportunity for claimants to contest before title finally vests. None of the materials in this announcement evidence an adjudicated finding against any person.",{"type":26,"tag":27,"props":1384,"children":1385},{},[1386],{"type":31,"value":1387},"For a private litigator, read a warrant document as a menu of investigative steps that were persuasive enough for a magistrate, and treat each fact asserted inside it as an allegation the government must still prove. That distinction matters enormously in civil work, where the burden of proof and the rules of evidence differ from a probable-cause determination.",{"type":26,"tag":27,"props":1389,"children":1390},{},[1391],{"type":31,"value":1392},"I have not and will not repeat specific unverified operational details from these affidavits here, because reproducing what an affidavit alleges about live infrastructure serves no legal-pedagogical purpose and can be inaccurate if read out of context. The lesson is in the structure.",{"type":26,"tag":34,"props":1394,"children":1396},{"id":1395},"how-the-evidence-was-layered-not-just-traced",[1397],{"type":31,"value":1398},"How the Evidence Was Layered, Not Just Traced",{"type":26,"tag":27,"props":1400,"children":1401},{},[1402,1404,1411,1413,1420],{"type":31,"value":1403},"Reading the public record as a whole, the investigation assembled at least six distinct categories of evidence. Few are blockchain analysis alone. The ",{"type":26,"tag":46,"props":1405,"children":1408},{"href":1406,"rel":1407},"https:\u002F\u002Fwww.justice.gov\u002Fopa\u002Fpr\u002Fjustice-department-continues-disrupt-hamas-terrorist-financing-schemes-through-seizures",[50],[1409],{"type":31,"value":1410},"press release",{"type":31,"value":1412}," describes cryptocurrency seizures, the seizure of domains and servers, and disruption of fundraising and recruitment platforms; industry reporting on the affidavits, such as ",{"type":26,"tag":46,"props":1414,"children":1417},{"href":1415,"rel":1416},"https:\u002F\u002Fwww.chainalysis.com\u002Fblog\u002Ffbi-seizes-hamas-crypto-fundraising-network\u002F",[50],[1418],{"type":31,"value":1419},"Chainalysis's review of the filings",{"type":31,"value":1421},", adds detail on how the on-chain work connected to accounts and intermediaries.",{"type":26,"tag":96,"props":1423,"children":1425},{"id":1424},"on-chain-transaction-paths",[1426],{"type":31,"value":1427},"On-Chain Transaction Paths",{"type":26,"tag":27,"props":1429,"children":1430},{},[1431,1433,1440],{"type":31,"value":1432},"The foundational layer is the public ledger record itself. The March 2025 warrant materials (25-sz-20, issued March 25, 2025, in the District of Columbia, in the ",{"type":26,"tag":46,"props":1434,"children":1437},{"href":1435,"rel":1436},"https:\u002F\u002Fwww.justice.gov\u002Fopa\u002Fmedia\u002F1459791\u002Fdl?inline",[50],[1438],{"type":31,"value":1439},"public media library",{"type":31,"value":1441},") cover the initial action, which industry reporting describes as involving roughly $200,000 in stablecoins donated to Hamas. The blockchain showed what moved, when, in what amounts, and between which addresses.",{"type":26,"tag":96,"props":1443,"children":1445},{"id":1444},"controlled-or-observed-transactions",[1446],{"type":31,"value":1447},"Controlled or Observed Transactions",{"type":26,"tag":27,"props":1449,"children":1450},{},[1451,1453,1459,1461,1467],{"type":31,"value":1452},"A distinctive feature in this record is that the government did not merely observe historical flows; it interposed itself. The June 25, 2025 warrant (25-sz-34, ",{"type":26,"tag":46,"props":1454,"children":1457},{"href":1455,"rel":1456},"https:\u002F\u002Fwww.justice.gov\u002Fopa\u002Fmedia\u002F1459796\u002Fdl?inline",[50],[1458],{"type":31,"value":1439},{"type":31,"value":1460},") states in affidavit paragraph 1 that its subject matter is related to seizure 25-sz-20, approved March 25, 2025. Attachment A-1 of that packet is a Tether burn-and-reissue instruction listing USDT addresses; it has no footnotes. The June affidavit describes Tether freezing USDT at law-enforcement request, including a March 12, 2025 freeze of additional funds in accounts funded by an operational wallet, and a further freeze on or about April 15, 2025 of listed donation addresses. It also describes Binance independently freezing withdrawals from three target accounts on April 14, 2025. Those are issuer and exchange compliance actions, not a court restraining order. The October 10, 2025 warrant (25-sz-42, ",{"type":26,"tag":46,"props":1462,"children":1465},{"href":1463,"rel":1464},"https:\u002F\u002Fwww.justice.gov\u002Fopa\u002Fmedia\u002F1459801\u002Fdl?inline",[50],[1466],{"type":31,"value":1439},{"type":31,"value":1468},") describes additional Tether freezes at FBI request on May 22, 2025 and June 14, 2025, and a Binance freeze of withdrawals from a listed account, likewise issuer and exchange actions. Controlled or blocked transactions create evidence that no purely passive observer could produce: the point at which value was diverted, frozen, or redirected is a documented event.",{"type":26,"tag":96,"props":1470,"children":1472},{"id":1471},"communications-and-platform-content",[1473],{"type":31,"value":1474},"Communications and Platform Content",{"type":26,"tag":27,"props":1476,"children":1477},{},[1478],{"type":31,"value":1479},"The disruption of domains and servers gave investigators access to solicitation content and supporter interactions, not merely financial data. According to the DOJ, the action disrupted Hamas's fundraising and recruitment communication platforms and websites. Industry reporting on the filings adds that the seized domains and servers included infrastructure associated with the al-Qassam Brigades' main website, which investigators said allowed them to intercept intended donations and gather information about individuals attempting to contribute.",{"type":26,"tag":96,"props":1481,"children":1483},{"id":1482},"service-provider-records",[1484],{"type":31,"value":1485},"Service-Provider Records",{"type":26,"tag":27,"props":1487,"children":1488},{},[1489],{"type":31,"value":1490},"Per industry reporting on the June 2025 affidavit, the investigators traced original donations through a web of new addresses and accounts, and identified service-provider accounts, including one believed to be associated with a Lebanon-based over-the-counter broker and another exhibiting patterns consistent with money mule activity. Those descriptions are attributed allegations within a probable-cause document, reported secondhand; the underlying records, subpoenas, or production requests are not public. The affidavit leans on service-provider records as a bridge from pseudonymous addresses to operating accounts.",{"type":26,"tag":96,"props":1492,"children":1494},{"id":1493},"address-rotation-and-obfuscation",[1495],{"type":31,"value":1496},"Address Rotation and Obfuscation",{"type":26,"tag":27,"props":1498,"children":1499},{},[1500],{"type":31,"value":1501},"The same reporting describes Hamas adapting its techniques after the initial March 2025 seizure, moving funds through new addresses and, in the October 2025 affidavit, using bridging services and single-use donation wallets, with investigators following the trail despite the obfuscation. Address rotation is a fact pattern, not a dead end: every rotated address still transacts on a public ledger, and each new address can be examined for links to a cluster or a service provider.",{"type":26,"tag":96,"props":1503,"children":1505},{"id":1504},"legal-process-as-evidence",[1506],{"type":31,"value":1507},"Legal Process as Evidence",{"type":26,"tag":27,"props":1509,"children":1510},{},[1511],{"type":31,"value":1512},"Finally, the warrant process itself is part of the record. Multiple sequentially authorized warrants support an inference of an iterative investigation, and the June affidavit's paragraph 1 reference to 25-sz-20 shows investigators expressly building a later application on the earlier one. In private cases, the analog is the discovery sequence: each subpoena response or production can become the foundation for the next.",{"type":26,"tag":34,"props":1514,"children":1516},{"id":1515},"path-tracing-vs-actor-attribution",[1517],{"type":31,"value":1518},"Path Tracing vs. Actor Attribution",{"type":26,"tag":27,"props":1520,"children":1521},{},[1522],{"type":31,"value":1523},"Dissecting this record requires separating two questions that prosecutors and civil litigators constantly conflate.",{"type":26,"tag":27,"props":1525,"children":1526},{},[1527,1532],{"type":26,"tag":618,"props":1528,"children":1529},{},[1530],{"type":31,"value":1531},"Path tracing",{"type":31,"value":1533}," asks where value went. It is answered almost entirely on-chain: the March 25, June 25, and October 10, 2025 seizure warrants set out alleged donation flow through successive addresses as investigators followed the funds.",{"type":26,"tag":27,"props":1535,"children":1536},{},[1537,1542],{"type":26,"tag":618,"props":1538,"children":1539},{},[1540],{"type":31,"value":1541},"Actor attribution",{"type":31,"value":1543}," asks who controlled the addresses. On-chain data alone cannot answer this. The record answers it through everything off-chain: platform accounts, service-provider records, communications content, and the observable behavior of the infrastructure.",{"type":26,"tag":27,"props":1545,"children":1546},{},[1547,1549,1554],{"type":31,"value":1548},"A private civil expert should replicate this split explicitly in any report. The path analysis can be stated with high confidence; the attribution analysis should be stated with a confidence level tied to the caliber of the off-chain evidence actually obtained. When a proposed report merges the two, the opposing expert's job becomes easy. For a practical framework on this very division, see the discussion of address attribution in ",{"type":26,"tag":46,"props":1550,"children":1551},{"href":246},[1552],{"type":31,"value":1553},"wallet ownership evidence",{"type":31,"value":526},{"type":26,"tag":34,"props":1556,"children":1558},{"id":1557},"a-worked-hypothetical-modeled-on-the-structure",[1559],{"type":31,"value":1560},"A Worked Hypothetical Modeled on the Structure",{"type":26,"tag":27,"props":1562,"children":1563},{},[1564],{"type":31,"value":1565},"The following is a hypothetical illustration built to mirror the layering technique described above, not a description of any actual investigation.",{"type":26,"tag":27,"props":1567,"children":1568},{},[1569,1574],{"type":26,"tag":618,"props":1570,"children":1571},{},[1572],{"type":31,"value":1573},"Hypothetical example:",{"type":31,"value":1575}," You represent a judgment creditor whose debtor, a third-party vendor, is suspected of funneling kickbacks through cryptocurrency. You have a single lead: the vendor's tax return disclosed a wallet address used to receive client overpayments.",{"type":26,"tag":205,"props":1577,"children":1578},{},[1579,1589,1599,1609,1619],{"type":26,"tag":209,"props":1580,"children":1581},{},[1582,1587],{"type":26,"tag":618,"props":1583,"children":1584},{},[1585],{"type":31,"value":1586},"Establish the seed address.",{"type":31,"value":1588}," Query the disclosed address on a block explorer and capture the full transaction history, including inbound overpayments that match client remittance schedules. Document the queries and exports for reproducibility.",{"type":26,"tag":209,"props":1590,"children":1591},{},[1592,1597],{"type":26,"tag":618,"props":1593,"children":1594},{},[1595],{"type":31,"value":1596},"Follow the path.",{"type":31,"value":1598}," Trace outbound value from the seed address to subsequent addresses using standard clustering (common input ownership and change output). Identify a pattern of same-day movements into a single consolidation wallet: the analog of the Hamas affidavits' consolidation pattern.",{"type":26,"tag":209,"props":1600,"children":1601},{},[1602,1607],{"type":26,"tag":618,"props":1603,"children":1604},{},[1605],{"type":31,"value":1606},"Find the service-provider touchpoint.",{"type":31,"value":1608}," When the consolidation wallet funds are sent to a deposit address attributable to an exchange, subpoena the exchange for account records tied to that deposit address, including KYC documents.",{"type":26,"tag":209,"props":1610,"children":1611},{},[1612,1617],{"type":26,"tag":618,"props":1613,"children":1614},{},[1615],{"type":31,"value":1616},"Corroborate with communications and behavior.",{"type":31,"value":1618}," Depose the vendor about the exchange account and the consolidation wallet. Correlate transaction timestamps with vendor travel or project milestones to create the attribution layer the ledger alone cannot supply.",{"type":26,"tag":209,"props":1620,"children":1621},{},[1622,1627],{"type":26,"tag":618,"props":1623,"children":1624},{},[1625],{"type":31,"value":1626},"Preserve the control evidence.",{"type":31,"value":1628}," Move for production of device forensics or a signed message from the disputed addresses, exactly as the government's legal process secured the off-chain records in the seizure wave.",{"type":26,"tag":27,"props":1630,"children":1631},{},[1632],{"type":31,"value":1633},"This sequence is a scaled-down civil analog of the six evidence categories above: path, interposition (the discovery demand), communications, service-provider records, obfuscation detection, and legal process.",{"type":26,"tag":34,"props":1635,"children":1637},{"id":1636},"a-checklist-for-reading-any-public-warrant-or-seizure-record",[1638],{"type":31,"value":1639},"A Checklist for Reading Any Public Warrant or Seizure Record",{"type":26,"tag":27,"props":1641,"children":1642},{},[1643],{"type":31,"value":1644},"When a client hands you a government warrant, press release, or affidavit, run this checklist before forming any opinion:",{"type":26,"tag":1331,"props":1646,"children":1649},{"className":1647},[1648],"contains-task-list",[1650,1670,1685,1700,1715,1730,1745],{"type":26,"tag":209,"props":1651,"children":1654},{"className":1652},[1653],"task-list-item",[1655,1661,1663,1668],{"type":26,"tag":1656,"props":1657,"children":1660},"input",{"disabled":1658,"type":1659},true,"checkbox",[],{"type":31,"value":1662}," ",{"type":26,"tag":618,"props":1664,"children":1665},{},[1666],{"type":31,"value":1667},"Identify the legal instrument.",{"type":31,"value":1669}," Is it a warrant application, a returned warrant, an affidavit, a forfeiture complaint, or a press release? Each supports a different conclusion.",{"type":26,"tag":209,"props":1671,"children":1673},{"className":1672},[1653],[1674,1677,1678,1683],{"type":26,"tag":1656,"props":1675,"children":1676},{"disabled":1658,"type":1659},[],{"type":31,"value":1662},{"type":26,"tag":618,"props":1679,"children":1680},{},[1681],{"type":31,"value":1682},"Separate allegations from findings.",{"type":31,"value":1684}," Flag every sentence the government asserts as investigatory belief rather than adjudicated fact.",{"type":26,"tag":209,"props":1686,"children":1688},{"className":1687},[1653],[1689,1692,1693,1698],{"type":26,"tag":1656,"props":1690,"children":1691},{"disabled":1658,"type":1659},[],{"type":31,"value":1662},{"type":26,"tag":618,"props":1694,"children":1695},{},[1696],{"type":31,"value":1697},"Locate the probable-cause foundation.",{"type":31,"value":1699}," If an affidavit exists, identify which factual predicates support it and which are speculative or attributed.",{"type":26,"tag":209,"props":1701,"children":1703},{"className":1702},[1653],[1704,1707,1708,1713],{"type":26,"tag":1656,"props":1705,"children":1706},{"disabled":1658,"type":1659},[],{"type":31,"value":1662},{"type":26,"tag":618,"props":1709,"children":1710},{},[1711],{"type":31,"value":1712},"Map each evidence category.",{"type":31,"value":1714}," Place every assertion into one of: on-chain path, interposed transaction, communications, service-provider records, obfuscation indicators, or legal process.",{"type":26,"tag":209,"props":1716,"children":1718},{"className":1717},[1653],[1719,1722,1723,1728],{"type":26,"tag":1656,"props":1720,"children":1721},{"disabled":1658,"type":1659},[],{"type":31,"value":1662},{"type":26,"tag":618,"props":1724,"children":1725},{},[1726],{"type":31,"value":1727},"Split path from attribution.",{"type":31,"value":1729}," State what the record proves about value movement versus what it proves about persons.",{"type":26,"tag":209,"props":1731,"children":1733},{"className":1732},[1653],[1734,1737,1738,1743],{"type":26,"tag":1656,"props":1735,"children":1736},{"disabled":1658,"type":1659},[],{"type":31,"value":1662},{"type":26,"tag":618,"props":1739,"children":1740},{},[1741],{"type":31,"value":1742},"Note what is sealed or withheld.",{"type":31,"value":1744}," Warrants are often unsealed only in part. Redactions and sealed exhibits leave gaps in the public record; they do not establish what the nonpublic material proves.",{"type":26,"tag":209,"props":1746,"children":1748},{"className":1747},[1653],[1749,1752,1753,1758],{"type":26,"tag":1656,"props":1750,"children":1751},{"disabled":1658,"type":1659},[],{"type":31,"value":1662},{"type":26,"tag":618,"props":1754,"children":1755},{},[1756],{"type":31,"value":1757},"Check the return.",{"type":31,"value":1759}," The warrant's return, inventory, and certification are the place to look for what was actually taken, which may differ from what was authorized. In the posted March, June, and October packets, those AO 109 fields are blank, so reconstruct execution from provider production rather than treating the public return as a filled inventory.",{"type":26,"tag":34,"props":1761,"children":1763},{"id":1762},"limitations-burdens-tools-and-sealed-material",[1764],{"type":31,"value":1765},"Limitations: Burdens, Tools, and Sealed Material",{"type":26,"tag":27,"props":1767,"children":1768},{},[1769],{"type":31,"value":1770},"A government seizure record is a persuasive and instructive document, but it is not a template to be transplanted into civil litigation without adaptation.",{"type":26,"tag":27,"props":1772,"children":1773},{},[1774,1779],{"type":26,"tag":618,"props":1775,"children":1776},{},[1777],{"type":31,"value":1778},"Lower burdens.",{"type":31,"value":1780}," Probable cause is a lower standard than proof by a preponderance of the evidence, and both are lower than proof beyond a reasonable doubt. A magistrate's authorization does not constitute a finding that any defendant is liable or guilty.",{"type":26,"tag":27,"props":1782,"children":1783},{},[1784,1789],{"type":26,"tag":618,"props":1785,"children":1786},{},[1787],{"type":31,"value":1788},"Different tools.",{"type":31,"value":1790}," The government can compel records from providers, request issuer or exchange freezes of stablecoin balances, and take control of infrastructure using authorities a civil litigant does not possess. A private party can pursue relevant nonprivileged discovery, but that process is subject to objections, privilege, and cross-jurisdictional enforcement problems.",{"type":26,"tag":27,"props":1792,"children":1793},{},[1794,1799],{"type":26,"tag":618,"props":1795,"children":1796},{},[1797],{"type":31,"value":1798},"Sealed and incomplete records.",{"type":31,"value":1800}," The affidavits posted by the DOJ are partial views. Significant portions of the underlying investigation, including provider communications and foreign records, are not public. An expert who builds a civil case on a partial warrant record without confirming the evidentiary foundation is building on sand. When the record is incomplete, the correct response is narrow analysis, not confidence.",{"type":26,"tag":27,"props":1802,"children":1803},{},[1804,1809],{"type":26,"tag":618,"props":1805,"children":1806},{},[1807],{"type":31,"value":1808},"No adjudication.",{"type":31,"value":1810}," None of the September 2026 materials reflect a conviction, a forfeiture order, or a finding against any individual. Any use of this case study must preserve that distinction.",{"type":26,"tag":27,"props":1812,"children":1813},{},[1814,1816,1822,1824,1830],{"type":31,"value":1815},"For the civil analog of these methods as applied to Ponzi and fraud structures, see the ",{"type":26,"tag":46,"props":1817,"children":1819},{"href":1818},"\u002Fresources\u002Fdeconstructing-ponzi-blockchain-methodology",[1820],{"type":31,"value":1821},"methodological walkthrough of blockchain Ponzi reconstruction",{"type":31,"value":1823},", and for the foundational question of what tracing can and cannot establish, see ",{"type":26,"tag":46,"props":1825,"children":1827},{"href":1826},"\u002Fresources\u002Fcan-blockchain-transactions-be-traced",[1828],{"type":31,"value":1829},"can blockchain transactions be traced",{"type":31,"value":526},{"type":26,"tag":34,"props":1832,"children":1834},{"id":1833},"discovery-and-evidence-questions-worth-asking",[1835],{"type":31,"value":1836},"Discovery and Evidence Questions Worth Asking",{"type":26,"tag":27,"props":1838,"children":1839},{},[1840],{"type":31,"value":1841},"If you are building or challenging a trace modeled on this record, these are the questions to ask of your own expert, or of the opposing expert in deposition if the opinion rests on a warrant or government filing:",{"type":26,"tag":205,"props":1843,"children":1844},{},[1845,1850,1855,1860,1865],{"type":26,"tag":209,"props":1846,"children":1847},{},[1848],{"type":31,"value":1849},"Which addresses are claimed to be connected, and which clustering heuristic supports each connection?",{"type":26,"tag":209,"props":1851,"children":1852},{},[1853],{"type":31,"value":1854},"What is the confidence level attached to the path analysis versus the attribution analysis?",{"type":26,"tag":209,"props":1856,"children":1857},{},[1858],{"type":31,"value":1859},"Which service-provider records were obtained, from whom, and by what legal authority?",{"type":26,"tag":209,"props":1861,"children":1862},{},[1863],{"type":31,"value":1864},"Were any transactions observed, frozen, or redirected by an investigator or third party, and what effect does that interposition have on the integrity of the trace?",{"type":26,"tag":209,"props":1866,"children":1867},{},[1868],{"type":31,"value":1869},"Which assertions in the opinion trace to a publicly available primary source, and which rest on sealed or secondhand material?",{"type":26,"tag":27,"props":1871,"children":1872},{},[1873,1875,1880,1882,1888,1890,1894],{"type":31,"value":1874},"An expert who cannot answer each of these questions with a specific, verifiable response has not yet completed the analysis. If you need to build this evidence layer yourself, ",{"type":26,"tag":46,"props":1876,"children":1877},{"href":700},[1878],{"type":31,"value":1879},"ConsensusIntel's blockchain tracing services",{"type":31,"value":1881}," cover the path and attribution work, and ",{"type":26,"tag":46,"props":1883,"children":1885},{"href":1884},"\u002Fservices#expert-witness",[1886],{"type":31,"value":1887},"expert witness services",{"type":31,"value":1889}," cover the report and testimony stage. The ",{"type":26,"tag":46,"props":1891,"children":1892},{"href":596},[1893],{"type":31,"value":599},{"type":31,"value":1895}," explains how evidence produced in this layered fashion is documented for litigation.",{"type":26,"tag":34,"props":1897,"children":1898},{"id":604},[1899],{"type":31,"value":607},{"type":26,"tag":96,"props":1901,"children":1903},{"id":1902},"q-can-i-rely-on-a-doj-seizure-warrant-as-proof-in-my-civil-case",[1904],{"type":31,"value":1905},"Q: Can I rely on a DOJ seizure warrant as proof in my civil case?",{"type":26,"tag":27,"props":1907,"children":1908},{},[1909,1913],{"type":26,"tag":618,"props":1910,"children":1911},{},[1912],{"type":31,"value":622},{"type":31,"value":1914}," Not directly. A warrant establishes that a magistrate found probable cause to seize property, which is a lower threshold than civil proof and carries no finding of liability. You can use the warrant as a roadmap for what evidence exists and where it came from, then obtain and verify the underlying records yourself. Treat the government's factual assertions as allegations supported by an investigation you have not seen in full.",{"type":26,"tag":96,"props":1916,"children":1918},{"id":1917},"q-what-is-the-difference-between-path-tracing-and-actor-attribution-in-these-affidavits",[1919],{"type":31,"value":1920},"Q: What is the difference between path tracing and actor attribution in these affidavits?",{"type":26,"tag":27,"props":1922,"children":1923},{},[1924,1928],{"type":26,"tag":618,"props":1925,"children":1926},{},[1927],{"type":31,"value":622},{"type":31,"value":1929}," Path tracing shows where value moved on-chain: addresses, amounts, and timestamps, which is directly observable on the public ledger. Actor attribution connects addresses to persons or organizations, which the ledger cannot do alone. In the Hamas seizure record, attribution rests on the off-chain layers: platform accounts, service-provider records, communications content, and the government's control of infrastructure. Any expert report that merges the two without labeling the confidence of each will be vulnerable on cross-examination.",{"type":26,"tag":96,"props":1931,"children":1933},{"id":1932},"q-why-did-the-government-release-these-warrant-materials-to-the-public",[1934],{"type":31,"value":1935},"Q: Why did the government release these warrant materials to the public?",{"type":26,"tag":27,"props":1937,"children":1938},{},[1939,1943],{"type":26,"tag":618,"props":1940,"children":1941},{},[1942],{"type":31,"value":622},{"type":31,"value":1944}," The Department did not state a separate reason for publication. It posted the seizure warrants and related materials through its Office of Public Affairs with the September 1, 2026 announcement. The applications were filed under seal, and the posted packets are redacted, so the public record is partial. Practitioners should treat the posted documents as the evidentiary window the government chose to open, not the complete file.",{"type":26,"tag":96,"props":1946,"children":1948},{"id":1947},"q-do-blockchain-seizure-warrants-identify-real-people",[1949],{"type":31,"value":1950},"Q: Do blockchain seizure warrants identify real people?",{"type":26,"tag":27,"props":1952,"children":1953},{},[1954,1958],{"type":26,"tag":618,"props":1955,"children":1956},{},[1957],{"type":31,"value":622},{"type":31,"value":1959}," Sometimes, but their focus is property, not persons. Warrants name addresses, accounts, and infrastructure as the items to be seized, and affidavits describe the investigation supporting probable cause. Names can appear where service-provider records or communications tie an account to an individual, but a warrant is not a charging document or a conviction. Do not read an uncharged name in an affidavit as an adjudicated finding.",{"type":26,"tag":34,"props":1961,"children":1963},{"id":1962},"closing",[1964],{"type":31,"value":1965},"Closing",{"type":26,"tag":27,"props":1967,"children":1968},{},[1969,1971,1976],{"type":31,"value":1970},"This case study is a particularly clean example of investigative layering in a real enforcement record, but every matter differs in its facts, jurisdictions, and available evidence. If you are evaluating a trace, preparing to challenge an opposing expert, or considering whether a public seizure record can advance your client's interests, a consultation is the right next step. ",{"type":26,"tag":46,"props":1972,"children":1973},{"href":692},[1974],{"type":31,"value":1975},"Contact ConsensusIntel",{"type":31,"value":1977}," to discuss the specifics of your matter.",{"title":7,"searchDepth":715,"depth":715,"links":1979},[1980,1981,1989,1990,1991,1992,1993,1994,2000],{"id":1316,"depth":715,"text":1319},{"id":1395,"depth":715,"text":1398,"children":1982},[1983,1984,1985,1986,1987,1988],{"id":1424,"depth":721,"text":1427},{"id":1444,"depth":721,"text":1447},{"id":1471,"depth":721,"text":1474},{"id":1482,"depth":721,"text":1485},{"id":1493,"depth":721,"text":1496},{"id":1504,"depth":721,"text":1507},{"id":1515,"depth":715,"text":1518},{"id":1557,"depth":715,"text":1560},{"id":1636,"depth":715,"text":1639},{"id":1762,"depth":715,"text":1765},{"id":1833,"depth":715,"text":1836},{"id":604,"depth":715,"text":607,"children":1995},[1996,1997,1998,1999],{"id":1902,"depth":721,"text":1905},{"id":1917,"depth":721,"text":1920},{"id":1932,"depth":721,"text":1935},{"id":1947,"depth":721,"text":1950},{"id":1962,"depth":715,"text":1965},"content:articles:39-crypto-seizure-warrant-trace-hamas-2026.md","articles\u002F39-crypto-seizure-warrant-trace-hamas-2026.md","articles\u002F39-crypto-seizure-warrant-trace-hamas-2026",{"_path":2005,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":2006,"description":2007,"slug":2008,"date":2009,"lastUpdated":2009,"author":12,"readingTime":2010,"category":14,"tags":2011,"ogImage":2016,"featured":6,"body":2017,"_type":739,"_id":2592,"_source":741,"_file":2593,"_stem":2594,"_extension":744},"\u002Farticles\u002F37-reproducible-blockchain-evidence","Reproducible blockchain evidence beyond the explorer screenshot","Collecting blockchain evidence that another qualified analyst can reproduce: provenance fields, raw response hashes, query documentation, and label provenance.","reproducible-blockchain-evidence","2026-08-22",16,[20,2012,2013,2014,2015],"blockchain","methodology","expert-witness","digital-forensics","\u002Fog\u002Freproducible-blockchain-evidence.png",{"type":23,"children":2018,"toc":2567},[2019,2024,2044,2050,2055,2060,2083,2089,2094,2100,2105,2111,2116,2122,2127,2133,2163,2169,2174,2180,2193,2199,2213,2218,2224,2229,2242,2248,2260,2287,2292,2297,2303,2308,2313,2319,2324,2387,2392,2398,2403,2451,2457,2477,2481,2487,2496,2502,2511,2517,2526,2532,2541,2547,2556],{"type":26,"tag":27,"props":2020,"children":2021},{},[2022],{"type":31,"value":2023},"Every blockchain record offered in litigation is the output of a query. Someone asked a node, a provider, or a third-party website to return a slice of a distributed database, and the record in the exhibit file is what came back, usually after the interface reformatted it. That means the evidentiary question is rarely about the blockchain itself, which is verifiable by anyone. The question is whether the collection process that produced the exhibit is documented well enough that another qualified person can reproduce the result after the explorer, the label, or the API has changed.",{"type":26,"tag":27,"props":2025,"children":2026},{},[2027,2029,2035,2037,2043],{"type":31,"value":2028},"This article is a technical acquisition protocol, not another admissibility survey. It defines the minimum provenance fields for a defensible collection package, explains how to preserve raw outputs and hash them before any normalization, separates protocol-derived facts from third-party labels, and provides a reproducibility appendix template for expert reports. For the legal framework around authentication, see ",{"type":26,"tag":46,"props":2030,"children":2032},{"href":2031},"\u002Fresources\u002Fblockchain-evidence-admissibility",[2033],{"type":31,"value":2034},"how blockchain records are authenticated under FRE 901 and 902",{"type":31,"value":2036}," and the ",{"type":26,"tag":46,"props":2038,"children":2040},{"href":2039},"\u002Fresources\u002Fblockchain-evidence-federal-missouri-rules",[2041],{"type":31,"value":2042},"federal and Missouri admissibility rules",{"type":31,"value":526},{"type":26,"tag":34,"props":2045,"children":2047},{"id":2046},"why-an-explorer-screenshot-is-not-an-acquisition-record",[2048],{"type":31,"value":2049},"Why an Explorer Screenshot Is Not an Acquisition Record",{"type":26,"tag":27,"props":2051,"children":2052},{},[2053],{"type":31,"value":2054},"A screenshot of a block explorer records pixels, not provenance. It captures what a third-party interface chose to display at one moment: a decoded value, an applied label, a converted time zone, a color-coded flow diagram. What it does not capture is everything the record needs to be reproduced later.",{"type":26,"tag":27,"props":2056,"children":2057},{},[2058],{"type":31,"value":2059},"The missing information is not exotic. A screenshot does not tell you which node or API answered the request, what query method and parameters produced the view, whether the displayed value is a protocol field or an assembled inference, what time source the interface used, or what the raw response contained before the interface normalized it. Copied text from an explorer is worse in one respect: the copy loses the structure of the underlying response, so decimals, hex encodings, and log positions that the interface already decoded are unrecoverable from the paste itself. A live link to an explorer page is the least durable of the three, because the page can be re-rendered, relabeled, or taken down, and the URL records only the query, not the answer.",{"type":26,"tag":27,"props":2061,"children":2062},{},[2063,2065,2072,2074,2081],{"type":31,"value":2064},"The rules point in the same direction. Under the ",{"type":26,"tag":46,"props":2066,"children":2069},{"href":2067,"rel":2068},"https:\u002F\u002Fwww.uscourts.gov\u002Fsites\u002Fdefault\u002Ffiles\u002F2025-02\u002Ffederal-rules-of-evidence-dec-1-2024.pdf",[50],[2070],{"type":31,"value":2071},"Federal Rules of Evidence pamphlet effective December 1, 2024",{"type":31,"value":2073},", self-authentication under Rule 902(13) or 902(14) requires a qualified person's certification, plus written notice under Rule 902(11). As the 2017 ",{"type":26,"tag":46,"props":2075,"children":2078},{"href":2076,"rel":2077},"https:\u002F\u002Fwww.law.cornell.edu\u002Frules\u002Ffre\u002Frule_902",[50],[2079],{"type":31,"value":2080},"Advisory Committee Note to Rule 902(13)",{"type":31,"value":2082}," explains, that certification must contain \"information that would be sufficient to establish authenticity were that information provided by a witness at trial.\" A witness can only describe what was actually recorded during collection. A screenshot alone does not supply that information, and it would be wrong to suggest that an unadorned screenshot satisfies Rule 902(13) or 902(14), which require a qualified person's certification describing the electronic process or the copying process, plus notice under Rule 902(11). The practical takeaway: treat the screenshot as a demonstrative exhibit and the collection package as the evidence.",{"type":26,"tag":34,"props":2084,"children":2086},{"id":2085},"what-a-reproducible-collection-package-must-contain",[2087],{"type":31,"value":2088},"What a Reproducible Collection Package Must Contain",{"type":26,"tag":27,"props":2090,"children":2091},{},[2092],{"type":31,"value":2093},"A collection package is the set of raw outputs, identifiers, and documentation captured at collection time. The goal is that a second analyst, given the package, can regenerate every exhibit in the report and confirm each recorded value. Six groups of provenance fields cover nearly every blockchain data type.",{"type":26,"tag":96,"props":2095,"children":2097},{"id":2096},"chain-identity",[2098],{"type":31,"value":2099},"Chain Identity",{"type":26,"tag":27,"props":2101,"children":2102},{},[2103],{"type":31,"value":2104},"Record the network by name and by numeric chain identifier, distinguish mainnet from testnet, and note whether the chain uses proof of work, proof of stake, or another consensus rule. Ethereum mainnet uses chain ID 1; Bitcoin has no chain ID equivalent, so the network name and the genesis block hash serve the same purpose of disambiguating which chain is at issue. Screenshots routinely omit this, and a transaction that looks identical on a testnet is not evidence of anything.",{"type":26,"tag":96,"props":2106,"children":2108},{"id":2107},"block-and-transaction-identifiers",[2109],{"type":31,"value":2110},"Block and Transaction Identifiers",{"type":26,"tag":27,"props":2112,"children":2113},{},[2114],{"type":31,"value":2115},"Record the block number and block hash, the transaction hash, the transaction's position within the block, and the block timestamp as reported by the chain. Also record how many confirmations the block had at collection time and whether the chain's finality mechanism had already marked it final. These fields let a later analyst locate the exact record even if an explorer has changed its display entirely.",{"type":26,"tag":96,"props":2117,"children":2119},{"id":2118},"contract-token-and-log-data",[2120],{"type":31,"value":2121},"Contract, Token, and Log Data",{"type":26,"tag":27,"props":2123,"children":2124},{},[2125],{"type":31,"value":2126},"For token transfers and smart contract activity, record the contract address, the token standard (for example ERC-20 or ERC-721 on EVM chains), the event signature, the receipt log position alongside the block-scoped log index, and the decoder that was used. Decoding is a transformation, not raw data: the raw log is hex, and the readable \"250,000 USDC\" is the output of an ABI decoder. The package needs both the raw log and the decoder version so the decode can be re-run.",{"type":26,"tag":96,"props":2128,"children":2130},{"id":2129},"query-and-endpoint-records",[2131],{"type":31,"value":2132},"Query and Endpoint Records",{"type":26,"tag":27,"props":2134,"children":2135},{},[2136,2138,2144,2146,2152,2154,2161],{"type":31,"value":2137},"Document the exact request: the RPC method (such as ",{"type":26,"tag":71,"props":2139,"children":2141},{"className":2140},[],[2142],{"type":31,"value":2143},"eth_getBlockByNumber",{"type":31,"value":2145}," or ",{"type":26,"tag":71,"props":2147,"children":2149},{"className":2148},[],[2150],{"type":31,"value":2151},"eth_getTransactionReceipt",{"type":31,"value":2153},"), every parameter, the endpoint URL, whether the node is a full node or archive node, the client software and version (for example geth or Nethermind by name and release), and the provider if data came through a commercial API rather than a self-run node. The ",{"type":26,"tag":46,"props":2155,"children":2158},{"href":2156,"rel":2157},"https:\u002F\u002Feips.ethereum.org\u002FEIPS\u002Feip-1474",[50],[2159],{"type":31,"value":2160},"EIP-1474 remote procedure call specification",{"type":31,"value":2162},", created in 2018 and marked Stagnant, documents these method shapes. Citing the specification that defines the request format is part of reproducibility, but it is not a substitute for recording the request you actually sent.",{"type":26,"tag":96,"props":2164,"children":2166},{"id":2165},"time-and-time-source",[2167],{"type":31,"value":2168},"Time and Time Source",{"type":26,"tag":27,"props":2170,"children":2171},{},[2172],{"type":31,"value":2173},"Record capture time in UTC, note the clock source (system clock, NTP-synchronized host, or the provider's response header), and record any time zone conversion as a separate presentation step. Blockchain timestamps are second-granularity values set by block producers, not investigator observation times, and the two must never be conflated in a report. Chain timestamps are protocol data; the time you pressed \"collect\" is an observation fact; each has its own field.",{"type":26,"tag":96,"props":2175,"children":2177},{"id":2176},"raw-outputs-and-hashes",[2178],{"type":31,"value":2179},"Raw Outputs and Hashes",{"type":26,"tag":27,"props":2181,"children":2182},{},[2183,2185,2191],{"type":31,"value":2184},"Save the raw response verbatim, in the format the API returned it, before any parsing, decoding, or visualization. Compute a cryptographic hash of each saved file at the moment of save and record the algorithm and the hash value. The 2017 ",{"type":26,"tag":46,"props":2186,"children":2188},{"href":2076,"rel":2187},[50],[2189],{"type":31,"value":2190},"Advisory Committee Note to Rule 902(14)",{"type":31,"value":2192}," explains why this is the accepted practice for copied electronic data: if the hash values for the original and the copy are the same, \"it is highly improbable that the original and copy are not identical.\" The collection-time hash lets the analyst verify the integrity of the saved artifact later by hashing the exhibit or copy and comparing it with the recorded value. Subsequent multi-source verification addresses a different question, whether the response matches canonical chain state.",{"type":26,"tag":34,"props":2194,"children":2196},{"id":2195},"preserve-raw-outputs-before-normalization",[2197],{"type":31,"value":2198},"Preserve Raw Outputs Before Normalization",{"type":26,"tag":27,"props":2200,"children":2201},{},[2202,2204,2211],{"type":31,"value":2203},"Forensic process guidance does not change because the data source is a blockchain. ",{"type":26,"tag":46,"props":2205,"children":2208},{"href":2206,"rel":2207},"https:\u002F\u002Fcsrc.nist.gov\u002Fpubs\u002Fsp\u002F800\u002F86\u002Ffinal",[50],[2209],{"type":31,"value":2210},"NIST SP 800-86, Guide to Integrating Forensic Techniques into Incident Response",{"type":31,"value":2212}," (August 2006), frames the work in phases, starting with collection and examination before analysis and reporting, and its core discipline is that the collector preserves the data as found and documents integrity. Applied to blockchain evidence, the rule is simple: raw first, derived second, and every derivation logged.",{"type":26,"tag":27,"props":2214,"children":2215},{},[2216],{"type":31,"value":2217},"Concretely, the JSON response from an RPC call is the \"as found\" artifact. The pretty-printed CSV, the chart, and the report table are derived products. If the analyst only saves the CSV, the original hex values, error fields, and unmodified response object are gone. Keep the raw file in a directory that is never edited, record its hash there, and build the derived products from copies. If a transformation script is involved, record the script's name and version and hash the script too, so a later analyst can confirm the transformation that produced the exhibit. This is a methodological recommendation, not a legal obligation; what the law requires is whatever authentication standard governs your forum, but the recording discipline is what makes certification under Rules 902(13) and (14), or live testimony under Rule 901, actually supportable.",{"type":26,"tag":34,"props":2219,"children":2221},{"id":2220},"separate-protocol-facts-from-third-party-labels",[2222],{"type":31,"value":2223},"Separate Protocol Facts From Third-Party Labels",{"type":26,"tag":27,"props":2225,"children":2226},{},[2227],{"type":31,"value":2228},"A recurring weakness in blockchain exhibits is presenting a label as if it were a chain fact. \"Funds arrived at Binance\" mixes two different claims: the protocol fact that funds moved to a specific address, and the inference, drawn from a third party's directory, that the address is controlled by Binance. The address is on the chain. The label is someone else's research product, and it can be wrong, stale, or contested.",{"type":26,"tag":27,"props":2230,"children":2231},{},[2232,2234,2240],{"type":31,"value":2233},"Record labels separately from protocol data, and record the label's own provenance: which service assigned it, when it was captured, what the service advertises as its methodology, and whether it agrees with any independent check. Recommendation, not a rule: verify high-stakes labels against a second source, such as a published wallet list, an exchange's deposit address, or records produced in discovery. The ",{"type":26,"tag":46,"props":2235,"children":2237},{"href":2236},"\u002Fresources\u002Fwhy-blockchain-forensic-reports-fail-daubert",[2238],{"type":31,"value":2239},"Daubert failure analysis",{"type":31,"value":2241}," of blockchain reports treats unverified platform attribution as the first failure pattern; the collection package is the place to prevent that. In the report, state plainly which sentences are protocol facts, which are inferences, and which are recommendations, because the three have very different evidentiary lives.",{"type":26,"tag":34,"props":2243,"children":2245},{"id":2244},"a-worked-hypothetical-collecting-one-transfer",[2246],{"type":31,"value":2247},"A Worked Hypothetical: Collecting One Transfer",{"type":26,"tag":27,"props":2249,"children":2250},{},[2251,2253,2259],{"type":31,"value":2252},"Hypothetical example: an analyst needs to preserve the record of a 250,000 USDC transfer on Ethereum mainnet. Assume the transaction hash is 0x3f9a1c2e (illustrative), the block number is 25,300,672 (mined approximately four hours earlier), and collection happens on June 12, 2026 at 14:05 UTC from the analyst's own archive node running geth version 1.15, accessed over local RPC at ",{"type":26,"tag":46,"props":2254,"children":2257},{"href":2255,"rel":2256},"http:\u002F\u002F127.0.0.1:8545",[50],[2258],{"type":31,"value":2255},{"type":31,"value":526},{"type":26,"tag":27,"props":2261,"children":2262},{},[2263,2265,2271,2273,2278,2280,2285],{"type":31,"value":2264},"The analyst issues ",{"type":26,"tag":71,"props":2266,"children":2268},{"className":2267},[],[2269],{"type":31,"value":2270},"eth_getTransactionByHash",{"type":31,"value":2272}," with the transaction hash and ",{"type":26,"tag":71,"props":2274,"children":2276},{"className":2275},[],[2277],{"type":31,"value":2151},{"type":31,"value":2279}," with the same hash, and saves both raw JSON responses verbatim into the raw directory, recording sha256 hashes of each file immediately (illustrative values: 1f4b7c2e... and 9a03d8f1...). The receipt shows the transfer occurred at position 2 in the transaction's logs array (with its corresponding block logIndex), and the analyst decodes that log with a specific ABI decoder version to produce \"250,000 USDC from 0xA1B2... to 0xC3D4...\". The block is retrieved with ",{"type":26,"tag":71,"props":2281,"children":2283},{"className":2282},[],[2284],{"type":31,"value":2143},{"type":31,"value":2286}," at the noted height with the full-transactions flag, confirming the timestamp and the transaction's position in the block. At 14:05 UTC the block has 1,193 confirmations and the chain has already finalized it through proof of stake finality, both recorded.",{"type":26,"tag":27,"props":2288,"children":2289},{},[2290],{"type":31,"value":2291},"An explorer page for the receiving address displays the label \"Exchange X\" next to 0xC3D4.... The analyst records the label separately, with the explorer name, the capture timestamp, and a note that the label is an unverified third-party attribution. Six weeks later, the explorer reclassifies the address and removes the label. The protocol-derived portion of the exhibit, backed by the raw responses and hashes, is unaffected; only the label has decayed, and the package shows precisely where the label sat in the analysis.",{"type":26,"tag":27,"props":2293,"children":2294},{},[2295],{"type":31,"value":2296},"If the analyst had only taken the screenshot, the reclassification would silently change what the exhibit appeared to show. With the package, the report can state what the chain said at collection, what a third party labeled at collection, and what the label says now, which is a far stronger position on both direct and cross.",{"type":26,"tag":34,"props":2298,"children":2300},{"id":2299},"test-the-package-before-you-need-it",[2301],{"type":31,"value":2302},"Test the Package Before You Need It",{"type":26,"tag":27,"props":2304,"children":2305},{},[2306],{"type":31,"value":2307},"A reproducible package is worthless until someone has actually reproduced from it. Before the report is served, run a verification pass that does not reuse the same node, provider, or session: re-query the same transactions from a different provider or a second self-run node, compare the raw fields field by field, and recalculate the recorded hashes from the saved files. Differences are not automatically errors. During a chain reorganization, or before a proof of stake chain has finalized a block, different nodes can legitimately return different block contents for the same height, which is why confirmation count and finality status must be in the package in the first place. Mempool observations are not chain data at all and belong in a clearly separate category.",{"type":26,"tag":27,"props":2309,"children":2310},{},[2311],{"type":31,"value":2312},"Two practical tests catch most failures. First, hand the package to a colleague with no memory of the analysis and ask them to regenerate one exhibit from raw files alone; if they cannot, the package is missing a step. Second, re-query the data after a lag of weeks, when explorer labels, API versions, and provider defaults have had time to drift, and confirm every protocol-derived field is stable. If the second test changes the exhibit, the drift is a feature of the package: it shows exactly what depended on a mutable third party.",{"type":26,"tag":34,"props":2314,"children":2316},{"id":2315},"reproducibility-appendix-template",[2317],{"type":31,"value":2318},"Reproducibility Appendix Template",{"type":26,"tag":27,"props":2320,"children":2321},{},[2322],{"type":31,"value":2323},"For the expert report, include a reproducibility appendix with one entry per collected item, each containing all of the following fields:",{"type":26,"tag":205,"props":2325,"children":2326},{},[2327,2332,2337,2342,2347,2352,2357,2362,2367,2372,2377,2382],{"type":26,"tag":209,"props":2328,"children":2329},{},[2330],{"type":31,"value":2331},"Network name, chain ID or genesis identity, and mainnet or testnet designation.",{"type":26,"tag":209,"props":2333,"children":2334},{},[2335],{"type":31,"value":2336},"Block number, block hash, and block timestamp as reported by the chain.",{"type":26,"tag":209,"props":2338,"children":2339},{},[2340],{"type":31,"value":2341},"Transaction hash and position within the block.",{"type":26,"tag":209,"props":2343,"children":2344},{},[2345],{"type":31,"value":2346},"Contract address, token standard, event signature, receipt log position, and block log index where applicable.",{"type":26,"tag":209,"props":2348,"children":2349},{},[2350],{"type":31,"value":2351},"RPC method and complete request parameters.",{"type":26,"tag":209,"props":2353,"children":2354},{},[2355],{"type":31,"value":2356},"Endpoint URL, node type, client software and version, or provider name and plan.",{"type":26,"tag":209,"props":2358,"children":2359},{},[2360],{"type":31,"value":2361},"Capture timestamp in UTC and the clock source.",{"type":26,"tag":209,"props":2363,"children":2364},{},[2365],{"type":31,"value":2366},"Confirmation count and finality status at capture.",{"type":26,"tag":209,"props":2368,"children":2369},{},[2370],{"type":31,"value":2371},"File names of the saved raw responses and the hash algorithm and value for each.",{"type":26,"tag":209,"props":2373,"children":2374},{},[2375],{"type":31,"value":2376},"Decoder or transformation tool, version, and its own hash if a script.",{"type":26,"tag":209,"props":2378,"children":2379},{},[2380],{"type":31,"value":2381},"Every third-party label used, its source, its capture date, and its verification status.",{"type":26,"tag":209,"props":2383,"children":2384},{},[2385],{"type":31,"value":2386},"The independent verification pass: second source queried, date, and result.",{"type":26,"tag":27,"props":2388,"children":2389},{},[2390],{"type":31,"value":2391},"Keeping this appendix current is a report discipline, not a one-time act. Every time a new address, block, or token enters the analysis, the corresponding entry should be created at collection, not reconstructed at drafting. A contemporaneous appendix is a methodology record; a retroactive one is a story.",{"type":26,"tag":34,"props":2393,"children":2395},{"id":2394},"questions-to-ask-the-collecting-expert",[2396],{"type":31,"value":2397},"Questions to Ask the Collecting Expert",{"type":26,"tag":27,"props":2399,"children":2400},{},[2401],{"type":31,"value":2402},"Whether the expert is yours or the opposing party's, these questions expose whether the underlying record is reproducible:",{"type":26,"tag":1331,"props":2404,"children":2405},{},[2406,2411,2416,2421,2426,2431,2436,2441,2446],{"type":26,"tag":209,"props":2407,"children":2408},{},[2409],{"type":31,"value":2410},"Which node, provider, or explorer answered each query, and which software version?",{"type":26,"tag":209,"props":2412,"children":2413},{},[2414],{"type":31,"value":2415},"What was the exact RPC method and parameter set for each exhibit?",{"type":26,"tag":209,"props":2417,"children":2418},{},[2419],{"type":31,"value":2420},"Where are the raw responses, and what are their hashes, recorded at collection time?",{"type":26,"tag":209,"props":2422,"children":2423},{},[2424],{"type":31,"value":2425},"How many confirmations did each block have, and was the chain's finality mechanism satisfied?",{"type":26,"tag":209,"props":2427,"children":2428},{},[2429],{"type":31,"value":2430},"What clock produced the timestamps, and were they converted from UTC?",{"type":26,"tag":209,"props":2432,"children":2433},{},[2434],{"type":31,"value":2435},"Which displayed values are protocol fields, and which are third-party labels with what provenance?",{"type":26,"tag":209,"props":2437,"children":2438},{},[2439],{"type":31,"value":2440},"What scripts, spreadsheets, or tools transformed raw data into the exhibit, and what versions?",{"type":26,"tag":209,"props":2442,"children":2443},{},[2444],{"type":31,"value":2445},"What changed between the collection date and the report date: explorer versions, labels, or API behavior?",{"type":26,"tag":209,"props":2447,"children":2448},{},[2449],{"type":31,"value":2450},"Did anyone independently re-query a sample, from a different source, and what did the comparison show?",{"type":26,"tag":34,"props":2452,"children":2454},{"id":2453},"limitations-of-the-acquisition-approach",[2455],{"type":31,"value":2456},"Limitations of the Acquisition Approach",{"type":26,"tag":27,"props":2458,"children":2459},{},[2460,2462,2467,2469,2475],{"type":31,"value":2461},"The collection package documents provenance; it does not by itself authenticate conclusions. It records what the chain returned and what was collected, not who controlled a wallet or whether a label is correct, and those attribution questions still depend on off-chain evidence and the analytical methods covered separately in the admissibility articles. Reorganization risk is real on proof of work chains, where the confirmation-depth convention exists precisely because short chains can be replaced, and finality on proof of stake chains takes effect only after the chain's finality gadget runs. Testnet and forked data replicate the mechanics without the evidentiary weight of the production chain. Provider responses can differ during reorgs, so multi-source divergence should be expected and documented rather than hidden. And none of this is jurisdiction-specific advice in the form of a rule: federal courts apply the Federal Rules of Evidence, Missouri state courts apply rules that closely parallel them with their own case law, and the practitioner should confirm the applicable authentication and certification requirements in the specific forum before relying on any of these practices. The ",{"type":26,"tag":46,"props":2463,"children":2464},{"href":596},[2465],{"type":31,"value":2466},"ConsensusIntel methodology",{"type":31,"value":2468}," describes how this collection discipline is applied in engagement work, and ",{"type":26,"tag":46,"props":2470,"children":2472},{"href":2471},"\u002Fservices#evidence-review",[2473],{"type":31,"value":2474},"evidence review services",{"type":31,"value":2476}," cover structured assessment of another expert's package.",{"type":26,"tag":34,"props":2478,"children":2479},{"id":604},[2480],{"type":31,"value":607},{"type":26,"tag":96,"props":2482,"children":2484},{"id":2483},"q-is-an-explorer-screenshot-ever-sufficient-as-blockchain-evidence",[2485],{"type":31,"value":2486},"Q: Is an explorer screenshot ever sufficient as blockchain evidence?",{"type":26,"tag":27,"props":2488,"children":2489},{},[2490,2494],{"type":26,"tag":618,"props":2491,"children":2492},{},[2493],{"type":31,"value":622},{"type":31,"value":2495}," A screenshot is a demonstrative record of a third-party interface; it is not a complete acquisition record, because it does not show which node answered, what query was run, what the raw response contained, or whether displayed labels were verified. By itself, a screenshot does not supply the qualified person's certification or written notice required to use Rule 902(13) or (14). In a contested matter, treat the screenshot as a visual aid and rely on a collection package that another analyst can reproduce.",{"type":26,"tag":96,"props":2497,"children":2499},{"id":2498},"q-what-is-a-chain-id-and-why-does-it-matter-for-evidence",[2500],{"type":31,"value":2501},"Q: What is a chain ID and why does it matter for evidence?",{"type":26,"tag":27,"props":2503,"children":2504},{},[2505,2509],{"type":26,"tag":618,"props":2506,"children":2507},{},[2508],{"type":31,"value":622},{"type":31,"value":2510}," A chain ID is the numeric identifier that distinguishes one EVM-compatible network from another; Ethereum mainnet uses chain ID 1, and test networks and forks use different values. Chains without a chain ID, like Bitcoin, are identified by network name and genesis hash. Recording this field prevents a testnet or forked transaction from being presented, or challenged, as if it occurred on the production chain.",{"type":26,"tag":96,"props":2512,"children":2514},{"id":2513},"q-should-blockchain-data-be-collected-from-my-own-node-or-from-a-commercial-provider",[2515],{"type":31,"value":2516},"Q: Should blockchain data be collected from my own node or from a commercial provider?",{"type":26,"tag":27,"props":2518,"children":2519},{},[2520,2524],{"type":26,"tag":618,"props":2521,"children":2522},{},[2523],{"type":31,"value":622},{"type":31,"value":2525}," Either can be defensible, but the package must document which one was used. A self-run node gives the analyst direct control over the client version and query, while a commercial provider is faster but adds a third party whose response is itself part of the chain of custody. The reproducible standard is the same for both: record the endpoint, the client or provider, the version, the exact query, and the raw response with its hash, and verify a sample against an independent source.",{"type":26,"tag":96,"props":2527,"children":2529},{"id":2528},"q-what-does-reproducible-require-of-an-expert-report",[2530],{"type":31,"value":2531},"Q: What does \"reproducible\" require of an expert report?",{"type":26,"tag":27,"props":2533,"children":2534},{},[2535,2539],{"type":26,"tag":618,"props":2536,"children":2537},{},[2538],{"type":31,"value":622},{"type":31,"value":2540}," A reproducible report lets a second qualified analyst regenerate each exhibit from the recorded inputs: raw responses, hashes, query parameters, software versions, and transformation steps, with the appendix fields listed above. Reproducibility is a methodology requirement separate from admissibility. A report that describes conclusions without the underlying package cannot be independently tested and may invite a reliability challenge under Daubert; the admissibility decision remains for the court in the applicable forum.",{"type":26,"tag":96,"props":2542,"children":2544},{"id":2543},"q-how-do-hash-values-fit-into-the-collection-record",[2545],{"type":31,"value":2546},"Q: How do hash values fit into the collection record?",{"type":26,"tag":27,"props":2548,"children":2549},{},[2550,2554],{"type":26,"tag":618,"props":2551,"children":2552},{},[2553],{"type":31,"value":622},{"type":31,"value":2555}," Hashing each raw file at collection records a value for its contents at that moment. Hash a later exhibit or copy with the same algorithm and compare the result to the recorded value; a mismatch shows that the files differ, while a match makes it highly improbable that they differ. The 2017 Advisory Committee Note to FRE 902(14) describes this practice for copied electronic data. Record the algorithm, the value, and the time of hashing alongside the file.",{"type":26,"tag":27,"props":2557,"children":2558},{},[2559,2561,2565],{"type":31,"value":2560},"This article explains one part of a broader question, and the right answer always depends on the specific matter: the chain, the data type, and the forum's authentication requirements all affect what a court will require. If you are preparing or challenging blockchain evidence in a specific case, ",{"type":26,"tag":46,"props":2562,"children":2563},{"href":692},[2564],{"type":31,"value":695},{"type":31,"value":2566}," to discuss the collection and review process for your matter.",{"title":7,"searchDepth":715,"depth":715,"links":2568},[2569,2570,2578,2579,2580,2581,2582,2583,2584,2585],{"id":2046,"depth":715,"text":2049},{"id":2085,"depth":715,"text":2088,"children":2571},[2572,2573,2574,2575,2576,2577],{"id":2096,"depth":721,"text":2099},{"id":2107,"depth":721,"text":2110},{"id":2118,"depth":721,"text":2121},{"id":2129,"depth":721,"text":2132},{"id":2165,"depth":721,"text":2168},{"id":2176,"depth":721,"text":2179},{"id":2195,"depth":715,"text":2198},{"id":2220,"depth":715,"text":2223},{"id":2244,"depth":715,"text":2247},{"id":2299,"depth":715,"text":2302},{"id":2315,"depth":715,"text":2318},{"id":2394,"depth":715,"text":2397},{"id":2453,"depth":715,"text":2456},{"id":604,"depth":715,"text":607,"children":2586},[2587,2588,2589,2590,2591],{"id":2483,"depth":721,"text":2486},{"id":2498,"depth":721,"text":2501},{"id":2513,"depth":721,"text":2516},{"id":2528,"depth":721,"text":2531},{"id":2543,"depth":721,"text":2546},"content:articles:37-reproducible-blockchain-evidence.md","articles\u002F37-reproducible-blockchain-evidence.md","articles\u002F37-reproducible-blockchain-evidence",{"_path":2596,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":2597,"description":2598,"slug":2599,"date":2600,"lastUpdated":2600,"author":12,"readingTime":1295,"category":14,"tags":2601,"ogImage":2605,"featured":6,"body":2606,"_type":739,"_id":3137,"_source":741,"_file":3138,"_stem":3139,"_extension":744},"\u002Farticles\u002F33-bitcoin-clustering-coinjoin-payjoin","What Bitcoin clusters prove and what CoinJoin and Payjoin break","Bitcoin address clustering is an analytical inference, not an on-chain fact. CoinJoin and Payjoin can break it. For attorneys evaluating tracing reports.","bitcoin-clustering-coinjoin-payjoin","2026-07-25",[1298,2602,2603,2604],"bitcoin","coinjoin","payjoin","\u002Fog\u002Fbitcoin-clustering-coinjoin-payjoin.png",{"type":23,"children":2607,"toc":3115},[2608,2613,2619,2633,2638,2643,2649,2654,2659,2665,2670,2688,2693,2707,2713,2718,2723,2729,2734,2739,2745,2777,2791,2797,2811,2816,2822,2827,2832,2838,2843,2861,2872,2903,2909,2914,2947,2974,2980,2985,3028,3034,3039,3043,3049,3058,3064,3073,3079,3088,3094,3103],{"type":26,"tag":27,"props":2609,"children":2610},{},[2611],{"type":31,"value":2612},"A Bitcoin cluster is something an analyst constructs, not something the blockchain records. When a tracing report says several addresses belong to one entity, that is a statistical inference, and its soundness depends on the specific transactions it was applied to. Collaborative transaction formats such as CoinJoin and Payjoin exist precisely to defeat the assumptions that inference relies on. This guide explains what clustering proves, when it holds, and how to test it in a report you are evaluating.",{"type":26,"tag":34,"props":2614,"children":2616},{"id":2615},"why-addresses-are-not-accounts",[2617],{"type":31,"value":2618},"Why Addresses Are Not Accounts",{"type":26,"tag":27,"props":2620,"children":2621},{},[2622,2624,2631],{"type":31,"value":2623},"Bitcoin has a public ledger of transactions, and a transaction, as Meiklejohn et al. defined it, transfers funds between public keys (",{"type":26,"tag":46,"props":2625,"children":2628},{"href":2626,"rel":2627},"https:\u002F\u002Fdiscovery.ucl.ac.uk\u002F1490261\u002F1\u002FMeiklejohn%20et%20al%20A%20fistful%20of%20bitcoins.pdf",[50],[2629],{"type":31,"value":2630},"Meiklejohn et al., A Fistful of Bitcoins, IMC 2013",{"type":31,"value":2632},"). Every transaction consumes already-existing outputs and creates new ones, and an output can be spent exactly once and in full, with any surplus going to fees or back to the spender.",{"type":26,"tag":27,"props":2634,"children":2635},{},[2636],{"type":31,"value":2637},"To pay 0.4 bitcoin while holding a single output of 1 bitcoin, a wallet does not write a 0.4 bitcoin check. It spends the full output and creates two new ones: 0.4 bitcoin to the recipient and roughly 0.6 bitcoin, minus the fee, back to a fresh address it controls. That return output is the change, and recognizing change is one of the oldest techniques in blockchain analysis.",{"type":26,"tag":27,"props":2639,"children":2640},{},[2641],{"type":31,"value":2642},"A Bitcoin address identifies a spending condition, often one involving a public key, and nothing stops one person from generating thousands of them; standard wallet design discourages reuse and issues a fresh address for each payment. A person's holdings therefore sit across many addresses with no on-chain marker connecting them. The blockchain records addresses, not people. An analyst must reconstruct the person, and clustering is that reconstruction.",{"type":26,"tag":34,"props":2644,"children":2646},{"id":2645},"what-the-common-input-heuristic-assumes",[2647],{"type":31,"value":2648},"What the Common-Input Heuristic Assumes",{"type":26,"tag":27,"props":2650,"children":2651},{},[2652],{"type":31,"value":2653},"The most powerful clustering rule is the common-input heuristic: when one transaction spends two or more inputs, those inputs are presumed to be controlled by the same entity. The intuition is that spending an output requires satisfying its spending conditions, so a transaction assembling inputs from addresses 1A and 1B looks like one wallet pulling together its own funds.",{"type":26,"tag":27,"props":2655,"children":2656},{},[2657],{"type":31,"value":2658},"The heuristic was stated and tested in that 2013 study. The authors clustered addresses by shared inputs and by behavior such as repeated payments to the same services, then re-identified clusters through controlled purchases, specifically to expose what they called \"idioms of use\" in real wallet software. The paper presents the common-input rule as Heuristic 1 and notes that earlier work had already used it.",{"type":26,"tag":96,"props":2660,"children":2662},{"id":2661},"the-assumptions-stated",[2663],{"type":31,"value":2664},"The Assumptions, Stated",{"type":26,"tag":27,"props":2666,"children":2667},{},[2668],{"type":31,"value":2669},"The rule depends on three assumptions:",{"type":26,"tag":205,"props":2671,"children":2672},{},[2673,2678,2683],{"type":26,"tag":209,"props":2674,"children":2675},{},[2676],{"type":31,"value":2677},"A single wallet constructed the transaction and selected every input.",{"type":26,"tag":209,"props":2679,"children":2680},{},[2681],{"type":31,"value":2682},"The inputs are authorized by one person or entity.",{"type":26,"tag":209,"props":2684,"children":2685},{},[2686],{"type":31,"value":2687},"No one collaborated to place different parties' inputs in one transaction.",{"type":26,"tag":27,"props":2689,"children":2690},{},[2691],{"type":31,"value":2692},"The third assumption is the vulnerable one, because the Bitcoin protocol does not require it. Signatures inside a transaction are independent of each other: the transaction is valid if every input carries a correct signature, and the network neither knows nor cares whether one, ten, or fifty people signed it.",{"type":26,"tag":27,"props":2694,"children":2695},{},[2696,2698,2705],{"type":31,"value":2697},"Gregory Maxwell made exactly this point in August 2013 when he introduced the term CoinJoin in a forum post (",{"type":26,"tag":46,"props":2699,"children":2702},{"href":2700,"rel":2701},"https:\u002F\u002Fbitcointalk.org\u002Findex.php?topic=279249.0",[50],[2703],{"type":31,"value":2704},"CoinJoin: Bitcoin privacy for the real world",{"type":31,"value":2706},"). Spending multiple addresses in one transaction, he wrote, is suggestive of common control but does not prove it, because users can agree on a set of inputs and outputs and then sign independently. Even when all three assumptions hold, a cluster is a group of addresses, not a person, and it says nothing about identity, which is a separate layer of analysis.",{"type":26,"tag":34,"props":2708,"children":2710},{"id":2709},"what-the-change-address-heuristic-assumes",[2711],{"type":31,"value":2712},"What the Change-Address Heuristic Assumes",{"type":26,"tag":27,"props":2714,"children":2715},{},[2716],{"type":31,"value":2717},"Change detection is the second pillar. Because the full value of a transaction's inputs must be accounted for, a wallet that spends more than it pays must send the surplus somewhere, and the standard design is a change output back to an address the spender controls. The heuristic runs the design backward: given a transaction whose recipient output is known, the remaining output is change and belongs to the sender.",{"type":26,"tag":27,"props":2719,"children":2720},{},[2721],{"type":31,"value":2722},"As a behavioral guess, it fails whenever behavior deviates. Meiklejohn et al. tested change-address definitions against the blockchain history then available, and their automated labeling flagged 555,348 candidate false positives, about 13 percent of labeled change addresses. A manual inspection of some of those candidates found many associated with Satoshi Dice and similar dice games, whose payouts return to the betting address and so look like reuse of a one-time change address. The lesson is that change is not marked on the blockchain. It is inferred from amount patterns, address freshness, and transaction shape, and each clue can be equivocal. Transactions with no change, round payments that resemble change, batched payments to several recipients, and payjoin all degrade the guess.",{"type":26,"tag":34,"props":2724,"children":2726},{"id":2725},"how-coinjoin-breaks-the-common-input-heuristic",[2727],{"type":31,"value":2728},"How CoinJoin Breaks the Common-Input Heuristic",{"type":26,"tag":27,"props":2730,"children":2731},{},[2732],{"type":31,"value":2733},"CoinJoin combines Bitcoin payments from multiple spenders into a single transaction, making it more difficult for an outside observer to determine which spender paid which recipient. Participants agree on a shared set of inputs and outputs, often uniform output amounts, and sign only their own inputs; the transaction is invalid until every signature is present, and no participant will sign a version that does not pay them. The result is a transaction whose inputs are held by many different people, exactly the pattern the common-input heuristic reads as a single wallet.",{"type":26,"tag":27,"props":2735,"children":2736},{},[2737],{"type":31,"value":2738},"Two consequences matter for litigation. First, a multi-input transaction can be collaborative, so an analyst should consider that possibility rather than treat common control as a given. Second, as Maxwell observed in 2013, if such transactions become widespread they improve the privacy even of people who never use them, because input co-spending stops being strong evidence of common control. A heuristic's reliability depends on the whole ecosystem, not just the transactions in your case.",{"type":26,"tag":96,"props":2740,"children":2742},{"id":2741},"privacy-tools-in-enforcement-cases",[2743],{"type":31,"value":2744},"Privacy Tools in Enforcement Cases",{"type":26,"tag":27,"props":2746,"children":2747},{},[2748,2750,2757,2759,2766,2768,2775],{"type":31,"value":2749},"Public enforcement has put clustering, and the tools designed to defeat it, before juries. Bitcoin Fog was a cryptocurrency mixer. In March 2024 a federal jury in the District of Columbia convicted Roman Sterlingov of money laundering conspiracy and related counts for operating it. The service moved well over 1.2 million bitcoin from 2011 to 2021 (",{"type":26,"tag":46,"props":2751,"children":2754},{"href":2752,"rel":2753},"https:\u002F\u002Fwww.justice.gov\u002Fusao-dc\u002Fpr\u002Fjury-finds-russian-swedish-operator-bitcoin-fog-guilty-running-darknet-cryptocurrency",[50],[2755],{"type":31,"value":2756},"USAO-DC conviction press release",{"type":31,"value":2758},"). Prosecutors described tracing the funds through the blockchain (",{"type":26,"tag":46,"props":2760,"children":2763},{"href":2761,"rel":2762},"https:\u002F\u002Fwww.justice.gov\u002Farchives\u002Fopa\u002Fpr\u002Fbitcoin-fog-operator-convicted-money-laundering-conspiracy",[50],[2764],{"type":31,"value":2765},"DOJ Office of Public Affairs",{"type":31,"value":2767},"). In November 2024 Sterlingov was sentenced to 150 months (",{"type":26,"tag":46,"props":2769,"children":2772},{"href":2770,"rel":2771},"https:\u002F\u002Fwww.justice.gov\u002Fusao-dc\u002Fpr\u002Foperator-bitcoin-fog-sentenced-more-12-years-prison-running-notorious-darknet",[50],[2773],{"type":31,"value":2774},"USAO-DC sentencing press release",{"type":31,"value":2776},").",{"type":26,"tag":27,"props":2778,"children":2779},{},[2780,2782,2789],{"type":31,"value":2781},"In April 2024 prosecutors in the Southern District of New York charged the two co-founders of Samourai Wallet, alleging that the mixing service executed over $2 billion in unlawful transactions and laundered over $100 million in criminal proceeds (",{"type":26,"tag":46,"props":2783,"children":2786},{"href":2784,"rel":2785},"https:\u002F\u002Fwww.justice.gov\u002Fusao-sdny\u002Fpr\u002Ffounders-and-ceo-cryptocurrency-mixing-service-arrested-and-charged-money-laundering",[50],[2787],{"type":31,"value":2788},"USAO-SDNY charging press release",{"type":31,"value":2790},"). Those charging figures were allegations. The same release describes Samourai's Whirlpool as coordinating batches of cryptocurrency exchanges among groups of users, the multi-input pattern the common-input heuristic reads as one wallet.",{"type":26,"tag":34,"props":2792,"children":2794},{"id":2793},"how-payjoin-breaks-the-same-assumptions-without-mixing",[2795],{"type":31,"value":2796},"How Payjoin Breaks the Same Assumptions Without Mixing",{"type":26,"tag":27,"props":2798,"children":2799},{},[2800,2802,2809],{"type":31,"value":2801},"Payjoin breaks the same heuristics with just two parties, while looking like an ordinary transaction. BIP 78, \"A Simple Payjoin Proposal,\" assigned May 1, 2019, is a protocol for two parties to negotiate a coinjoin during a payment between them (",{"type":26,"tag":46,"props":2803,"children":2806},{"href":2804,"rel":2805},"https:\u002F\u002Fgithub.com\u002Fbitcoin\u002Fbips\u002Fblob\u002Fmaster\u002Fbip-0078.mediawiki",[50],[2807],{"type":31,"value":2808},"BIP 78",{"type":31,"value":2810},"). In a normal payment the sender alone builds the transaction. In a payjoin the recipient adds one of its own inputs to the transaction that pays it and collects its own change, consolidating its coins while obscuring the sender's wallet structure.",{"type":26,"tag":27,"props":2812,"children":2813},{},[2814],{"type":31,"value":2815},"The effect on clustering is blunt. A payjoin transaction contains inputs from two independent controllers, so applying the common-input heuristic merges the customer and the merchant into one cluster, and change identification becomes ambiguous because two possible change outputs belong to two different owners. BIP 78 is explicit about the design goal: it lets the sender invalidate the standard heuristics, and with the recipient's involvement the heuristics \"can even be poisoned,\" meaning deliberately used to mislead blockchain analysis. The proposal also notes that by degrading the heuristics generally, it improves privacy for parties who never use it. The raw transaction does not label itself as a payjoin, so an analyst should not treat a routine-looking multi-input spend as proof of common control without considering the available context.",{"type":26,"tag":34,"props":2817,"children":2819},{"id":2818},"hypothetical-example-a-cluster-that-merges-a-customer-and-a-merchant",[2820],{"type":31,"value":2821},"Hypothetical Example: A Cluster That Merges a Customer and a Merchant",{"type":26,"tag":27,"props":2823,"children":2824},{},[2825],{"type":31,"value":2826},"Hypothetical example: A vendor report in a civil fraud case clusters addresses 1A, 1B, and 1C and states that the defendant controls all three. Transaction 1 has two inputs, 1A and 1B, and two outputs: 0.7 bitcoin to an exchange deposit address and 0.3 bitcoin back to 1B. The tool applies the common-input rule and assigns 1A and 1B to one cluster. Transaction 2 spends 0.3 bitcoin from 1B to 1C with no change output, and the change heuristic attaches 1C to the same wallet. The report now shows one defendant funneling funds from a three-address cluster into an exchange.",{"type":26,"tag":27,"props":2828,"children":2829},{},[2830],{"type":31,"value":2831},"Change one fact: 1A belongs to a customer and 1B to a merchant who accepted a payjoin. The customer paid 0.7 bitcoin; the merchant contributed its own input and took its own change. Transaction 2 is the merchant moving its remaining funds to a second wallet. The actual facts show two unrelated people, and the defendant was never involved. The cluster is a false positive produced by applying a systemic heuristic to a transaction designed to defeat it, and every downstream conclusion about the defendant inherits the error.",{"type":26,"tag":34,"props":2833,"children":2835},{"id":2834},"from-cluster-to-service-to-person",[2836],{"type":31,"value":2837},"From Cluster to Service to Person",{"type":26,"tag":27,"props":2839,"children":2840},{},[2841],{"type":31,"value":2842},"A cluster is the first layer of attribution, not the last. Sound analysis distinguishes three layers:",{"type":26,"tag":205,"props":2844,"children":2845},{},[2846,2851,2856],{"type":26,"tag":209,"props":2847,"children":2848},{},[2849],{"type":31,"value":2850},"Cluster: addresses linked by heuristics.",{"type":26,"tag":209,"props":2852,"children":2853},{},[2854],{"type":31,"value":2855},"Service: contact with addresses attributable to exchanges or other businesses with identity records.",{"type":26,"tag":209,"props":2857,"children":2858},{},[2859],{"type":31,"value":2860},"Person: account records, device evidence, or admissions tying the account to an individual.",{"type":26,"tag":27,"props":2862,"children":2863},{},[2864,2866,2871],{"type":31,"value":2865},"A vendor's entity tag usually reflects layers 1 and 2. It is a cluster that the vendor has labeled with a name based on its own accumulated observations, and it is not identity. The blockchain alone cannot name a person; that step requires subpoenaed records and other off-chain evidence, as explained in ",{"type":26,"tag":46,"props":2867,"children":2868},{"href":1826},[2869],{"type":31,"value":2870},"Can Blockchain Transactions Be Traced?",{"type":31,"value":526},{"type":26,"tag":27,"props":2873,"children":2874},{},[2875,2877,2884,2886,2892,2894,2901],{"type":31,"value":2876},"The February 2022 Bitfinex announcement illustrates how attribution actually lands. The Justice Department arrested Ilya Lichtenstein and Heather Morgan and charged a conspiracy to launder 119,754 bitcoin stolen in the 2016 Bitfinex hack. At the February 2022 arrest that stolen bitcoin was valued at about $4.5 billion, and the government announced a seizure of over $3.6 billion (",{"type":26,"tag":46,"props":2878,"children":2881},{"href":2879,"rel":2880},"https:\u002F\u002Fwww.justice.gov\u002Fusao-dc\u002Fpr\u002Ftwo-arrested-alleged-conspiracy-launder-45-billion-stolen-cryptocurrency",[50],[2882],{"type":31,"value":2883},"USAO-DC press release",{"type":31,"value":2885},"). Both later pleaded guilty to money laundering conspiracy, and Lichtenstein was sentenced in November 2024 to 60 months (",{"type":26,"tag":46,"props":2887,"children":2890},{"href":2888,"rel":2889},"https:\u002F\u002Fwww.justice.gov\u002Fusao-dc\u002Fpr\u002Fbitfinex-hacker-sentenced-money-laundering-conspiracy-involving-billions-stolen",[50],[2891],{"type":31,"value":2774},{"type":31,"value":2893},"). The February 2022 IRS-CI affidavit states that agents traced the stolen funds on the Bitcoin blockchain as they moved across accounts and platforms. Naming the couple required off-chain material, including exchange account records in their names. A file in a Lichtenstein cloud account listing 2,000 addresses with their private keys was used to seize the remaining stolen wallet (",{"type":26,"tag":46,"props":2895,"children":2898},{"href":2896,"rel":2897},"https:\u002F\u002Fwww.justice.gov\u002Farchives\u002Fopa\u002Fpress-release\u002Ffile\u002F1470211\u002Fdl",[50],[2899],{"type":31,"value":2900},"Statement of Facts",{"type":31,"value":2902},"). On-chain analysis narrowed and corroborated the picture; the records that name people came from elsewhere.",{"type":26,"tag":34,"props":2904,"children":2906},{"id":2905},"what-a-tracing-report-must-show-to-withstand-scrutiny",[2907],{"type":31,"value":2908},"What a Tracing Report Must Show to Withstand Scrutiny",{"type":26,"tag":27,"props":2910,"children":2911},{},[2912],{"type":31,"value":2913},"Where a report rests on clustering, six things should be present, and their absence is a challenge lever:",{"type":26,"tag":205,"props":2915,"children":2916},{},[2917,2922,2927,2932,2937,2942],{"type":26,"tag":209,"props":2918,"children":2919},{},[2920],{"type":31,"value":2921},"Named heuristics, applied to identified transactions.",{"type":26,"tag":209,"props":2923,"children":2924},{},[2925],{"type":31,"value":2926},"Transaction-level exhibits: hashes, inputs, outputs, and amounts for every linkage.",{"type":26,"tag":209,"props":2928,"children":2929},{},[2930],{"type":31,"value":2931},"Confidence language. Clustering is probabilistic, and the report should say so instead of asserting that addresses \"belong to\" an entity.",{"type":26,"tag":209,"props":2933,"children":2934},{},[2935],{"type":31,"value":2936},"Competing explanations. If a transaction could be a payjoin, a CoinJoin, a shared custody arrangement, or a batched payment, the report should explain why the inference survives in this specific case.",{"type":26,"tag":209,"props":2938,"children":2939},{},[2940],{"type":31,"value":2941},"Verification of vendor labels. Which commercial platform tags were relied on, and what did the analyst verify independently?",{"type":26,"tag":209,"props":2943,"children":2944},{},[2945],{"type":31,"value":2946},"A limitations section.",{"type":26,"tag":27,"props":2948,"children":2949},{},[2950,2952,2958,2959,2965,2967,2972],{"type":31,"value":2951},"A report that offers only a dashboard screenshot and entity labels may invite a reliability challenge under Fed. R. Evid. 702 or, in Missouri state court, Mo. Rev. Stat. § 490.065. Two companion guides cover the attack and the common errors: ",{"type":26,"tag":46,"props":2953,"children":2955},{"href":2954},"\u002Fresources\u002Fchallenging-opposing-expert-blockchain-analysis",[2956],{"type":31,"value":2957},"How the Opposing Expert's Blockchain Analysis Can Be Challenged",{"type":31,"value":705},{"type":26,"tag":46,"props":2960,"children":2962},{"href":2961},"\u002Fresources\u002Fcommon-mistakes-crypto-investigations",[2963],{"type":31,"value":2964},"Common Mistakes in Cryptocurrency Investigations",{"type":31,"value":2966},". For building the affirmative case, ConsensusIntel's ",{"type":26,"tag":46,"props":2968,"children":2969},{"href":700},[2970],{"type":31,"value":2971},"blockchain tracing services",{"type":31,"value":2973}," document methodology at the transaction level.",{"type":26,"tag":34,"props":2975,"children":2977},{"id":2976},"deposition-questions-for-cluster-based-attribution",[2978],{"type":31,"value":2979},"Deposition Questions for Cluster-Based Attribution",{"type":26,"tag":27,"props":2981,"children":2982},{},[2983],{"type":31,"value":2984},"When a report's conclusions ride on clustering, these questions test the load-bearing joints:",{"type":26,"tag":205,"props":2986,"children":2987},{},[2988,2993,2998,3003,3008,3013,3018,3023],{"type":26,"tag":209,"props":2989,"children":2990},{},[2991],{"type":31,"value":2992},"Which heuristic placed each address in this cluster, and which transactions triggered it?",{"type":26,"tag":209,"props":2994,"children":2995},{},[2996],{"type":31,"value":2997},"For each change output, what rule identified it, and what follows if that output belonged to the counterparty instead?",{"type":26,"tag":209,"props":2999,"children":3000},{},[3001],{"type":31,"value":3002},"Did you test whether any transaction in the cluster is a CoinJoin or a payjoin under BIP 78, and if not, why not?",{"type":26,"tag":209,"props":3004,"children":3005},{},[3006],{"type":31,"value":3007},"Did you validate this cluster against ground truth such as exchange records or admissions, or is it purely heuristic?",{"type":26,"tag":209,"props":3009,"children":3010},{},[3011],{"type":31,"value":3012},"What is the false positive rate for this heuristic on modern wallet data, and did you measure it in this dataset?",{"type":26,"tag":209,"props":3014,"children":3015},{},[3016],{"type":31,"value":3017},"If any two inputs in a clustered transaction were controlled by different people, which conclusions change?",{"type":26,"tag":209,"props":3019,"children":3020},{},[3021],{"type":31,"value":3022},"Which entity tags came from a commercial platform, what did you verify independently, and can another analyst reproduce your method?",{"type":26,"tag":209,"props":3024,"children":3025},{},[3026],{"type":31,"value":3027},"What off-chain evidence connects any address in this cluster to a named individual, and what does the blockchain evidence add beyond the cluster label?",{"type":26,"tag":34,"props":3029,"children":3031},{"id":3030},"limitations",[3032],{"type":31,"value":3033},"Limitations",{"type":26,"tag":27,"props":3035,"children":3036},{},[3037],{"type":31,"value":3038},"The heuristics described here were characterized on Bitcoin usage from the early 2010s, and the ecosystem has changed. Address reuse has fallen, wallets implement coin control, Lightning moves activity off the main chain, and collaborative protocols ship in mainstream software. Every such change degrades a heuristic's prior, and the degradation compounds: one misattributed address contaminates everything downstream of it in the transaction graph. Vendor methods are often proprietary, which can limit reproduction and testing. The fair summary is that clustering is a useful triage tool and a weak identity claim. Treat it as a lead to verify, not a fact to recite.",{"type":26,"tag":34,"props":3040,"children":3041},{"id":604},[3042],{"type":31,"value":607},{"type":26,"tag":96,"props":3044,"children":3046},{"id":3045},"q-does-a-cluster-label-mean-the-same-person-controlled-every-address",[3047],{"type":31,"value":3048},"Q: Does a cluster label mean the same person controlled every address?",{"type":26,"tag":27,"props":3050,"children":3051},{},[3052,3056],{"type":26,"tag":618,"props":3053,"children":3054},{},[3055],{"type":31,"value":622},{"type":31,"value":3057}," No. A cluster is an inference that addresses share a controller, usually built from common-input and change patterns, and the inference can fail. A payjoin merges a customer and a merchant into one cluster; a CoinJoin merges many unrelated people; a shared custody wallet can group several people together. Identity is a separate question answered with off-chain records such as exchange account data, device evidence, or admissions, not with the cluster label.",{"type":26,"tag":96,"props":3059,"children":3061},{"id":3060},"q-what-is-the-difference-between-coinjoin-and-payjoin",[3062],{"type":31,"value":3063},"Q: What is the difference between CoinJoin and Payjoin?",{"type":26,"tag":27,"props":3065,"children":3066},{},[3067,3071],{"type":26,"tag":618,"props":3068,"children":3069},{},[3070],{"type":31,"value":622},{"type":31,"value":3072}," CoinJoin combines payments from many spenders into one transaction, often with uniform outputs, so an observer cannot reliably map payer to payee. Payjoin, standardized in BIP 78, is a two-party variant: during an ordinary payment, the recipient adds its own input, so the transaction can defeat input-based clustering for that payment.",{"type":26,"tag":96,"props":3074,"children":3076},{"id":3075},"q-do-coinjoin-and-payjoin-make-blockchain-tracing-useless",[3077],{"type":31,"value":3078},"Q: Do CoinJoin and Payjoin make blockchain tracing useless?",{"type":26,"tag":27,"props":3080,"children":3081},{},[3082,3086],{"type":26,"tag":618,"props":3083,"children":3084},{},[3085],{"type":31,"value":622},{"type":31,"value":3087}," No. They break specific heuristics; the ledger, the amounts, the timing, and the points where funds touch exchanges remain visible. Attribution of an address to a person almost always depends on off-chain records. The practical effect is on confidence: a report that cannot exclude collaborative transactions in its dataset should state that its cluster labels are weaker than they look.",{"type":26,"tag":96,"props":3089,"children":3091},{"id":3090},"q-if-the-other-side-relies-on-a-commercial-analytics-tool-can-i-obtain-its-methodology",[3092],{"type":31,"value":3093},"Q: If the other side relies on a commercial analytics tool, can I obtain its methodology?",{"type":26,"tag":27,"props":3095,"children":3096},{},[3097,3101],{"type":26,"tag":618,"props":3098,"children":3099},{},[3100],{"type":31,"value":622},{"type":31,"value":3102}," The tool's outputs are disclosed with the report, but vendors often treat the underlying heuristics as trade secrets, and you may never see the code. The discovery fight should therefore focus on what the expert did with the output: which heuristics were applied, which transactions were tested, what ground truth was checked, and what was verified independently of the vendor. If the expert cannot defend those layers, you do not need the vendor's source code to make the point.",{"type":26,"tag":27,"props":3104,"children":3105},{},[3106,3108,3113],{"type":31,"value":3107},"Every case is different, and no article can substitute for the facts of yours. If you are evaluating a tracing report that rests on clustering, ",{"type":26,"tag":46,"props":3109,"children":3110},{"href":692},[3111],{"type":31,"value":3112},"contact ConsensusIntel",{"type":31,"value":3114}," for a conversation about the specific transactions. A short review of the exhibits usually reveals whether the cluster labels survive contact with the data.",{"title":7,"searchDepth":715,"depth":715,"links":3116},[3117,3118,3121,3122,3125,3126,3127,3128,3129,3130,3131],{"id":2615,"depth":715,"text":2618},{"id":2645,"depth":715,"text":2648,"children":3119},[3120],{"id":2661,"depth":721,"text":2664},{"id":2709,"depth":715,"text":2712},{"id":2725,"depth":715,"text":2728,"children":3123},[3124],{"id":2741,"depth":721,"text":2744},{"id":2793,"depth":715,"text":2796},{"id":2818,"depth":715,"text":2821},{"id":2834,"depth":715,"text":2837},{"id":2905,"depth":715,"text":2908},{"id":2976,"depth":715,"text":2979},{"id":3030,"depth":715,"text":3033},{"id":604,"depth":715,"text":607,"children":3132},[3133,3134,3135,3136],{"id":3045,"depth":721,"text":3048},{"id":3060,"depth":721,"text":3063},{"id":3075,"depth":721,"text":3078},{"id":3090,"depth":721,"text":3093},"content:articles:33-bitcoin-clustering-coinjoin-payjoin.md","articles\u002F33-bitcoin-clustering-coinjoin-payjoin.md","articles\u002F33-bitcoin-clustering-coinjoin-payjoin",1790145013676]