{"id":"ERC-7950","name":"Chain ID with Tx Hash","status":"Draft","chain":"both","category":{"id":"cross-chain","name":"Cross-Chain","description":"Moving assets and messages between chains"},"journeyStages":[{"id":"status","name":"Status & Confirmation","description":"Waiting for and confirming outcomes"}],"uxImpact":"Users can share or receive transaction references as a single portable string that includes chain context — no more 'which chain was this on?' confusion. Design implications: generate shareable tx links in format '1:0xabc123...:tx', auto-detect chain ID when pasting tx references, show chain icon/name when displaying decoded references. Design decisions: whether to auto-redirect to appropriate block explorer, how to handle unrecognized chain IDs, displaying the chain-prefixed format vs hiding complexity behind copy button.","hasDetailedContent":true,"content":{"id":"ERC-7950","sources":[{"label":"Official specification","url":"https://eips.ethereum.org/EIPS/erc-7950","type":"official-spec"}],"lastReviewed":"2026-05-25","lastUpdated":"2026-05-25","summary":"Users can share or receive transaction references as a single portable string that includes chain context — no more 'which chain was this on?","designerTakeaways":["You can generate share links in standard format while showing friendly tx status in UI.","Your paste field can decode chain-prefixed references and open correct explorer.","You can hide encoded format behind Copy transaction link button."],"applicability":{"whenToUse":["Support and social sharing of transactions across chains.","Activity feeds span multiple networks.","Users paste tx refs from other users frequently."],"whenToAvoid":["Single-chain app with native explorer links only.","No multi-chain explorer routing.","Users never share raw tx references."]},"prototypeFirst":[{"screen":"Transaction status with share","why":"User shares proof of payment cross-chain.","covers":["Confirmed","Pending","Failed"],"include":["Status strip","Copy transaction link","Chain badge on status"]},{"screen":"Paste tx reference lookup","why":"Support and power users paste refs from tickets.","covers":["Valid decode","Unknown chain","Malformed"],"include":["Paste field","Decoded chain + hash","Open explorer CTA"]},{"screen":"Activity feed tx row","why":"Each row must show chain context.","covers":["Multi-chain feed"],"include":["Chain icon on row","Share icon","Explorer link"]},{"screen":"Unrecognized chain ID","why":"New chains appear before explorer list updates.","covers":["Unknown chain"],"include":["Unknown network message","Raw hash fallback","Add explorer config admin"]}],"mentalModel":[{"label":"Tx reference","description":"Portable string tying hash to chain."},{"label":"Decode","description":"Parser splits chain id and hash from paste."},{"label":"Explorer routing","description":"Correct block explorer opens from decoded chain."},{"label":"User-facing link","description":"Copy button hides encoding complexity."},{"label":"Cross-app paste","description":"Same string works in wallet, support bot, and explorer."}],"statesToDesign":[{"state":"Tx confirmed — share ready","trigger":"Inclusion complete.","userNeed":"Share proof.","designResponse":"Copy transaction link with chain context embedded."},{"state":"Paste valid reference","trigger":"User pastes encoded ref.","userNeed":"See tx details.","designResponse":"Decode show chain badge and hash; load status."},{"state":"Malformed paste","trigger":"Invalid format.","userNeed":"Fix input.","designResponse":"Could not read transaction reference inline error."},{"state":"Unknown chain in reference","trigger":"Chain id not in app registry.","userNeed":"Still access hash.","designResponse":"Unknown network — show hash with generic explorer search link."},{"state":"Pending tx share","trigger":"User shares before confirm.","userNeed":"Recipient knows may pending.","designResponse":"Share link plus Pending label in copied message template."}],"designDecisions":[{"question":"Show encoded string in UI?","recommendation":"Hide behind copy; show chain badge plus truncated hash.","rationale":"1:0xabc…:tx frightens non-technical users."},{"question":"Auto-open explorer on paste?","recommendation":"Load in-app status first; explorer as secondary action.","rationale":"Keep users in app when possible."},{"question":"Pending tx shareable?","recommendation":"Yes with Pending disclaimer in share template.","rationale":"Support needs refs before confirmation."}],"problemsSolved":[{"problem":"Which chain was this tx on?","oldWay":"Support asks back and forth","newWay":"Encoded reference self-documents chain","impact":"high"},{"problem":"Wrong explorer opened","oldWay":"Etherscan link for Arbitrum tx","newWay":"Decode routes to correct explorer","impact":"high"},{"problem":"Ugly tx hash only shares","oldWay":"0x hash ambiguous","newWay":"One copy button produces portable reference","impact":"medium"}],"uxPatterns":[{"name":"Copy Transaction Link","description":"One button produces chain-prefixed reference.","mockup":"concept/tx-status","components":["ShareButton","ChainBadge","TxHashTruncate"],"userFlow":["Tx confirms","User taps copy link","Encoded ref copied","Recipient pastes and decodes"]},{"name":"Paste Tx Reference Lookup","description":"Decode pasted reference to status view.","mockup":"concept/bridge","components":["PasteField","DecodePreview","ExplorerLink"],"userFlow":["Paste reference","Decode succeeds","Status loads","Optional open explorer"]}],"seenInTheWild":[{"app":"Etherscan","url":"https://etherscan.io/","note":"Chain-specific explorer link patterns."},{"app":"Blockscout","url":"https://www.blockscout.com/","note":"Multi-chain explorer routing."},{"app":"Socketscan","url":"https://socketscan.io/","note":"Cross-chain tx tracking UX."}],"antiPatterns":[{"pattern":"Showing raw encoded string as primary UI","why":"Users cannot read or verify","instead":"Chain badge plus hash; encode only on copy","severity":"high"},{"pattern":"Paste hash only without chain decode","why":"Wrong chain lookup","instead":"Accept and decode 7950 format on paste field","severity":"critical"},{"pattern":"Dead end on unknown chain id","why":"New chains break support flow","instead":"Fallback hash display and generic search","severity":"medium"}],"vocabulary":[{"use":"Transaction link","avoid":"7950-encoded reference","why":"Share artifact language."},{"use":"On [chain name]","avoid":"ChainId prefix","why":"Network name on status rows."},{"use":"Look up transaction","avoid":"Decode tx reference","why":"Paste field action label."}],"onMonad":[{"aspect":"Monad tx shares","ethereum":"Monad txs need chain id in reference","monad":"Include Monad chain id in all share links from day one","designImplication":"Copy link on Monad always produces monad-prefixed reference."},{"aspect":"Confirm speed","ethereum":"Pending share window long","monad":"Quick confirm reduces pending share confusion","designImplication":"Shorter pending state before share on Monad."}],"technicalNotes":"ERC-7950 is draft; hide encoded format in UI, use on copy and paste decode paths.","relatedStandards":[{"id":"ERC-7930","relationship":"Chain-aware addresses complement tx refs"},{"id":"EIP-695","relationship":"Chain ID in encoded reference"}]},"sources":[{"label":"Official specification","url":"https://eips.ethereum.org/EIPS/erc-7950","type":"official-spec"},{"label":"Discussion","url":"https://ethereum-magicians.org/search?q=ERC-7950","type":"discussion"},{"label":"Official specification","url":"https://eips.ethereum.org/EIPS/erc-7950","type":"official-spec"}],"urls":{"canonical":"https://www.eipsfordesigners.com/standards/ERC-7950","markdown":"https://www.eipsfordesigners.com/standards/ERC-7950/content.md","agent":"https://www.eipsfordesigners.com/standards/ERC-7950/agent.md","api":"https://www.eipsfordesigners.com/api/standards/ERC-7950","official":"https://eips.ethereum.org/EIPS/erc-7950","discussion":"https://ethereum-magicians.org/search?q=ERC-7950"},"freshness":{"lastReviewed":"2026-05-25","lastUpdated":"2026-05-25"}}