[{"data":1,"prerenderedAt":1194},["ShallowReactive",2],{"tag-wallet-ownership":3},[4,813],{"_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":21,"featured":7,"body":22,"_type":807,"_id":808,"_source":809,"_file":810,"_stem":811,"_extension":812},"\u002Farticles\u002F26-token-approvals-permit-signatures","articles",false,"","Token approvals, permits, and transfer attribution","Explains how ERC-20 approvals and permit signatures separate token ownership, transfer submission, delegated authority, and proof of owner intent.","token-approvals-permit-signatures","2026-06-06","Nick Kampe",10,"Education",[17,18,19,20],"evidence","smart-contracts","wallet-ownership","litigation","\u002Fog\u002Ftoken-approvals-permit-signatures.png",{"type":23,"children":24,"toc":787},"root",[25,33,38,45,50,91,104,110,115,211,231,244,250,279,292,340,346,351,450,463,469,496,508,522,527,539,545,550,555,562,574,579,585,590,633,646,652,657,680,693,699,705,729,735,744,750,759,765,774],{"type":26,"tag":27,"props":28,"children":29},"element","p",{},[30],{"type":31,"value":32},"text","An ERC-20 token leaving a wallet does not necessarily mean the wallet owner submitted the transfer transaction or approved that particular recipient. The owner may previously have granted another address authority to spend tokens through an allowance. A signed permit can create the same authority even though the owner never broadcasts an approval transaction.",{"type":26,"tag":27,"props":34,"children":35},{},[36],{"type":31,"value":37},"That distinction matters in fraud, commercial, and probate matters. The blockchain can establish that a token balance changed, but the investigator still must separate the transaction sender, token owner, authorized spender, recipient, and signature author before drawing conclusions about human intent.",{"type":26,"tag":39,"props":40,"children":42},"h2",{"id":41},"why-is-a-token-transfer-different-from-a-native-asset-transfer",[43],{"type":31,"value":44},"Why is a token transfer different from a native-asset transfer?",{"type":26,"tag":27,"props":46,"children":47},{},[48],{"type":31,"value":49},"In an ordinary top-level transfer of a blockchain's native asset, such as ETH, the transaction sender signs a transaction containing its destination and value. Contract execution can produce additional native-asset movements, so even that record may require a trace. ERC-20 tokens add another layer because the token contract maintains the balances.",{"type":26,"tag":27,"props":51,"children":52},{},[53,55,64,66,73,75,81,83,89],{"type":31,"value":54},"The ",{"type":26,"tag":56,"props":57,"children":61},"a",{"href":58,"rel":59},"https:\u002F\u002Feips.ethereum.org\u002FEIPS\u002Feip-20",[60],"nofollow",[62],{"type":31,"value":63},"ERC-20 token standard",{"type":31,"value":65}," defines two relevant transfer paths. A holder can call ",{"type":26,"tag":67,"props":68,"children":70},"code",{"className":69},[],[71],{"type":31,"value":72},"transfer(to, value)",{"type":31,"value":74}," from the holder's own address. Alternatively, another address can call ",{"type":26,"tag":67,"props":76,"children":78},{"className":77},[],[79],{"type":31,"value":80},"transferFrom(from, to, value)",{"type":31,"value":82}," after the token owner has authorized that spender. Both paths can produce the same ",{"type":26,"tag":67,"props":84,"children":86},{"className":85},[],[87],{"type":31,"value":88},"Transfer",{"type":31,"value":90}," event showing tokens moving from the owner's balance to the recipient.",{"type":26,"tag":27,"props":92,"children":93},{},[94,96,102],{"type":31,"value":95},"A block explorer's token-transfer display therefore answers an accounting question: which token contract recorded a debit, a credit, and an amount? It does not, by itself, answer who signed the outer transaction or why the debit was authorized. For the foundational transaction fields, see ",{"type":26,"tag":56,"props":97,"children":99},{"href":98},"\u002Fresources\u002Fhow-to-read-a-blockchain-transaction",[100],{"type":31,"value":101},"how to read a blockchain transaction",{"type":31,"value":103},". The unique issue here is delegated token authority.",{"type":26,"tag":39,"props":105,"children":107},{"id":106},"which-addresses-perform-the-relevant-roles",[108],{"type":31,"value":109},"Which addresses perform the relevant roles?",{"type":26,"tag":27,"props":111,"children":112},{},[113],{"type":31,"value":114},"A defensible analysis identifies each role separately rather than using \"sender\" for all of them:",{"type":26,"tag":116,"props":117,"children":118},"ul",{},[119,147,164,174,191,201],{"type":26,"tag":120,"props":121,"children":122},"li",{},[123,129,131,137,139,145],{"type":26,"tag":124,"props":125,"children":126},"strong",{},[127],{"type":31,"value":128},"Token owner:",{"type":31,"value":130}," The address whose token balance is debited. In a ",{"type":26,"tag":67,"props":132,"children":134},{"className":133},[],[135],{"type":31,"value":136},"transferFrom",{"type":31,"value":138}," call, this is the ",{"type":26,"tag":67,"props":140,"children":142},{"className":141},[],[143],{"type":31,"value":144},"from",{"type":31,"value":146}," argument.",{"type":26,"tag":120,"props":148,"children":149},{},[150,155,157,162],{"type":26,"tag":124,"props":151,"children":152},{},[153],{"type":31,"value":154},"Spender:",{"type":31,"value":156}," The address whose allowance permits it to withdraw from the owner's balance. In a standard direct ",{"type":26,"tag":67,"props":158,"children":160},{"className":159},[],[161],{"type":31,"value":136},{"type":31,"value":163}," call, this is the immediate caller seen by the token contract.",{"type":26,"tag":120,"props":165,"children":166},{},[167,172],{"type":26,"tag":124,"props":168,"children":169},{},[170],{"type":31,"value":171},"Transaction sender:",{"type":31,"value":173}," The address recovered as the signer of the outer blockchain transaction. It may be the owner, the spender, or an address interacting with another contract.",{"type":26,"tag":120,"props":175,"children":176},{},[177,182,184,189],{"type":26,"tag":124,"props":178,"children":179},{},[180],{"type":31,"value":181},"Recipient:",{"type":31,"value":183}," The address credited in the token contract's ",{"type":26,"tag":67,"props":185,"children":187},{"className":186},[],[188],{"type":31,"value":88},{"type":31,"value":190}," event.",{"type":26,"tag":120,"props":192,"children":193},{},[194,199],{"type":26,"tag":124,"props":195,"children":196},{},[197],{"type":31,"value":198},"Token contract:",{"type":31,"value":200}," The contract that enforces balances and allowances and emits the relevant events.",{"type":26,"tag":120,"props":202,"children":203},{},[204,209],{"type":26,"tag":124,"props":205,"children":206},{},[207],{"type":31,"value":208},"Signature author:",{"type":31,"value":210}," For a permit, the address whose private key produced the authorization signature. A relayer can submit that signature on-chain later.",{"type":26,"tag":27,"props":212,"children":213},{},[214,216,222,224,229],{"type":31,"value":215},"These roles can collapse into fewer addresses. An owner may call ",{"type":26,"tag":67,"props":217,"children":219},{"className":218},[],[220],{"type":31,"value":221},"transfer",{"type":31,"value":223}," directly. In a routed transaction, the owner may call an application contract, that contract may be the approved spender, and the token contract may debit the owner through ",{"type":26,"tag":67,"props":225,"children":227},{"className":226},[],[228],{"type":31,"value":136},{"type":31,"value":230},". In a disputed delegated transfer, the owner's address may appear only as the debited account.",{"type":26,"tag":27,"props":232,"children":233},{},[234,236,242],{"type":31,"value":235},"The next question is attribution to a person. An address-level finding does not establish who controlled the address at the relevant time. That requires the separate analysis described in ",{"type":26,"tag":56,"props":237,"children":239},{"href":238},"\u002Fresources\u002Funderstanding-wallet-ownership-evidence",[240],{"type":31,"value":241},"understanding wallet ownership evidence",{"type":31,"value":243},".",{"type":26,"tag":39,"props":245,"children":247},{"id":246},"how-does-an-erc-20-allowance-create-delegated-authority",[248],{"type":31,"value":249},"How does an ERC-20 allowance create delegated authority?",{"type":26,"tag":27,"props":251,"children":252},{},[253,255,261,263,269,271,277],{"type":31,"value":254},"Under ERC-20, ",{"type":26,"tag":67,"props":256,"children":258},{"className":257},[],[259],{"type":31,"value":260},"approve(spender, value)",{"type":31,"value":262}," sets the amount that a spender may withdraw from the owner's account. Calling ",{"type":26,"tag":67,"props":264,"children":266},{"className":265},[],[267],{"type":31,"value":268},"approve",{"type":31,"value":270}," again overwrites the existing allowance for that owner-spender pair. The standard's ",{"type":26,"tag":67,"props":272,"children":274},{"className":273},[],[275],{"type":31,"value":276},"allowance(owner, spender)",{"type":31,"value":278}," function reports how much the spender is still allowed to withdraw.",{"type":26,"tag":27,"props":280,"children":281},{},[282,284,290],{"type":31,"value":283},"An approval for a specific amount bounds the spender's authority by that value, subject to prior uses and the token's implementation. An approval set to the maximum ",{"type":26,"tag":67,"props":285,"children":287},{"className":286},[],[288],{"type":31,"value":289},"uint256",{"type":31,"value":291}," value is commonly treated as effectively unlimited because it may support repeated withdrawals. Standard ERC-20 approval data identifies a spender and amount, not the later recipient or business purpose.",{"type":26,"tag":27,"props":293,"children":294},{},[295,297,303,305,310,312,317,319,324,326,331,333,338],{"type":31,"value":296},"The events also have limits. ERC-20 requires an ",{"type":26,"tag":67,"props":298,"children":300},{"className":299},[],[301],{"type":31,"value":302},"Approval",{"type":31,"value":304}," event after a successful ",{"type":26,"tag":67,"props":306,"children":308},{"className":307},[],[309],{"type":31,"value":268},{"type":31,"value":311}," call and a ",{"type":26,"tag":67,"props":313,"children":315},{"className":314},[],[316],{"type":31,"value":88},{"type":31,"value":318}," event when tokens move. It does not require an ",{"type":26,"tag":67,"props":320,"children":322},{"className":321},[],[323],{"type":31,"value":302},{"type":31,"value":325}," event every time ",{"type":26,"tag":67,"props":327,"children":329},{"className":328},[],[330],{"type":31,"value":136},{"type":31,"value":332}," consumes allowance. An investigator should not assume the latest visible ",{"type":26,"tag":67,"props":334,"children":336},{"className":335},[],[337],{"type":31,"value":302},{"type":31,"value":339}," event equals the remaining allowance immediately before a disputed transfer.",{"type":26,"tag":39,"props":341,"children":343},{"id":342},"how-should-counsel-reconstruct-the-approval-timeline",[344],{"type":31,"value":345},"How should counsel reconstruct the approval timeline?",{"type":26,"tag":27,"props":347,"children":348},{},[349],{"type":31,"value":350},"The key sequence is authority first, use second. A useful reconstruction proceeds as follows:",{"type":26,"tag":352,"props":353,"children":354},"ol",{},[355,365,389,399,423,440],{"type":26,"tag":120,"props":356,"children":357},{},[358,363],{"type":26,"tag":124,"props":359,"children":360},{},[361],{"type":31,"value":362},"Fix the chain, token contract, and block range.",{"type":31,"value":364}," Record the contract address, chain identifier, transaction hashes, block numbers, and UTC timestamps. A ticker symbol is not enough.",{"type":26,"tag":120,"props":366,"children":367},{},[368,373,375,380,382,387],{"type":26,"tag":124,"props":369,"children":370},{},[371],{"type":31,"value":372},"Classify the movement.",{"type":31,"value":374}," Decode the input and trace to determine whether the token received ",{"type":26,"tag":67,"props":376,"children":378},{"className":377},[],[379],{"type":31,"value":221},{"type":31,"value":381},", ",{"type":26,"tag":67,"props":383,"children":385},{"className":384},[],[386],{"type":31,"value":136},{"type":31,"value":388},", or an intermediary-contract call. Do not rely solely on an explorer's summary label.",{"type":26,"tag":120,"props":390,"children":391},{},[392,397],{"type":26,"tag":124,"props":393,"children":394},{},[395],{"type":31,"value":396},"Identify the immediate caller.",{"type":31,"value":398}," The outer transaction sender and the contract that called the token may differ. The trace shows which address acted as spender at the token contract.",{"type":26,"tag":120,"props":400,"children":401},{},[402,407,409,414,416,421],{"type":26,"tag":124,"props":403,"children":404},{},[405],{"type":31,"value":406},"Locate the grant of authority.",{"type":31,"value":408}," Search backward for relevant ",{"type":26,"tag":67,"props":410,"children":412},{"className":411},[],[413],{"type":31,"value":302},{"type":31,"value":415}," events and transactions involving the same owner, spender, and token. Determine whether authority arose from ",{"type":26,"tag":67,"props":417,"children":419},{"className":418},[],[420],{"type":31,"value":268},{"type":31,"value":422},", a permit, or a token-specific mechanism.",{"type":26,"tag":120,"props":424,"children":425},{},[426,431,433,438],{"type":26,"tag":124,"props":427,"children":428},{},[429],{"type":31,"value":430},"Calculate intervening use.",{"type":31,"value":432}," Review prior ",{"type":26,"tag":67,"props":434,"children":436},{"className":435},[],[437],{"type":31,"value":136},{"type":31,"value":439}," calls, replacements, revocations, and failed calls. Where available, query contract state immediately before execution.",{"type":26,"tag":120,"props":441,"children":442},{},[443,448],{"type":26,"tag":124,"props":444,"children":445},{},[446],{"type":31,"value":447},"Preserve the data.",{"type":31,"value":449}," Retain input, receipts, logs, traces, relevant contract code, ABI, and retrieval method. A screenshot is an orientation aid, not the complete record.",{"type":26,"tag":27,"props":451,"children":452},{},[453,455,461],{"type":31,"value":454},"Proxy contracts and upgrades can change the relevant code over time. The correct question is what logic governed the token at the disputed block, not what a current block-explorer page displays today. Our ",{"type":26,"tag":56,"props":456,"children":458},{"href":457},"\u002Fservices#evidence-review",[459],{"type":31,"value":460},"evidence review work",{"type":31,"value":462}," treats decoded explorer labels as leads to verify against contract data, not as substitutes for it.",{"type":26,"tag":39,"props":464,"children":466},{"id":465},"what-changes-when-authority-comes-from-a-permit-signature",[467],{"type":31,"value":468},"What changes when authority comes from a permit signature?",{"type":26,"tag":27,"props":470,"children":471},{},[472,479,481,487,489,494],{"type":26,"tag":56,"props":473,"children":476},{"href":474,"rel":475},"https:\u002F\u002Feips.ethereum.org\u002FEIPS\u002Feip-2612",[60],[477],{"type":31,"value":478},"ERC-2612",{"type":31,"value":480}," adds a ",{"type":26,"tag":67,"props":482,"children":484},{"className":483},[],[485],{"type":31,"value":486},"permit",{"type":31,"value":488}," function that can set an ERC-20 allowance from a signed message. The signed fields include the owner, spender, value, nonce, and deadline. The token contract verifies the signature, updates the allowance, increments the owner's nonce, and emits an ",{"type":26,"tag":67,"props":490,"children":492},{"className":491},[],[493],{"type":31,"value":302},{"type":31,"value":495}," event if the standard's conditions are satisfied.",{"type":26,"tag":27,"props":497,"children":498},{},[499,501,506],{"type":31,"value":500},"The permit caller can be any address. The owner can sign off-chain, while a relayer, application, spender, or unrelated address pays gas and submits the permit. The permit transaction sender is therefore not necessarily the signature author. The permit grants allowance; it does not prove that the owner submitted or separately approved a later ",{"type":26,"tag":67,"props":502,"children":504},{"className":503},[],[505],{"type":31,"value":136},{"type":31,"value":507}," transaction.",{"type":26,"tag":27,"props":509,"children":510},{},[511,513,520],{"type":31,"value":512},"ERC-2612 uses ",{"type":26,"tag":56,"props":514,"children":517},{"href":515,"rel":516},"https:\u002F\u002Feips.ethereum.org\u002FEIPS\u002Feip-712",[60],[518],{"type":31,"value":519},"EIP-712 typed structured-data signing",{"type":31,"value":521},". Its domain can include a name, version, chain identifier, and verifying-contract address, helping distinguish similar messages intended for different applications or contracts. EIP-712 supplies the format and domain separation, but leaves replay protection to the application.",{"type":26,"tag":27,"props":523,"children":524},{},[525],{"type":31,"value":526},"ERC-2612 uses an owner nonce that must match and then increments, plus a deadline after which the permit must revert. The deadline can be set so far out that the authorization is effectively nonexpiring. Examine the domain, nonce, and deadline together. A signature image or shortened wallet prompt does not establish the complete signed data.",{"type":26,"tag":27,"props":528,"children":529},{},[530,532,537],{"type":31,"value":531},"Not every token with a function called ",{"type":26,"tag":67,"props":533,"children":535},{"className":534},[],[536],{"type":31,"value":486},{"type":31,"value":538}," implements ERC-2612 exactly. The standard itself notes preexisting variants with different fields and semantics. The analyst must use the deployed contract's code and ABI at the relevant block rather than forcing every signed approval into the ERC-2612 template.",{"type":26,"tag":39,"props":540,"children":542},{"id":541},"what-does-the-transfer-prove-and-what-remains-unresolved",[543],{"type":31,"value":544},"What does the transfer prove, and what remains unresolved?",{"type":26,"tag":27,"props":546,"children":547},{},[548],{"type":31,"value":549},"A verified on-chain record can establish that contract execution changed token balances and emitted specified logs. Decoded input and traces can identify the outer transaction sender, immediate callers, owner argument, recipient, amount, and method. A valid permit can establish that a signature associated with the owner address covered the exact typed fields under the contract's rules.",{"type":26,"tag":27,"props":551,"children":552},{},[553],{"type":31,"value":554},"Those facts do not prove that a particular human knowingly authorized the disputed transfer. They do not establish who possessed the key, what the wallet displayed, whether the signer understood the authority, or whether another person had device access. They also do not resolve consent, agency, capacity, mistake, breach of duty, or fraud. Those conclusions depend on governing law and evidence beyond the ledger.",{"type":26,"tag":556,"props":557,"children":559},"h3",{"id":558},"hypothetical-example",[560],{"type":31,"value":561},"Hypothetical example",{"type":26,"tag":27,"props":563,"children":564},{},[565,567,573],{"type":31,"value":566},"Assume Wallet O holds 80,000 units of Token T. On January 4, O signs an ERC-2612 permit authorizing Contract S to spend up to 80,000 units, with a deadline six months later. Relayer R submits the permit and pays the gas. On February 12, Address A calls S, and S executes ",{"type":26,"tag":67,"props":568,"children":570},{"className":569},[],[571],{"type":31,"value":572},"transferFrom(O, B, 30,000)",{"type":31,"value":243},{"type":26,"tag":27,"props":575,"children":576},{},[577],{"type":31,"value":578},"The February transfer shows Token T debited O and credited B during execution initiated by A. The trace may show S as the spender, while the January permit identifies R as its submitter. Neither transaction proves that the human associated with O selected B or understood that the signature let S choose a later recipient. The investigation should recover the typed message, identify who controlled O and A, inspect S's code and call parameters, and seek device and communications evidence.",{"type":26,"tag":39,"props":580,"children":582},{"id":581},"what-evidence-should-counsel-request-beyond-the-chain",[583],{"type":31,"value":584},"What evidence should counsel request beyond the chain?",{"type":26,"tag":27,"props":586,"children":587},{},[588],{"type":31,"value":589},"Discovery should target the authorization event as closely as the transfer event. Useful requests and examination questions include:",{"type":26,"tag":116,"props":591,"children":592},{},[593,598,603,608,613,618,623,628],{"type":26,"tag":120,"props":594,"children":595},{},[596],{"type":31,"value":597},"The wallet application, browser extension, hardware wallet, or custodial interface used when the approval or permit was created.",{"type":26,"tag":120,"props":599,"children":600},{},[601],{"type":31,"value":602},"Wallet records, device logs, browser history, notifications, and prompts showing what the user was presented.",{"type":26,"tag":120,"props":604,"children":605},{},[606],{"type":31,"value":607},"The exact EIP-712 typed-data payload, signature, domain fields, nonce, deadline, and originating website or application.",{"type":26,"tag":120,"props":609,"children":610},{},[611],{"type":31,"value":612},"Communications concerning the spender, transaction purpose, expected amount, intended recipient, and any claimed revocation.",{"type":26,"tag":120,"props":614,"children":615},{},[616],{"type":31,"value":617},"Evidence of remote access, malicious extensions, credential compromise, or shared key material.",{"type":26,"tag":120,"props":619,"children":620},{},[621],{"type":31,"value":622},"Exchange, custodian, or account records connecting the relevant addresses to identified persons.",{"type":26,"tag":120,"props":624,"children":625},{},[626],{"type":31,"value":627},"Source code, deployment records, upgrade history, and administrative controls for the token and spender contracts.",{"type":26,"tag":120,"props":629,"children":630},{},[631],{"type":31,"value":632},"Testimony explaining why the approval amount was chosen and whether the signer understood that approval and transfer were separate acts.",{"type":26,"tag":27,"props":634,"children":635},{},[636,638,644],{"type":31,"value":637},"Preserve timestamps, time zones, file metadata, and acquisition methods. Wallet prompts and local artifacts may disappear even though the on-chain record remains. The ",{"type":26,"tag":56,"props":639,"children":641},{"href":640},"\u002Fmethodology",[642],{"type":31,"value":643},"ConsensusIntel methodology",{"type":31,"value":645}," explains how technical findings are separated from attribution opinions and legal conclusions.",{"type":26,"tag":39,"props":647,"children":649},{"id":648},"how-should-an-expert-describe-the-result",[650],{"type":31,"value":651},"How should an expert describe the result?",{"type":26,"tag":27,"props":653,"children":654},{},[655],{"type":31,"value":656},"Avoid language such as \"the owner sent the tokens\" unless the evidence actually establishes that proposition. A more precise formulation is:",{"type":26,"tag":658,"props":659,"children":660},"blockquote",{},[661],{"type":26,"tag":27,"props":662,"children":663},{},[664,666,671,673,678],{"type":31,"value":665},"Transaction X was signed by Address A. Its execution caused Token Contract T to emit a ",{"type":26,"tag":67,"props":667,"children":669},{"className":668},[],[670],{"type":31,"value":88},{"type":31,"value":672}," event debiting Owner Address O and crediting Recipient Address B. The execution trace shows Spender Contract S called ",{"type":26,"tag":67,"props":674,"children":676},{"className":675},[],[677],{"type":31,"value":136},{"type":31,"value":679},". An earlier approval authorized S to spend up to V units from O. The on-chain evidence does not, without additional attribution evidence, establish who controlled A or O, what a human signer understood, or whether O intended this specific transfer.",{"type":26,"tag":27,"props":681,"children":682},{},[683,685,691],{"type":31,"value":684},"If a permit is involved, the report should separately state whether the signature validated for the owner address, the exact fields covered, who submitted the permit transaction, and which later call exercised the allowance. This phrasing preserves strong technical conclusions while avoiding one of the ",{"type":26,"tag":56,"props":686,"children":688},{"href":687},"\u002Fresources\u002Fcommon-mistakes-crypto-investigations",[689],{"type":31,"value":690},"common mistakes in cryptocurrency investigations",{"type":31,"value":692},": treating address activity as self-proving evidence of a person's identity or intent.",{"type":26,"tag":39,"props":694,"children":696},{"id":695},"frequently-asked-questions",[697],{"type":31,"value":698},"Frequently Asked Questions",{"type":26,"tag":556,"props":700,"children":702},{"id":701},"q-does-a-transfer-event-prove-the-token-owner-sent-the-transaction",[703],{"type":31,"value":704},"Q: Does a Transfer event prove the token owner sent the transaction?",{"type":26,"tag":27,"props":706,"children":707},{},[708,713,715,720,722,727],{"type":26,"tag":124,"props":709,"children":710},{},[711],{"type":31,"value":712},"A:",{"type":31,"value":714}," No. A ",{"type":26,"tag":67,"props":716,"children":718},{"className":717},[],[719],{"type":31,"value":88},{"type":31,"value":721}," event proves that the token contract recorded a movement from one address to another. If the movement resulted from ",{"type":26,"tag":67,"props":723,"children":725},{"className":724},[],[726],{"type":31,"value":136},{"type":31,"value":728},", an approved spender may have initiated it. The transaction input and execution trace are needed to identify the actual call path.",{"type":26,"tag":556,"props":730,"children":732},{"id":731},"q-does-signing-a-permit-authorize-one-specific-transfer",[733],{"type":31,"value":734},"Q: Does signing a permit authorize one specific transfer?",{"type":26,"tag":27,"props":736,"children":737},{},[738,742],{"type":26,"tag":124,"props":739,"children":740},{},[741],{"type":31,"value":712},{"type":31,"value":743}," Not necessarily. A standard ERC-2612 permit authorizes a named spender up to a stated value, subject to a nonce and deadline. It does not name the eventual transfer recipient. The spender may use the resulting allowance in one or more later transactions within the authorization's bounds.",{"type":26,"tag":556,"props":745,"children":747},{"id":746},"q-can-a-relayer-submit-a-permit-without-owning-the-tokens",[748],{"type":31,"value":749},"Q: Can a relayer submit a permit without owning the tokens?",{"type":26,"tag":27,"props":751,"children":752},{},[753,757],{"type":26,"tag":124,"props":754,"children":755},{},[756],{"type":31,"value":712},{"type":31,"value":758}," Yes. ERC-2612 does not tie the permit caller to the owner. Any address can submit a valid signed permit, while the token contract verifies that the signature corresponds to the owner and that the nonce and deadline conditions are satisfied.",{"type":26,"tag":556,"props":760,"children":762},{"id":761},"q-what-is-the-most-important-evidence-outside-the-blockchain",[763],{"type":31,"value":764},"Q: What is the most important evidence outside the blockchain?",{"type":26,"tag":27,"props":766,"children":767},{},[768,772],{"type":26,"tag":124,"props":769,"children":770},{},[771],{"type":31,"value":712},{"type":31,"value":773}," The most useful evidence often includes the exact signed payload, wallet or device artifacts showing the signing context, records identifying who controlled each address, and communications about the spender and transaction purpose. Those materials address identity, knowledge, and intent that the ledger does not record.",{"type":26,"tag":27,"props":775,"children":776},{},[777,779,785],{"type":31,"value":778},"If a disputed token transfer turns on delegated authority, ",{"type":26,"tag":56,"props":780,"children":782},{"href":781},"\u002Fcontact",[783],{"type":31,"value":784},"contact ConsensusIntel",{"type":31,"value":786}," to discuss the approval timeline, permit evidence, and limits of the available attribution.",{"title":8,"searchDepth":788,"depth":788,"links":789},2,[790,791,792,793,794,795,799,800,801],{"id":41,"depth":788,"text":44},{"id":106,"depth":788,"text":109},{"id":246,"depth":788,"text":249},{"id":342,"depth":788,"text":345},{"id":465,"depth":788,"text":468},{"id":541,"depth":788,"text":544,"children":796},[797],{"id":558,"depth":798,"text":561},3,{"id":581,"depth":788,"text":584},{"id":648,"depth":788,"text":651},{"id":695,"depth":788,"text":698,"children":802},[803,804,805,806],{"id":701,"depth":798,"text":704},{"id":731,"depth":798,"text":734},{"id":746,"depth":798,"text":749},{"id":761,"depth":798,"text":764},"markdown","content:articles:26-token-approvals-permit-signatures.md","content","articles\u002F26-token-approvals-permit-signatures.md","articles\u002F26-token-approvals-permit-signatures","md",{"_path":814,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":815,"description":816,"slug":817,"date":818,"lastUpdated":818,"author":13,"readingTime":819,"category":15,"tags":820,"ogImage":823,"featured":7,"body":824,"_type":807,"_id":1191,"_source":809,"_file":1192,"_stem":1193,"_extension":812},"\u002Farticles\u002F03-understanding-wallet-ownership-evidence","Understanding wallet ownership evidence","A guide to proving cryptocurrency wallet ownership in litigation, covering private keys, exchange records, device forensics, and signed messages.","understanding-wallet-ownership-evidence","2026-04-14",11,[19,17,821,822],"private-keys","custody","\u002Fog\u002Funderstanding-wallet-ownership-evidence.png",{"type":23,"children":825,"toc":1170},[826,831,836,842,847,852,857,863,868,873,878,883,896,902,908,913,918,924,929,934,940,945,950,955,961,966,971,976,982,987,992,998,1003,1008,1013,1025,1031,1036,1041,1054,1060,1065,1070,1087,1091,1095,1101,1110,1116,1125,1131,1140,1146,1155,1161],{"type":26,"tag":27,"props":827,"children":828},{},[829],{"type":31,"value":830},"Establishing who owns a cryptocurrency wallet is one of the central challenges in almost every case involving digital assets. The blockchain records the complete transaction history of every address. What it does not record is who controls that address. That gap, between what the ledger shows and what a court needs to determine, is where the evidence question lives.",{"type":26,"tag":27,"props":832,"children":833},{},[834],{"type":31,"value":835},"The legal question of wallet ownership is different from the technical question. Technically, the person who possesses the private key controls the wallet. In practice, proving that a specific individual possessed and controlled a private key at a relevant point in time requires building a case from multiple evidence sources, each of which contributes to the picture and none of which is typically sufficient on its own.",{"type":26,"tag":39,"props":837,"children":839},{"id":838},"how-wallet-ownership-actually-works",[840],{"type":31,"value":841},"How Wallet Ownership Actually Works",{"type":26,"tag":27,"props":843,"children":844},{},[845],{"type":31,"value":846},"Every cryptocurrency wallet is, at its core, a private key: a large number generated through cryptography that authorizes the spending of funds associated with a corresponding public address. The relationship is deterministic and mathematical. Whoever possesses the private key can spend the funds. Whoever does not cannot, regardless of any other claim to the assets.",{"type":26,"tag":27,"props":848,"children":849},{},[850],{"type":31,"value":851},"This is what practitioners in the cryptocurrency space mean by the phrase \"not your keys, not your coins.\" It is not a slogan about preference. It is a description of how the technology actually works. There is no appeals process, no customer service department that can override the cryptographic reality. The private key is the controlling fact.",{"type":26,"tag":27,"props":853,"children":854},{},[855],{"type":31,"value":856},"The legal system, of course, has mechanisms to impose outcomes that diverge from the technical reality. A court can order a party to transfer cryptocurrency to a different address, or to provide the private key to a trustee or escrow. But establishing what a court should order requires first establishing the factual question of who actually controls the wallet.",{"type":26,"tag":39,"props":858,"children":860},{"id":859},"custodial-vs-self-custody",[861],{"type":31,"value":862},"Custodial vs. Self-Custody",{"type":26,"tag":27,"props":864,"children":865},{},[866],{"type":31,"value":867},"The evidence picture looks substantially different depending on whether a wallet is custodial or self-custodied. Understanding the distinction is essential before developing a discovery or investigation strategy.",{"type":26,"tag":27,"props":869,"children":870},{},[871],{"type":31,"value":872},"A custodial wallet is one where a third party, typically an exchange like Coinbase, Kraken, or Gemini, holds the private keys on the user's behalf. The user has an account with the exchange, logs in with a username and password, and can buy, sell, or transfer cryptocurrency through the exchange's interface. But the user does not directly possess the private key. The exchange holds it and controls the on-chain assets on the user's behalf.",{"type":26,"tag":27,"props":874,"children":875},{},[876],{"type":31,"value":877},"For custodial wallets, the ownership question is relatively straightforward: the account belongs to the person who registered it, and the exchange maintains records that establish registration, identity verification, and transaction history. A properly served subpoena to a domestic exchange will typically produce this information, along with KYC documents that tie the account to a real-world identity.",{"type":26,"tag":27,"props":879,"children":880},{},[881],{"type":31,"value":882},"A self-custody wallet is the opposite arrangement. The user generates and controls the private key directly. There is no exchange, no intermediary, and no third party that maintains a record linking the wallet to the user. The user may have installed a software wallet on a phone or computer, used a hardware wallet device, or simply written down the seed phrase (a human-readable backup of the private key) on paper. None of this activity creates a record at any institution that can be subpoenaed.",{"type":26,"tag":27,"props":884,"children":885},{},[886,888,894],{"type":31,"value":887},"For self-custody wallets, proving ownership is a different and more involved exercise. See ",{"type":26,"tag":56,"props":889,"children":891},{"href":890},"\u002Fresources\u002Fself-custody-vs-custodial-wallets",[892],{"type":31,"value":893},"Self-Custody vs. Custodial Wallets",{"type":31,"value":895}," for a full treatment of the discovery implications of each type.",{"type":26,"tag":39,"props":897,"children":899},{"id":898},"how-ownership-is-established-in-litigation",[900],{"type":31,"value":901},"How Ownership Is Established in Litigation",{"type":26,"tag":556,"props":903,"children":905},{"id":904},"exchange-records",[906],{"type":31,"value":907},"Exchange Records",{"type":26,"tag":27,"props":909,"children":910},{},[911],{"type":31,"value":912},"The most common and reliable form of wallet ownership evidence is an exchange record. When a party acquired cryptocurrency through a regulated exchange and then withdrew it to a self-custody wallet, the exchange maintains a record of that withdrawal, including the destination address. A subpoena to the exchange produces documentation showing that a specific account, belonging to a specifically identified person, sent funds to a specific wallet address on a specific date.",{"type":26,"tag":27,"props":914,"children":915},{},[916],{"type":31,"value":917},"That record does not prove that the person still controls the address at the time of litigation, but it establishes that they controlled it at the time of the withdrawal. Combined with blockchain analysis showing subsequent activity consistent with continued control, it builds a strong evidentiary foundation.",{"type":26,"tag":556,"props":919,"children":921},{"id":920},"device-forensics",[922],{"type":31,"value":923},"Device Forensics",{"type":26,"tag":27,"props":925,"children":926},{},[927],{"type":31,"value":928},"Wallet software leaves traces on the devices where it is installed. A forensic examination of a phone or computer may reveal the presence of wallet applications, transaction history stored locally by the wallet software, seed phrase material stored in notes applications, password managers, or encrypted files, and access logs showing when the wallet was opened and used.",{"type":26,"tag":27,"props":930,"children":931},{},[932],{"type":31,"value":933},"Device forensics requires physical or logical access to the device, which typically means either cooperation from the party or an order compelling production. In civil litigation, a court can order a party to produce a device for forensic examination. In practice, device examinations are most productive when conducted by a qualified digital forensic examiner who understands both the device's file system and the specific wallet software likely to be present.",{"type":26,"tag":556,"props":935,"children":937},{"id":936},"seed-phrase-evidence",[938],{"type":31,"value":939},"Seed Phrase Evidence",{"type":26,"tag":27,"props":941,"children":942},{},[943],{"type":31,"value":944},"A seed phrase, also called a recovery phrase or mnemonic, is a sequence of 12 or 24 words generated when a self-custody wallet is first created. Anyone who possesses the seed phrase can reconstruct the private key and gain full control of the associated funds on any compatible wallet software. The seed phrase is therefore the master credential for self-custody wallets.",{"type":26,"tag":27,"props":946,"children":947},{},[948],{"type":31,"value":949},"Finding a seed phrase in a party's possession, whether written on paper, stored in a password manager, photographed on a phone, or saved in a document, is strong evidence that the party controls the associated wallet. The connection between a specific seed phrase and a specific wallet address can be verified mathematically, without requiring access to the funds themselves.",{"type":26,"tag":27,"props":951,"children":952},{},[953],{"type":31,"value":954},"Courts have treated seed phrase evidence seriously. When a party denies controlling a wallet but a seed phrase linked to that wallet is found in their possession, the explanation required becomes difficult to construct.",{"type":26,"tag":556,"props":956,"children":958},{"id":957},"signed-messages",[959],{"type":31,"value":960},"Signed Messages",{"type":26,"tag":27,"props":962,"children":963},{},[964],{"type":31,"value":965},"A wallet can produce a cryptographic signature, using the same private key that authorizes transactions, that demonstrates control of a specific address without moving any funds. This is called a signed message: a piece of text combined with a cryptographic proof that can be verified by anyone to confirm it was produced by the controller of a given address.",{"type":26,"tag":27,"props":967,"children":968},{},[969],{"type":31,"value":970},"In civil litigation, a court can order a party to produce a signed message from a disputed address. If the party produces one, it proves beyond cryptographic doubt that they control the address at the moment of signing. If the party claims they cannot produce one because they do not have access to the key, that claim can be evaluated against the other evidence in the case.",{"type":26,"tag":27,"props":972,"children":973},{},[974],{"type":31,"value":975},"Hypothetical example: A party asked to demonstrate control of a disputed address signs a court-specified message with that address. The verifiable signature shows control at the time of signing without transferring any funds.",{"type":26,"tag":556,"props":977,"children":979},{"id":978},"transaction-history-as-circumstantial-evidence",[980],{"type":31,"value":981},"Transaction History as Circumstantial Evidence",{"type":26,"tag":27,"props":983,"children":984},{},[985],{"type":31,"value":986},"The pattern of transactions associated with a wallet can itself serve as evidence of control. Transactions that correlate with events in a party's life, purchases that match known interests or businesses, transfers that align with dates of known payments, or connections to addresses confirmed to belong to the party through other evidence, all contribute to an inference of control.",{"type":26,"tag":27,"props":988,"children":989},{},[990],{"type":31,"value":991},"Circumstantial evidence of this kind is rarely sufficient on its own, but it can be significant corroboration. When combined with device forensics, exchange records, or seed phrase evidence, a coherent transaction history that is consistent with a specific individual's behavior strengthens the overall attribution.",{"type":26,"tag":39,"props":993,"children":995},{"id":994},"challenging-ownership-claims",[996],{"type":31,"value":997},"Challenging Ownership Claims",{"type":26,"tag":27,"props":999,"children":1000},{},[1001],{"type":31,"value":1002},"Ownership claims can be challenged from both directions. A party may claim that they do not control a wallet that forensic analysis suggests is theirs, or a party may claim to control a wallet as an asset when the ownership is disputed by another party.",{"type":26,"tag":27,"props":1004,"children":1005},{},[1006],{"type":31,"value":1007},"When challenging an ownership attribution, the relevant questions are whether the methodology used to connect the address to the individual was sound, whether the clustering heuristics applied could have produced a false positive, whether the exchange record or device evidence actually establishes what is claimed, and whether the timeline is consistent with the theory of control.",{"type":26,"tag":27,"props":1009,"children":1010},{},[1011],{"type":31,"value":1012},"A well-constructed challenge to blockchain evidence requires an expert who understands both the forensic methodology used and its limitations. Blockchain analysis is not infallible. There are circumstances where the common input ownership heuristic can misattribute addresses, particularly in certain types of coinjoin transactions or when multiple parties share access to a single device or account. Identifying those circumstances requires technical knowledge of the specific tools and techniques the opposing expert used.",{"type":26,"tag":27,"props":1014,"children":1015},{},[1016,1018,1023],{"type":31,"value":1017},"See ",{"type":26,"tag":56,"props":1019,"children":1020},{"href":687},[1021],{"type":31,"value":1022},"Common Mistakes in Cryptocurrency Investigations",{"type":31,"value":1024}," for the specific errors that arise in attribution analysis and how they can be identified and challenged.",{"type":26,"tag":39,"props":1026,"children":1028},{"id":1027},"what-evidence-courts-have-accepted",[1029],{"type":31,"value":1030},"What Evidence Courts Have Accepted",{"type":26,"tag":27,"props":1032,"children":1033},{},[1034],{"type":31,"value":1035},"Courts across the country have accepted blockchain evidence and expert testimony about cryptocurrency wallet ownership in a range of civil and criminal proceedings. The specific evidentiary frameworks differ by jurisdiction, but the general principle that digital asset evidence is subject to the same authentication and reliability requirements as other forms of electronic evidence is well-established.",{"type":26,"tag":27,"props":1037,"children":1038},{},[1039],{"type":31,"value":1040},"Authentication of blockchain records typically involves a combination of self-authenticating public records from block explorers, certified records from exchanges, and expert testimony that explains the methodology used to analyze the data. Courts that have encountered blockchain evidence have generally focused on whether the methodology is reliable and whether the expert is qualified to offer the opinion, rather than treating blockchain evidence as inherently inadmissible or inherently self-proving.",{"type":26,"tag":27,"props":1042,"children":1043},{},[1044,1046,1052],{"type":31,"value":1045},"The admissibility of expert testimony on wallet ownership follows the standard applied to other technical fields. The analyst should be able to explain their methodology clearly, account for alternative explanations, and identify the limitations of their conclusions. See ",{"type":26,"tag":56,"props":1047,"children":1049},{"href":1048},"\u002Fresources\u002Fblockchain-evidence-admissibility",[1050],{"type":31,"value":1051},"Blockchain Evidence Admissibility",{"type":31,"value":1053}," for a detailed treatment of the evidentiary standards and best practices.",{"type":26,"tag":39,"props":1055,"children":1057},{"id":1056},"building-the-ownership-case",[1058],{"type":31,"value":1059},"Building the Ownership Case",{"type":26,"tag":27,"props":1061,"children":1062},{},[1063],{"type":31,"value":1064},"For attorneys handling matters where wallet ownership is at issue, the practical approach is to pursue evidence from multiple directions simultaneously. Exchange records and blockchain analysis establish the starting point. Device forensics may add transaction records and key material. Interrogatories can require the party to state whether they control a wallet and, if they deny it, to explain how the on-chain connections arose. Requests for admission can pin down specific factual questions.",{"type":26,"tag":27,"props":1066,"children":1067},{},[1068],{"type":31,"value":1069},"A party who falsely denies controlling a wallet faces increasing risk as the evidence accumulates. The combination of technical evidence that connects an address to the party and the party's sworn denial creates a foundation for sanctions, adverse inferences, or credibility findings that can affect the outcome of the matter broadly.",{"type":26,"tag":27,"props":1071,"children":1072},{},[1073,1079,1081,1086],{"type":26,"tag":56,"props":1074,"children":1076},{"href":1075},"\u002Fservices#blockchain-tracing",[1077],{"type":31,"value":1078},"ConsensusIntel's services",{"type":31,"value":1080}," include the full range of analysis required to establish wallet ownership in litigation: blockchain tracing, forensic reporting, and expert testimony that clearly explains both the technical findings and the appropriate limits of those findings. For an initial discussion of what an engagement looks like, ",{"type":26,"tag":56,"props":1082,"children":1083},{"href":781},[1084],{"type":31,"value":1085},"contact us directly",{"type":31,"value":243},{"type":26,"tag":1088,"props":1089,"children":1090},"hr",{},[],{"type":26,"tag":39,"props":1092,"children":1093},{"id":695},[1094],{"type":31,"value":698},{"type":26,"tag":556,"props":1096,"children":1098},{"id":1097},"q-can-a-party-transfer-a-wallet-to-someone-else-and-then-claim-not-to-own-it",[1099],{"type":31,"value":1100},"Q: Can a party transfer a wallet to someone else and then claim not to own it?",{"type":26,"tag":27,"props":1102,"children":1103},{},[1104,1108],{"type":26,"tag":124,"props":1105,"children":1106},{},[1107],{"type":31,"value":712},{"type":31,"value":1109}," A transfer of cryptocurrency does not erase the history of prior control. Exchange records, device forensics, and blockchain analysis can establish that the party controlled the wallet before the transfer, and the timing of a transfer in relation to litigation or disclosure deadlines may be evidence of bad faith. Courts can draw inferences from transfers made specifically to avoid asset disclosure.",{"type":26,"tag":556,"props":1111,"children":1113},{"id":1112},"q-what-if-the-seed-phrase-is-not-found",[1114],{"type":31,"value":1115},"Q: What if the seed phrase is not found?",{"type":26,"tag":27,"props":1117,"children":1118},{},[1119,1123],{"type":26,"tag":124,"props":1120,"children":1121},{},[1122],{"type":31,"value":712},{"type":31,"value":1124}," The absence of recovered seed phrase evidence does not rule out ownership. Seed phrases can be memorized, stored in offline locations, or destroyed after the wallet is set up. The investigation does not depend on recovering the seed phrase; it relies on the combination of available evidence including exchange records, device traces, transaction history, and the party's own prior statements.",{"type":26,"tag":556,"props":1126,"children":1128},{"id":1127},"q-can-two-people-share-control-of-a-wallet",[1129],{"type":31,"value":1130},"Q: Can two people share control of a wallet?",{"type":26,"tag":27,"props":1132,"children":1133},{},[1134,1138],{"type":26,"tag":124,"props":1135,"children":1136},{},[1137],{"type":31,"value":712},{"type":31,"value":1139}," Yes. Multisignature wallets require signatures from multiple private keys to authorize a transaction, meaning control is genuinely shared among the keyholders. In addition, a person might have provided their seed phrase to another person, creating joint access to a single-key wallet. These arrangements complicate the ownership analysis and require careful examination of the surrounding evidence to determine who had practical control in a given context.",{"type":26,"tag":556,"props":1141,"children":1143},{"id":1142},"q-how-is-wallet-ownership-handled-in-divorce-specifically",[1144],{"type":31,"value":1145},"Q: How is wallet ownership handled in divorce specifically?",{"type":26,"tag":27,"props":1147,"children":1148},{},[1149,1153],{"type":26,"tag":124,"props":1150,"children":1151},{},[1152],{"type":31,"value":712},{"type":31,"value":1154}," In divorce proceedings, the relevant question is often not just whether a party controls a wallet, but when they acquired the cryptocurrency and whether it is marital or separate property. Exchange records often provide a clear acquisition timeline. For self-custody wallets without exchange records, establishing the acquisition date requires other evidence such as blockchain data, device records, or prior communications.",{"type":26,"tag":556,"props":1156,"children":1158},{"id":1157},"q-what-does-it-cost-to-establish-wallet-ownership-forensically",[1159],{"type":31,"value":1160},"Q: What does it cost to establish wallet ownership forensically?",{"type":26,"tag":27,"props":1162,"children":1163},{},[1164,1168],{"type":26,"tag":124,"props":1165,"children":1166},{},[1167],{"type":31,"value":712},{"type":31,"value":1169}," Costs vary based on the complexity of the holdings and the amount of starting information available. Matters involving a single exchange account may require minimal technical work. Matters involving multiple chains, self-custody wallets, and complex transaction histories require more extensive analysis. Early engagement, before evidence becomes unavailable or the timeline becomes urgent, generally produces better results at lower cost.",{"title":8,"searchDepth":788,"depth":788,"links":1171},[1172,1173,1174,1181,1182,1183,1184],{"id":838,"depth":788,"text":841},{"id":859,"depth":788,"text":862},{"id":898,"depth":788,"text":901,"children":1175},[1176,1177,1178,1179,1180],{"id":904,"depth":798,"text":907},{"id":920,"depth":798,"text":923},{"id":936,"depth":798,"text":939},{"id":957,"depth":798,"text":960},{"id":978,"depth":798,"text":981},{"id":994,"depth":788,"text":997},{"id":1027,"depth":788,"text":1030},{"id":1056,"depth":788,"text":1059},{"id":695,"depth":788,"text":698,"children":1185},[1186,1187,1188,1189,1190],{"id":1097,"depth":798,"text":1100},{"id":1112,"depth":798,"text":1115},{"id":1127,"depth":798,"text":1130},{"id":1142,"depth":798,"text":1145},{"id":1157,"depth":798,"text":1160},"content:articles:03-understanding-wallet-ownership-evidence.md","articles\u002F03-understanding-wallet-ownership-evidence.md","articles\u002F03-understanding-wallet-ownership-evidence",1790145013677]