{
  "$schema": "https://degreesofsatoshi.com/encyclopedia/schemas/article-v1.json",
  "schemaVersion": "1.0.0",
  "id": "ethereum-wallet-requests",
  "canonical": "https://degreesofsatoshi.com/encyclopedia/ethereum-wallet-requests/",
  "collection": "ethereum",
  "title": "Reading Ethereum wallet requests: connection, signing and calls",
  "description": "Distinguish connecting a wallet, signing a message and sending a transaction, and learn how decoded contract requests reveal amounts and permissions.",
  "aliases": [
    "wallet signature request",
    "ABI",
    "typed data",
    "connect wallet"
  ],
  "dates": {
    "published": "2026-10-02",
    "modified": "2026-10-02",
    "verified": "2026-10-02T18:16:35.976Z",
    "dataAsOf": null
  },
  "authorship": {
    "publisher": "Degrees of Satoshi editorial project",
    "process": "AI-assisted research and drafting with a separate automated source-verification pass; no external expert or named human review is implied."
  },
  "quickAnswer": {
    "text": "A wallet request can expose an account, sign a message or authorize a transaction; these are different actions. Contract interfaces help decode function names and arguments, while typed-message formats add context to signatures. A request with no immediate gas fee can still authorize a consequential action later.",
    "claimId": "ethereum-wallet-requests-quick-answer",
    "sourceIds": [
      "eip1193",
      "eip712",
      "interacting"
    ]
  },
  "keyFacts": [
    {
      "label": "Connection",
      "value": "Provider communication and account exposure are distinct from a transfer",
      "sourceIds": [
        "eip1193"
      ],
      "id": "connection",
      "claimId": "ethereum-wallet-requests-fact-connection"
    },
    {
      "label": "ABI",
      "value": "Describes contract functions, arguments and events",
      "sourceIds": [
        "interacting"
      ],
      "id": "abi",
      "claimId": "ethereum-wallet-requests-fact-abi"
    },
    {
      "label": "Typed signature",
      "value": "Provides structure and domain context, not automatic safety",
      "sourceIds": [
        "eip712"
      ],
      "id": "typed-signature",
      "claimId": "ethereum-wallet-requests-fact-typed-signature"
    }
  ],
  "prerequisites": [
    "ethereum-accounts",
    "ethereum-smart-contracts"
  ],
  "sections": [
    {
      "id": "three-requests",
      "heading": "Connection, signing and submission establish different things",
      "sourceIds": [
        "edition-eth-transactions",
        "edition-eip712",
        "edition-eip2612",
        "edition-erc20",
        "eip1193"
      ],
      "paragraphs": [
        "Connecting a wallet lets an application request interaction with an account; it is not itself an ERC-20 spending approval. A signature can authorize a message, order, permit or transaction, depending on what is signed.",
        "Signing is also different from submitting. Someone can hold a valid permit and submit it later under its nonce and deadline rules. A request with no immediate gas charge can therefore create consequential authority. Read the verifying contract, chain, spender, amount and validity conditions before treating it as a login."
      ]
    },
    {
      "id": "decode-example",
      "heading": "Example: approving a spender is different from paying a recipient",
      "sourceIds": [
        "interacting",
        "erc20"
      ],
      "paragraphs": [
        "Suppose a decoded request says approve a spender for 100 token units. That changes the permitted spending allowance if executed; it is not the same instruction as transfer 100 units to a recipient.",
        "The ABI is the interface description used to turn bytes into readable function names and arguments. The actual token contract, spender, amount and chain still matter. A familiar function name does not authenticate the destination."
      ]
    },
    {
      "id": "typed-context",
      "heading": "A structured message helps show what is being signed",
      "sourceIds": [
        "eip712",
        "eip1193"
      ],
      "paragraphs": [
        "EIP-712 defines typed structured data and domain separation. Fields can include an application name, version, chain and verifying contract. These give software a way to display more context than an opaque byte string.",
        "The standard explicitly does not provide application replay protection by itself. An application still needs appropriate nonces, deadlines or other rules, and the wallet’s presentation cannot establish that the verifier implements them correctly."
      ]
    },
    {
      "id": "simulation-limits",
      "heading": "A preview answers a narrower question than a guarantee",
      "sourceIds": [
        "interacting",
        "eip7702"
      ],
      "paragraphs": [
        "A simulation estimates execution against selected state. A later transaction may encounter a different price, balance or ordering. Treat the preview as evidence about those assumptions rather than a promise of the final outcome.",
        "Account delegation deserves special attention: EIP-7702 authorization can grant persistent execution capabilities. It should not be confused with a routine login signature or permission to view an account."
      ]
    }
  ],
  "faq": [
    {
      "question": "Does connecting a wallet move my tokens?",
      "answer": "Account exposure alone does not execute a transfer. Additional signatures or transactions can grant authority, so distinguish each request rather than treating every prompt as connection.",
      "sourceIds": [
        "eip1193",
        "erc20"
      ]
    },
    {
      "question": "Is signing a message safe because it costs no gas?",
      "answer": "No. A signature can authorize a later action when presented to a contract or service. Its effect depends on the message and the rules that verify it.",
      "sourceIds": [
        "eip712"
      ]
    },
    {
      "question": "Does readable transaction text prove a contract is legitimate?",
      "answer": "No. Decoding explains the requested function and arguments. It does not certify the destination contract, its implementation or the site making the request.",
      "sourceIds": [
        "interacting",
        "contracts"
      ]
    }
  ],
  "claims": [
    {
      "id": "ethereum-wallet-requests-quick-answer",
      "articleSlug": "ethereum-wallet-requests",
      "statement": "A wallet request can expose an account, sign a message or authorize a transaction; these are different actions. Contract interfaces help decode function names and arguments, while typed-message formats add context to signatures. A request with no immediate gas fee can still authorize a consequential action later.",
      "sourceIds": [
        "source-36f6aadc103db598",
        "source-67a18d868dbe6d78",
        "source-64ab603c23f79017"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-36f6aadc103db598",
          "locator": "request; events; security considerations; user account exposure"
        },
        {
          "sourceId": "source-67a18d868dbe6d78",
          "locator": "Abstract; domainSeparator; security considerations"
        },
        {
          "sourceId": "source-64ab603c23f79017",
          "locator": "Reading; writing; understanding contract ABIs; events and logs; simulating"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": null,
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:16:35.976Z",
        "reviewer": "Codex independent automated reviewer /root/verify_ethereum_100",
        "notes": [
          "Checked account exposure/request boundary against freshly reopened pinned EIP-1193; added its existing source ID to the changed section. Added ERC-20 for separate approval behavior.",
          "EIP-712 and ERC-2612 were independently read earlier in this same review session; they establish typed scope, later permit submission, nonce/deadline rules and consequential gasless signing. Earlier actual retrieval timestamps are preserved."
        ]
      }
    },
    {
      "id": "ethereum-wallet-requests-fact-connection",
      "articleSlug": "ethereum-wallet-requests",
      "statement": "Connection: Provider communication and account exposure are distinct from a transfer",
      "sourceIds": [
        "source-36f6aadc103db598"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-36f6aadc103db598",
          "locator": "request; events; security considerations; user account exposure"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": null,
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:16:35.976Z",
        "reviewer": "Codex independent automated reviewer /root/verify_ethereum_100",
        "notes": [
          "Checked account exposure/request boundary against freshly reopened pinned EIP-1193; added its existing source ID to the changed section. Added ERC-20 for separate approval behavior.",
          "EIP-712 and ERC-2612 were independently read earlier in this same review session; they establish typed scope, later permit submission, nonce/deadline rules and consequential gasless signing. Earlier actual retrieval timestamps are preserved."
        ]
      }
    },
    {
      "id": "ethereum-wallet-requests-fact-abi",
      "articleSlug": "ethereum-wallet-requests",
      "statement": "ABI: Describes contract functions, arguments and events",
      "sourceIds": [
        "source-64ab603c23f79017"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-64ab603c23f79017",
          "locator": "Reading; writing; understanding contract ABIs; events and logs; simulating"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": null,
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:16:35.976Z",
        "reviewer": "Codex independent automated reviewer /root/verify_ethereum_100",
        "notes": [
          "Checked account exposure/request boundary against freshly reopened pinned EIP-1193; added its existing source ID to the changed section. Added ERC-20 for separate approval behavior.",
          "EIP-712 and ERC-2612 were independently read earlier in this same review session; they establish typed scope, later permit submission, nonce/deadline rules and consequential gasless signing. Earlier actual retrieval timestamps are preserved."
        ]
      }
    },
    {
      "id": "ethereum-wallet-requests-fact-typed-signature",
      "articleSlug": "ethereum-wallet-requests",
      "statement": "Typed signature: Provides structure and domain context, not automatic safety",
      "sourceIds": [
        "source-67a18d868dbe6d78"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-67a18d868dbe6d78",
          "locator": "Abstract; domainSeparator; security considerations"
        }
      ],
      "scope": {
        "collection": "ethereum",
        "dataAsOf": null,
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:16:35.976Z",
        "reviewer": "Codex independent automated reviewer /root/verify_ethereum_100",
        "notes": [
          "Checked account exposure/request boundary against freshly reopened pinned EIP-1193; added its existing source ID to the changed section. Added ERC-20 for separate approval behavior.",
          "EIP-712 and ERC-2612 were independently read earlier in this same review session; they establish typed scope, later permit submission, nonce/deadline rules and consequential gasless signing. Earlier actual retrieval timestamps are preserved."
        ]
      }
    }
  ],
  "sources": [
    {
      "id": "eip1193",
      "label": "EIP-1193: Ethereum Provider JavaScript API",
      "publisher": "Ethereum Improvement Proposals",
      "url": "https://raw.githubusercontent.com/ethereum/EIPs/ac912ca6a9685590345dd8e5736cda75976d0131/EIPS/eip-1193.md",
      "canonicalUrl": "https://eips.ethereum.org/EIPS/eip-1193",
      "version": "ac912ca6a9685590345dd8e5736cda75976d0131",
      "checkedAt": "2026-10-02T14:35:55.037764+00:00",
      "locator": "request; events; security considerations; user account exposure",
      "sha256": "a3b5bca210b6818321c95279b9a47622343cb0eb51db058f1326b5e25ee4040d",
      "note": "Defines wallet provider requests, account/chain changes and the boundary between provider communication and wallet permission.",
      "recordId": "source-36f6aadc103db598",
      "contentSha256": "a3b5bca210b6818321c95279b9a47622343cb0eb51db058f1326b5e25ee4040d"
    },
    {
      "id": "eip712",
      "label": "EIP-712: Typed structured data hashing and signing",
      "publisher": "Ethereum Improvement Proposals",
      "url": "https://raw.githubusercontent.com/ethereum/EIPs/ac912ca6a9685590345dd8e5736cda75976d0131/EIPS/eip-712.md",
      "canonicalUrl": "https://eips.ethereum.org/EIPS/eip-712",
      "version": "ac912ca6a9685590345dd8e5736cda75976d0131",
      "checkedAt": "2026-10-02T14:35:55.017191+00:00",
      "locator": "Abstract; domainSeparator; security considerations",
      "sha256": "459086f5a0b2d6a0ac4e404faebf3660a49aa4b1712711521093380689f02304",
      "note": "Defines typed-message structure and domain separation; explicitly does not supply application replay protection.",
      "recordId": "source-67a18d868dbe6d78",
      "contentSha256": "459086f5a0b2d6a0ac4e404faebf3660a49aa4b1712711521093380689f02304"
    },
    {
      "id": "interacting",
      "label": "Interacting with smart contracts",
      "publisher": "ethereum.org contributors",
      "url": "https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/developers/docs/smart-contracts/interacting/index.md",
      "canonicalUrl": "https://ethereum.org/en/developers/docs/smart-contracts/interacting/",
      "version": "dcc900ff125891da5b6c723b905a7113cf1bd864",
      "checkedAt": "2026-10-02T14:35:40.398262+00:00",
      "locator": "Reading; writing; understanding contract ABIs; events and logs; simulating",
      "sha256": "0c969a8627399edfcae7e30d5fa1fcc02218265808be25f52a9a9a46da7dc29f",
      "note": "Supports read-only calls, state-changing transactions, ABI decoding and limits of simulation.",
      "recordId": "source-64ab603c23f79017",
      "contentSha256": "0c969a8627399edfcae7e30d5fa1fcc02218265808be25f52a9a9a46da7dc29f"
    },
    {
      "id": "erc20",
      "label": "ERC-20: Token Standard",
      "publisher": "Ethereum Request for Comments",
      "url": "https://raw.githubusercontent.com/ethereum/ERCs/583335b7912e51b1ea515bb662532dd29b27e786/ERCS/erc-20.md",
      "canonicalUrl": "https://eips.ethereum.org/EIPS/eip-20",
      "version": "583335b7912e51b1ea515bb662532dd29b27e786",
      "checkedAt": "2026-10-02T14:35:55.037727+00:00",
      "locator": "Methods: decimals, balanceOf, transfer, approve, transferFrom, allowance",
      "sha256": "50d0bdc535ed8987ac5c124cb5f9c39606806c97e909aae66ef4b747dd9c93dd",
      "note": "Defines fungible token balances, optional display metadata and spending allowance behavior.",
      "recordId": "source-e99ee03961c5d3e7",
      "contentSha256": "50d0bdc535ed8987ac5c124cb5f9c39606806c97e909aae66ef4b747dd9c93dd"
    },
    {
      "id": "eip7702",
      "label": "EIP-7702: Set Code for EOAs",
      "publisher": "Ethereum Improvement Proposals",
      "url": "https://raw.githubusercontent.com/ethereum/EIPs/ac912ca6a9685590345dd8e5736cda75976d0131/EIPS/eip-7702.md",
      "canonicalUrl": "https://eips.ethereum.org/EIPS/eip-7702",
      "version": "ac912ca6a9685590345dd8e5736cda75976d0131",
      "checkedAt": "2026-10-02T14:35:51.249142+00:00",
      "locator": "Abstract; persistence of code delegation; transaction origination; security considerations",
      "sha256": "3d46953e13ebc7ebe229971b301ede853aad6e29f4faf4db1eb9a2085accde1b",
      "note": "Defines persistent EOA code delegation, continued transaction origination and the account-wide consequences of delegate code.",
      "recordId": "source-d4e3c4ededc427a1",
      "contentSha256": "3d46953e13ebc7ebe229971b301ede853aad6e29f4faf4db1eb9a2085accde1b"
    },
    {
      "id": "contracts",
      "label": "Introduction to smart contracts",
      "publisher": "ethereum.org contributors",
      "url": "https://raw.githubusercontent.com/ethereum/ethereum-org-website/dcc900ff125891da5b6c723b905a7113cf1bd864/public/content/developers/docs/smart-contracts/index.md",
      "canonicalUrl": "https://ethereum.org/en/developers/docs/smart-contracts/",
      "version": "dcc900ff125891da5b6c723b905a7113cf1bd864",
      "checkedAt": "2026-10-02T14:35:40.398357+00:00",
      "locator": "What is a smart contract; a digital vending machine; limitations; multisig",
      "sha256": "e0933f91c6c58d30c1f5f05cac3c45529bf34dcb0711bbaa9a4dfe2b9b9946db",
      "note": "Supports contract code/state, deterministic rules, illustrative vending logic, external-data limits and multisignature access.",
      "recordId": "source-1bffcf35253de959",
      "contentSha256": "e0933f91c6c58d30c1f5f05cac3c45529bf34dcb0711bbaa9a4dfe2b9b9946db"
    },
    {
      "id": "edition-eth-transactions",
      "label": "Ethereum transactions",
      "publisher": "ethereum.org contributors",
      "url": "https://ethereum.org/en/developers/docs/transactions/",
      "locator": "The transaction lifecycle; Typed transaction envelope",
      "note": "Signed transaction fields, nonces, propagation, inclusion and transaction types.",
      "version": null,
      "checkedAt": "2026-10-02T17:03:41.854Z",
      "contentSha256": "2eb9d9cb65efec673d9bb3327961aa14a0e354b612e149c5a6b733032977fee7",
      "recordId": "source-c4666896686db30e"
    },
    {
      "id": "edition-eip712",
      "label": "Typed structured data hashing and signing",
      "publisher": "Ethereum Improvement Proposals",
      "url": "https://eips.ethereum.org/EIPS/eip-712",
      "locator": "Specification; Security Considerations",
      "note": "Typed-data encoding and domain fields; replay protection is application-specific.",
      "version": "EIP/ERC-712; retrieved document hash recorded",
      "checkedAt": "2026-10-02T17:03:42.239Z",
      "contentSha256": "0951c36c432c48e281bd131331bdd5f4426706417e0d38fa3e667c0b7f84a530",
      "recordId": "source-c78d0f0c60a42b2d"
    },
    {
      "id": "edition-eip2612",
      "label": "Permit Extension for EIP-20 Signed Approvals",
      "publisher": "Ethereum Improvement Proposals",
      "url": "https://eips.ethereum.org/EIPS/eip-2612",
      "locator": "Specification; Security Considerations",
      "note": "Signed token allowances, deadlines, nonces and domain checks.",
      "version": "EIP/ERC-2612; retrieved document hash recorded",
      "checkedAt": "2026-10-02T17:03:42.295Z",
      "contentSha256": "aa208d281cac5dbb182656bc7a3feab982df5c5df9e2f6dfa9b9efb5fc578ed1",
      "recordId": "source-1f53bb744ddddb6b"
    },
    {
      "id": "edition-erc20",
      "label": "ERC-20 Token Standard",
      "publisher": "Ethereum Improvement Proposals",
      "url": "https://eips.ethereum.org/EIPS/eip-20",
      "locator": "totalSupply; balanceOf; transfer; decimals; approve; allowance; transferFrom; Transfer",
      "note": "Token supply, displayed units and balance accounting.",
      "version": "ERC-20",
      "checkedAt": "2026-10-02T17:03:45.826Z",
      "contentSha256": "98bda5e4707841a68684879878c4c165fdaa47d89ed69ebf232ab9be06ff050e",
      "recordId": "source-ac4ad503a55127bb"
    }
  ],
  "related": {
    "articles": [
      "ethereum-token-approvals",
      "ethereum-smart-accounts",
      "ethereum-block-explorer",
      "walletconnect-sessions",
      "wallet-phishing-websites",
      "ethereum-transaction-simulation",
      "metamask-password-and-recovery-phrase"
    ],
    "dossiers": [],
    "wallets": []
  },
  "revisionHistory": [
    {
      "date": "2026-10-02",
      "kind": "published",
      "summary": "First publication after primary-source research and independent automated verification."
    },
    {
      "date": "2026-10-02",
      "kind": "substantive-edit",
      "summary": "Expanded explanation: Connection, signing and submission establish different things. Worked examples are illustrative; source checks and independent verification are recorded separately."
    }
  ],
  "citation": "Degrees of Satoshi editorial project. “Reading Ethereum wallet requests: connection, signing and calls.” Published 2026-10-02; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/ethereum-wallet-requests/"
}
