P03-L03 · P03 · P03-M01
Distinguish message signing from asset-changing instructions
Prerequisites: P03-L02
Learning objectives
- Distinguish message signing from asset-changing instructions
- Read approval-bearing message fields.
- Separate requested, signed, submitted and executed stages.
EN source master · P03-L03 · needs_review
Offline/read-only study only. Never provide secrets, passwords or authentication codes. No wallet connection, real approval, live revocation, transaction signature, transfer, funds or trade. Visuals are specifications only.
Why this matters
A request caption can say login while its fields authorize spending. The actual request and later execution evidence must be assessed separately.
Explanation
Classify the authorization
Transactions carry signed instructions [ETH_TX]. Messages can also authorize application actions. EIP-712 defines structured signing and domain context; replay handling remains an application responsibility [TYPED]. ERC-2612 provides a signed allowance mechanism using owner, spender, value, nonce and deadline [PERMIT]. No signature is created in this lesson.
Compare three offline summaries
R1 stipulates a login-style statement, R2 a permit-shaped request and R3 a transfer request. R2's login caption does not remove the spender/value fields. R1 lacks stipulated asset authority, but its harmlessness outside the simplified exercise is not established. A generic signature button cannot answer what an application will accept the signed content as.
Preserve scope
Read network/domain, verifying contract, authority, spender, amount, nonce and deadline where applicable. If missing, record UNKNOWN rather than borrowing fields from another card. A familiar domain name field is not independent project authentication. Nonce and expiry need the accepting application's rules; a format alone is not a complete safety policy.
A permit can be submitted by another party under the relevant contract rules. Therefore a lack of signer-submitted gas transaction does not prove that a message cannot authorize an allowance. Conversely, a displayed permit request does not prove any signature exists or has been consumed.
Keep stages in the report
Requested, signed, submitted and executed are separate rows. Here only requests are supplied. OBSERVED: the summaries and captions. INFERRED: classification under stipulated schemas. UNKNOWN: signature production and execution. INSUFFICIENT EVIDENCE: loss, malicious intent or human identity. Assess capability without asserting an accusation, and stop without signing anything.
Key terms
- Typed message: structured signing content.
- Permit: applicable signed approval mechanism.
- Domain separation: scope context, not identity proof.
- Nonce: a value checked against the accepting contract's state to distinguish authorizations; ERC-2612 increments its owner nonce on a successful permit.
- Deadline: the last time an ERC-2612 permit may be accepted under its rules, not a guarantee of execution.
- Consumption: application/contract use of authorization.
Historical example
ILLUSTRATIVE sanitized summaries, not signable payloads. R1 login/SIM-LOGIN/SIM-CHALLENGE, no asset permission stipulated. R2 caption login, type Permit, owner SIM-A, spender SIM-S, value 500 whole fixture units, nonce 4, deadline SIM-T3, domain SIM-N/contract SIM-C. R3 transfer request 7 SIM units to SIM-B on SIM-N. No signatures, calldata or receipts.
Visual specifications
Permissions matrix: caption/type/scope/execution evidence. Highlight R2 Permit/SIM-S/500 despite login caption. All cards stop before signing; no usable payload or transaction button.
What the evidence proves
Request fields and stipulated capability classifications.
What the evidence does not prove
Signing, inclusion, asset loss, full replay protection or malicious human intent.
Common mistakes
- All messages called harmless login.
- No gas interpreted as no authority.
- Request display equated to execution.
Practical exercise
Classify R1–R3 and list R2's authority fields. Fill requested/signed/submitted/executed rows and specify a missing record needed for execution.
Submit a table and bounded conclusion using only supplied offline material. Editorial time allocation: study 12 min, exercise 8 min, correction/quiz 10 min.
Show worked correction
R1 is only a fixture login statement. R2 requests an allowance-bearing capability scoped to SIM-N/SIM-C, SIM-S, 500, nonce 4 and fictional expiry. R3 requests a transfer. Signing/submission/execution UNKNOWN. A consumed-signature/state or receipt record is needed for execution. Malicious intent is INSUFFICIENT EVIDENCE.
Rubric: exact scope, source provenance, reasoning, explicit limits and safe offline handling, one point each. Invented observations or unsupported identity attribution require correction regardless of score. Formative only.
Checklist
- Read fields before caption.
- Record contract/network/spender/amount.
- Keep nonce/expiry context.
- Separate four stages.
- Never sign as exercise.
Summary
Message signing can authorize consequential actions. Capability inspection does not prove execution or independently establish malicious intent.
Summary
- Distinguish message signing from asset-changing instructions
- Read approval-bearing message fields.
- Separate requested, signed, submitted and executed stages.
Next lesson
P03-L04 after prerequisite and correction review.
Tools
NONE in authoritative catalog. Provided offline data suffice; no product purchase or wallet operation required.
Sources & claim boundaries
- [TYPED] EIP-712 typed structured signing — Structured signing/domain fields; application replay protections remain separate.
- [PERMIT] ERC-2612 signed approvals — Permit allowance authorization with owner, spender, value, nonce and deadline.
- [ETH_TX] Ethereum transactions — Signed instructions and inclusion distinct from submission.
Documentation explains mechanisms. Historical records retain their declared source class. Source inspection is not independent editorial acceptance.
Visual specifications
P03-L03-V01
Distinguish message signing from asset-changing instructions
ILLUSTRATIVE sanitized offline cards, not a live screen
Permissions matrix: caption/type/scope/execution evidence. Highlight R2 Permit/SIM-S/500 despite login caption. All cards stop before signing; no usable payload or transaction button.
Permissions matrix: caption/type/scope/execution evidence. Highlight R2 Permit/SIM-S/500 despite login caption. All cards stop before signing; no usable payload or transaction button.
390px stacked cards/text equivalent; 768px/desktop render acceptance pending
RTL prose; identifiers isolated LTR; factual edge directions preserved
FIX-P03-L03
Sources & claim boundaries
TYPED · PRIMARY_DOCUMENTATION
EIP-712 typed structured signing
- Supported claim
- Structured signing/domain fields; application replay protections remain separate.
- Verification boundary
- Primary source inspected for associated mechanism or attributed statement; no authentication of illustrative data.
- Checked at
- 2026-10-01
https://eips.ethereum.org/EIPS/eip-712
PERMIT · PRIMARY_DOCUMENTATION
ERC-2612 signed approvals
- Supported claim
- Permit allowance authorization with owner, spender, value, nonce and deadline.
- Verification boundary
- Primary source inspected for associated mechanism or attributed statement; no authentication of illustrative data.
- Checked at
- 2026-10-01
https://eips.ethereum.org/EIPS/eip-2612
ETH_TX · PRIMARY_DOCUMENTATION
Ethereum transactions
- Supported claim
- Signed instructions and inclusion distinct from submission.
- Verification boundary
- Primary source inspected for associated mechanism or attributed statement; no authentication of illustrative data.
- Checked at
- 2026-10-01
https://ethereum.org/en/developers/docs/transactions/
Dataset provenance
id: FIX-P03-L03
dataStatus: ILLUSTRATIVE
source: Original embedded offline cards; no real observations
observedAt: null
timeBasis: SIM/T markers are fictional order, not UTC timestamps