[{"data":1,"prerenderedAt":746},["ShallowReactive",2],{"tag-account-abstraction":3},[4],{"_path":5,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":9,"description":10,"slug":11,"date":12,"lastUpdated":12,"author":13,"readingTime":14,"category":15,"tags":16,"ogImage":22,"featured":7,"body":23,"_type":740,"_id":741,"_source":742,"_file":743,"_stem":744,"_extension":745},"\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",[17,18,19,20,21],"multisig","wallet","account-abstraction","smart-contracts","evidence","\u002Fog\u002Fmultisig-contract-wallet-attribution.png",{"type":24,"children":25,"toc":715},"root",[26,34,41,57,80,85,90,96,103,108,114,119,125,138,144,165,171,194,200,205,240,253,259,264,270,284,289,295,300,499,504,510,515,528,534,539,544,582,603,609,615,626,632,641,647,656,662,671,677,686],{"type":27,"tag":28,"props":29,"children":30},"element","p",{},[31],{"type":32,"value":33},"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":27,"tag":35,"props":36,"children":38},"h2",{"id":37},"contract-wallets-are-not-ordinary-accounts",[39],{"type":32,"value":40},"Contract Wallets Are Not Ordinary Accounts",{"type":27,"tag":28,"props":42,"children":43},{},[44,46,55],{"type":32,"value":45},"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":27,"tag":47,"props":48,"children":52},"a",{"href":49,"rel":50},"https:\u002F\u002Fethereum.org\u002Fdevelopers\u002Fdocs\u002Faccounts\u002F",[51],"nofollow",[53],{"type":32,"value":54},"ethereum.org account documentation",{"type":32,"value":56}," describes the EOA and contract-account distinction.",{"type":27,"tag":28,"props":58,"children":59},{},[60,62,69,71,78],{"type":32,"value":61},"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":27,"tag":47,"props":63,"children":66},{"href":64,"rel":65},"https:\u002F\u002Feips.ethereum.org\u002FEIPS\u002Feip-1271",[51],[67],{"type":32,"value":68},"ERC-1271 standard",{"type":32,"value":70}," exists: a contract exposes ",{"type":27,"tag":72,"props":73,"children":75},"code",{"className":74},[],[76],{"type":32,"value":77},"isValidSignature(hash, signature)",{"type":32,"value":79}," 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":27,"tag":28,"props":81,"children":82},{},[83],{"type":32,"value":84},"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":27,"tag":28,"props":86,"children":87},{},[88],{"type":32,"value":89},"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":27,"tag":35,"props":91,"children":93},{"id":92},"the-actors-behind-a-single-address",[94],{"type":32,"value":95},"The Actors Behind a Single Address",{"type":27,"tag":97,"props":98,"children":100},"h3",{"id":99},"owners-and-signers",[101],{"type":32,"value":102},"Owners and Signers",{"type":27,"tag":28,"props":104,"children":105},{},[106],{"type":32,"value":107},"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":27,"tag":97,"props":109,"children":111},{"id":110},"the-threshold",[112],{"type":32,"value":113},"The Threshold",{"type":27,"tag":28,"props":115,"children":116},{},[117],{"type":32,"value":118},"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":27,"tag":97,"props":120,"children":122},{"id":121},"modules",[123],{"type":32,"value":124},"Modules",{"type":27,"tag":28,"props":126,"children":127},{},[128,130,136],{"type":32,"value":129},"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":27,"tag":72,"props":131,"children":133},{"className":132},[],[134],{"type":32,"value":135},"execTransaction",{"type":32,"value":137}," encoding, and whether owners approved depends on the module logic rather than the threshold.",{"type":27,"tag":97,"props":139,"children":141},{"id":140},"guards",[142],{"type":32,"value":143},"Guards",{"type":27,"tag":28,"props":145,"children":146},{},[147,149,155,157,163],{"type":32,"value":148},"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":27,"tag":72,"props":150,"children":152},{"className":151},[],[153],{"type":32,"value":154},"ChangedGuard",{"type":32,"value":156}," event emitted by Safe's ",{"type":27,"tag":72,"props":158,"children":160},{"className":159},[],[161],{"type":32,"value":162},"setGuard",{"type":32,"value":164}," 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":27,"tag":97,"props":166,"children":168},{"id":167},"relayers-bundlers-paymasters-and-delegated-code",[169],{"type":32,"value":170},"Relayers, Bundlers, Paymasters, and Delegated Code",{"type":27,"tag":28,"props":172,"children":173},{},[174,176,183,185,192],{"type":32,"value":175},"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":27,"tag":47,"props":177,"children":180},{"href":178,"rel":179},"https:\u002F\u002Feips.ethereum.org\u002FEIPS\u002Feip-4337",[51],[181],{"type":32,"value":182},"ERC-4337",{"type":32,"value":184}," 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":27,"tag":47,"props":186,"children":189},{"href":187,"rel":188},"https:\u002F\u002Feips.ethereum.org\u002FEIPS\u002Feip-7702",[51],[190],{"type":32,"value":191},"EIP-7702",{"type":32,"value":193},", 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":27,"tag":35,"props":195,"children":197},{"id":196},"reconstructing-configuration-at-the-disputed-time",[198],{"type":32,"value":199},"Reconstructing Configuration at the Disputed Time",{"type":27,"tag":28,"props":201,"children":202},{},[203],{"type":32,"value":204},"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":27,"tag":206,"props":207,"children":208},"ol",{},[209,215,220,225,230,235],{"type":27,"tag":210,"props":211,"children":212},"li",{},[213],{"type":32,"value":214},"Classify the account: EOA or contract, including any EIP-7702 delegation indicator, and the implementation behind any proxy.",{"type":27,"tag":210,"props":216,"children":217},{},[218],{"type":32,"value":219},"Rebuild the configuration history to the disputed date.",{"type":27,"tag":210,"props":221,"children":222},{},[223],{"type":32,"value":224},"Classify each execution path: owner-signed, module-executed, or delegated call.",{"type":27,"tag":210,"props":226,"children":227},{},[228],{"type":32,"value":229},"Extract approving addresses from signature data where the execution path encodes it.",{"type":27,"tag":210,"props":231,"children":232},{},[233],{"type":32,"value":234},"Identify infrastructure actors: submitter, gas payer, refund receiver, bundler, paymaster.",{"type":27,"tag":210,"props":236,"children":237},{},[238],{"type":32,"value":239},"Map addresses to persons or entities using off-chain evidence.",{"type":27,"tag":28,"props":241,"children":242},{},[243,245,251],{"type":32,"value":244},"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":27,"tag":47,"props":246,"children":248},{"href":247},"\u002Fresources\u002Funderstanding-wallet-ownership-evidence",[249],{"type":32,"value":250},"evidence methods used to tie keys to people",{"type":32,"value":252}," apply here with one twist: a single key is only part of the authorization.",{"type":27,"tag":35,"props":254,"children":256},{"id":255},"account-abstraction-and-the-erc-4337-pipeline",[257],{"type":32,"value":258},"Account Abstraction and the ERC-4337 Pipeline",{"type":27,"tag":28,"props":260,"children":261},{},[262],{"type":32,"value":263},"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":27,"tag":35,"props":265,"children":267},{"id":266},"counterfactual-accounts-authorization-before-the-contract-exists",[268],{"type":32,"value":269},"Counterfactual Accounts: Authorization Before the Contract Exists",{"type":27,"tag":28,"props":271,"children":272},{},[273,275,282],{"type":32,"value":274},"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":27,"tag":47,"props":276,"children":279},{"href":277,"rel":278},"https:\u002F\u002Feips.ethereum.org\u002FEIPS\u002Feip-6492",[51],[280],{"type":32,"value":281},"ERC-6492",{"type":32,"value":283}," 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":27,"tag":28,"props":285,"children":286},{},[287],{"type":32,"value":288},"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":27,"tag":35,"props":290,"children":292},{"id":291},"an-attribution-matrix-for-expert-reports-and-deposition",[293],{"type":32,"value":294},"An Attribution Matrix for Expert Reports and Deposition",{"type":27,"tag":28,"props":296,"children":297},{},[298],{"type":32,"value":299},"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":27,"tag":301,"props":302,"children":303},"table",{},[304,333],{"type":27,"tag":305,"props":306,"children":307},"thead",{},[308],{"type":27,"tag":309,"props":310,"children":311},"tr",{},[312,318,323,328],{"type":27,"tag":313,"props":314,"children":315},"th",{},[316],{"type":32,"value":317},"Actor",{"type":27,"tag":313,"props":319,"children":320},{},[321],{"type":32,"value":322},"What the chain shows",{"type":27,"tag":313,"props":324,"children":325},{},[326],{"type":32,"value":327},"Off-chain evidence needed",{"type":27,"tag":313,"props":329,"children":330},{},[331],{"type":32,"value":332},"Typical dispute question",{"type":27,"tag":334,"props":335,"children":336},"tbody",{},[337,361,384,407,430,453,476],{"type":27,"tag":309,"props":338,"children":339},{},[340,346,351,356],{"type":27,"tag":341,"props":342,"children":343},"td",{},[344],{"type":32,"value":345},"Owner signer",{"type":27,"tag":341,"props":347,"children":348},{},[349],{"type":32,"value":350},"Approving address in executed signature data",{"type":27,"tag":341,"props":352,"children":353},{},[354],{"type":32,"value":355},"Which person controlled the key",{"type":27,"tag":341,"props":357,"children":358},{},[359],{"type":32,"value":360},"Did this person approve?",{"type":27,"tag":309,"props":362,"children":363},{},[364,369,374,379],{"type":27,"tag":341,"props":365,"children":366},{},[367],{"type":32,"value":368},"Threshold",{"type":27,"tag":341,"props":370,"children":371},{},[372],{"type":32,"value":373},"Current value and every change, each with signatures",{"type":27,"tag":341,"props":375,"children":376},{},[377],{"type":32,"value":378},"Who pushed the change and why",{"type":27,"tag":341,"props":380,"children":381},{},[382],{"type":32,"value":383},"Was control concentrated?",{"type":27,"tag":309,"props":385,"children":386},{},[387,392,397,402],{"type":27,"tag":341,"props":388,"children":389},{},[390],{"type":32,"value":391},"Module",{"type":27,"tag":341,"props":393,"children":394},{},[395],{"type":32,"value":396},"Module executions and enable\u002Fdisable records; signatures depend on the module",{"type":27,"tag":341,"props":398,"children":399},{},[400],{"type":32,"value":401},"Module code and operator",{"type":27,"tag":341,"props":403,"children":404},{},[405],{"type":32,"value":406},"Who could move funds without threshold signers?",{"type":27,"tag":309,"props":408,"children":409},{},[410,415,420,425],{"type":27,"tag":341,"props":411,"children":412},{},[413],{"type":32,"value":414},"Guard",{"type":27,"tag":341,"props":416,"children":417},{},[418],{"type":32,"value":419},"Guard address and change events; whether that guard ran on this execution path",{"type":27,"tag":341,"props":421,"children":422},{},[423],{"type":32,"value":424},"Guard code and operator",{"type":27,"tag":341,"props":426,"children":427},{},[428],{"type":32,"value":429},"Why did no check stop it?",{"type":27,"tag":309,"props":431,"children":432},{},[433,438,443,448],{"type":27,"tag":341,"props":434,"children":435},{},[436],{"type":32,"value":437},"Relayer or bundler",{"type":27,"tag":341,"props":439,"children":440},{},[441],{"type":32,"value":442},"Submitter and gas records on the execution",{"type":27,"tag":341,"props":444,"children":445},{},[446],{"type":32,"value":447},"Operator identity and logs",{"type":27,"tag":341,"props":449,"children":450},{},[451],{"type":32,"value":452},"Does submission equal authorization?",{"type":27,"tag":309,"props":454,"children":455},{},[456,461,466,471],{"type":27,"tag":341,"props":457,"children":458},{},[459],{"type":32,"value":460},"Paymaster",{"type":27,"tag":341,"props":462,"children":463},{},[464],{"type":32,"value":465},"UserOperation paymaster data and EntryPoint deposits",{"type":27,"tag":341,"props":467,"children":468},{},[469],{"type":32,"value":470},"Sponsorship terms and operator",{"type":27,"tag":341,"props":472,"children":473},{},[474],{"type":32,"value":475},"Who paid for the move?",{"type":27,"tag":309,"props":477,"children":478},{},[479,484,489,494],{"type":27,"tag":341,"props":480,"children":481},{},[482],{"type":32,"value":483},"Deployer or factory",{"type":27,"tag":341,"props":485,"children":486},{},[487],{"type":32,"value":488},"Deployment transaction and factory parameters",{"type":27,"tag":341,"props":490,"children":491},{},[492],{"type":32,"value":493},"Factory operator records",{"type":27,"tag":341,"props":495,"children":496},{},[497],{"type":32,"value":498},"What configuration was fixed at creation?",{"type":27,"tag":28,"props":500,"children":501},{},[502],{"type":32,"value":503},"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":27,"tag":35,"props":505,"children":507},{"id":506},"hypothetical-the-two-of-three-corporate-wallet",[508],{"type":32,"value":509},"Hypothetical: The Two-of-Three Corporate Wallet",{"type":27,"tag":28,"props":511,"children":512},{},[513],{"type":32,"value":514},"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":27,"tag":28,"props":516,"children":517},{},[518,520,526],{"type":32,"value":519},"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":27,"tag":47,"props":521,"children":523},{"href":522},"\u002Fresources\u002Fself-custody-vs-custodial-wallets",[524],{"type":32,"value":525},"self-custody discovery playbook",{"type":32,"value":527},".",{"type":27,"tag":35,"props":529,"children":531},{"id":530},"limitations-and-the-questions-to-ask",[532],{"type":32,"value":533},"Limitations and the Questions to Ask",{"type":27,"tag":28,"props":535,"children":536},{},[537],{"type":32,"value":538},"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":27,"tag":28,"props":540,"children":541},{},[542],{"type":32,"value":543},"The discovery questions that follow:",{"type":27,"tag":206,"props":545,"children":546},{},[547,552,557,562,567,572,577],{"type":27,"tag":210,"props":548,"children":549},{},[550],{"type":32,"value":551},"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":27,"tag":210,"props":553,"children":554},{},[555],{"type":32,"value":556},"Produce the full configuration history: every owner, threshold, module, and guard change, with transaction hashes.",{"type":27,"tag":210,"props":558,"children":559},{},[560],{"type":32,"value":561},"Produce raw transaction input data and event logs for each disputed transaction, not block explorer summaries.",{"type":27,"tag":210,"props":563,"children":564},{},[565],{"type":32,"value":566},"Which disputed transactions ran through modules, and what code was each module running?",{"type":27,"tag":210,"props":568,"children":569},{},[570],{"type":32,"value":571},"Who submitted each execution and who paid gas, including bundler and paymaster activity?",{"type":27,"tag":210,"props":573,"children":574},{},[575],{"type":32,"value":576},"Produce confirmation and signing records from any wallet provider interface used before execution.",{"type":27,"tag":210,"props":578,"children":579},{},[580],{"type":32,"value":581},"Document key custody for every owner address: devices, seed phrases, corporate policy, personnel changes.",{"type":27,"tag":28,"props":583,"children":584},{},[585,587,593,595,601],{"type":32,"value":586},"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":27,"tag":47,"props":588,"children":590},{"href":589},"\u002Fresources\u002Fsmart-contract-disputes",[591],{"type":32,"value":592},"smart contract disputes article",{"type":32,"value":594}," covers how courts treat it. Our ",{"type":27,"tag":47,"props":596,"children":598},{"href":597},"\u002Fmethodology",[599],{"type":32,"value":600},"methodology page",{"type":32,"value":602}," explains how expert reports separate chain facts from inference.",{"type":27,"tag":35,"props":604,"children":606},{"id":605},"frequently-asked-questions",[607],{"type":32,"value":608},"Frequently Asked Questions",{"type":27,"tag":97,"props":610,"children":612},{"id":611},"q-is-a-multisig-address-owned-by-any-single-person",[613],{"type":32,"value":614},"Q: Is a multisig address owned by any single person?",{"type":27,"tag":28,"props":616,"children":617},{},[618,624],{"type":27,"tag":619,"props":620,"children":621},"strong",{},[622],{"type":32,"value":623},"A:",{"type":32,"value":625}," 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":27,"tag":97,"props":627,"children":629},{"id":628},"q-if-a-transaction-was-signed-by-enough-owners-who-is-responsible-for-it",[630],{"type":32,"value":631},"Q: If a transaction was signed by enough owners, who is responsible for it?",{"type":27,"tag":28,"props":633,"children":634},{},[635,639],{"type":27,"tag":619,"props":636,"children":637},{},[638],{"type":32,"value":623},{"type":32,"value":640}," 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":27,"tag":97,"props":642,"children":644},{"id":643},"q-can-activity-from-an-erc-4337-smart-account-be-traced-to-the-person-who-initiated-it",[645],{"type":32,"value":646},"Q: Can activity from an ERC-4337 smart account be traced to the person who initiated it?",{"type":27,"tag":28,"props":648,"children":649},{},[650,654],{"type":27,"tag":619,"props":651,"children":652},{},[653],{"type":32,"value":623},{"type":32,"value":655}," 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":27,"tag":97,"props":657,"children":659},{"id":658},"q-what-does-it-mean-if-a-wallet-was-not-deployed-when-the-disputed-authorization-happened",[660],{"type":32,"value":661},"Q: What does it mean if a wallet was not deployed when the disputed authorization happened?",{"type":27,"tag":28,"props":663,"children":664},{},[665,669],{"type":27,"tag":619,"props":666,"children":667},{},[668],{"type":32,"value":623},{"type":32,"value":670}," 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":27,"tag":97,"props":672,"children":674},{"id":673},"q-what-discovery-should-you-request-when-the-other-side-controls-a-contract-wallet",[675],{"type":32,"value":676},"Q: What discovery should you request when the other side controls a contract wallet?",{"type":27,"tag":28,"props":678,"children":679},{},[680,684],{"type":27,"tag":619,"props":681,"children":682},{},[683],{"type":32,"value":623},{"type":32,"value":685}," 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":27,"tag":28,"props":687,"children":688},{},[689,691,697,699,705,707,713],{"type":32,"value":690},"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":27,"tag":47,"props":692,"children":694},{"href":693},"\u002Fcontact",[695],{"type":32,"value":696},"contact us",{"type":32,"value":698}," to discuss the evidence picture, or see how ",{"type":27,"tag":47,"props":700,"children":702},{"href":701},"\u002Fservices#blockchain-tracing",[703],{"type":32,"value":704},"blockchain tracing engagements",{"type":32,"value":706}," and ",{"type":27,"tag":47,"props":708,"children":710},{"href":709},"\u002Fservices#litigation-consulting",[711],{"type":32,"value":712},"litigation consulting",{"type":32,"value":714}," are structured.",{"title":8,"searchDepth":716,"depth":716,"links":717},2,[718,719,727,728,729,730,731,732,733],{"id":37,"depth":716,"text":40},{"id":92,"depth":716,"text":95,"children":720},[721,723,724,725,726],{"id":99,"depth":722,"text":102},3,{"id":110,"depth":722,"text":113},{"id":121,"depth":722,"text":124},{"id":140,"depth":722,"text":143},{"id":167,"depth":722,"text":170},{"id":196,"depth":716,"text":199},{"id":255,"depth":716,"text":258},{"id":266,"depth":716,"text":269},{"id":291,"depth":716,"text":294},{"id":506,"depth":716,"text":509},{"id":530,"depth":716,"text":533},{"id":605,"depth":716,"text":608,"children":734},[735,736,737,738,739],{"id":611,"depth":722,"text":614},{"id":628,"depth":722,"text":631},{"id":643,"depth":722,"text":646},{"id":658,"depth":722,"text":661},{"id":673,"depth":722,"text":676},"markdown","content:articles:38-multisig-contract-wallet-attribution.md","content","articles\u002F38-multisig-contract-wallet-attribution.md","articles\u002F38-multisig-contract-wallet-attribution","md",1790145013676]