Course page
Understand What You Sign1 of 14
Lesson 1.1

The button label is not the transaction

UTXO ACADEMY / CONCEPT MODELCALLDATADECODE INTENTVISUAL AID · NOT A SECURITY VERDICT
Technical chapter

The button label is not the transaction

Deep technical lesson
01
Mental model

On EVM chains, calldata specifies which function is called and with which parameters. A UI can say swap while the payload authorizes a different contract or action. Transaction security reconstructs the method and parameters from the payload rather than trusting the page label.

This concept matters because Decode the selector and parameters.

Calldata is the executable request; the frontend description is merely a claim about that request.

02
What actually happens

Decode selector and parameters before trusting the UI action label.

At protocol and execution level, inspect selector and arguments and target and native value and nested execution. Protocol identifiers remain untranslated because they are part of the technical payload.

selector

calldata[0:4]

arguments

ABI-decoded parameters

target

transaction.to

native value

transaction.value

nested execution

multicall / router subcalls

03
Failure surface

A swap button can submit approve(), transferFrom() or arbitrary multicall logic while looking visually normal.

The practical consequence is that Compare decoded action with stated user intent. Unknown is not equivalent to safe.

  • UI intent != decoded method
  • unknown selector
  • unexpected recipient
  • hidden native value
  • nested call changes authority
04
Decision standard

Block or review whenever decoded behavior materially diverges from declared intent.

The practical consequence is that Compare decoded action with stated user intent.

Escalate when evidence is contradictory, incomplete or the consequence exceeds routine policy.

05
Verification procedure

Verify the request through independent evidence before irreversible authorization.

  1. 01

    capture exact payload

  2. 02

    resolve selector / ABI

  3. 03

    decode every material parameter

  4. 04

    trace nested calls when present

  5. 05

    compare decoded action with user intent

06
Required analyst output

Record the facts, assumptions, unknowns and decision so another analyst can reproduce the review.

Decode the selector and parameters. and Unknown calldata deserves more scrutiny, not blind confirmation.

Required analyst outputdecoded-intent record + mismatch list
The button label is not the transaction
LESSON VISUALThe button label is not the transactioncalldata intent
The button label is not the transaction
REAL-WORLD CONTEXT · SIGNATURE REVIEW ENVIRONMENTThe button label is not the transactionCONCEPT → REAL ENVIRONMENT → OPERATIONAL DECISION
VISUAL MODEL / REQUEST FLOWcalldata-intent
N01N02N03N04N05N06REQUEST FLOWThe button label is not the transaction
CONCEPT → EVIDENCE → FAILURE MODE → VERIFICATION
Technical workbook

Analyst objective

Decode the selector and parameters.

Mechanics
selectorcalldata[0:4]
argumentsABI-decoded parameters
targettransaction.to
native valuetransaction.value
nested executionmulticall / router subcalls
Failure signals
  1. 01

    UI intent != decoded method

  2. 02

    unknown selector

  3. 03

    unexpected recipient

  4. 04

    hidden native value

  5. 05

    nested call changes authority

Verification procedure
  1. 01

    capture exact payload

  2. 02

    resolve selector / ABI

  3. 03

    decode every material parameter

  4. 04

    trace nested calls when present

  5. 05

    compare decoded action with user intent

Reasoning chain
  1. 01

    facts → material evidence

  2. 02

    evidence → consequence / authority

  3. 03

    consequence → explicit decision + next action

Required deliverabledecoded-intent record + mismatch list
Protocol walkthrough

Follow the security decision path

calldata / intent
01Observe
  • selector: calldata[0:4]
  • arguments: ABI-decoded parameters
02Trace
  • target: transaction.to
  • native value: transaction.value
  • nested execution: multicall / router subcalls
03Challenge
  • UI intent != decoded method
  • unknown selector
  • unexpected recipient
04Verify
  • capture exact payload
  • resolve selector / ABI
  • decode every material parameter
05Output
  • decoded-intent record + mismatch list
Authority surfaceselector · arguments · target
Failure conditionUI intent != decoded method
Applied case file
decode-calldata
CASE / calldata-intent
ui ActionSwap 1 ETH
method Selector0x095ea7b3
decoded Methodapprove(address,uint256)
spender0xNew...
amountMAX_UINT256
native Value0
Analyst task

Before answering the checkpoint, identify the authority being granted, the trust boundary that can fail, and the consequence that becomes irreversible.

Evidence map

Organize before you decide

Separate identity, authority, execution and context before reaching a security decision.

01
Identity

Who or what is requesting, receiving or representing authority?

02
Authority

What capability can be granted, retained or exercised?

spender0xNew...
03
Execution

What will the payload, route or system actually do?

method Selector0x095ea7b3
decoded Methodapprove(address,uint256)
amountMAX_UINT256
native Value0
04
Context

Which surrounding facts can materially change the decision?

ui ActionSwap 1 ETH
Field exercise

Produce an analyst-ready finding

Local-only analyst record

Do not answer from memory. Use the case, protocol fields and verification procedure above to write a reproducible finding.

Focusselector · arguments · target
Failure signalUI intent != decoded method
Verify firstcapture exact payload
Deliverabledecoded-intent record + mismatch list
Completion criteria
  • Cites material evidence, not UI appearance.
  • Names the authority, state transition or consequence.
  • Provides a reproducible next action or decision.
Security notes
  1. 01

    Decode the selector and parameters.

  2. 02

    Compare decoded action with stated user intent.

  3. 03

    Unknown calldata deserves more scrutiny, not blind confirmation.

Analyst notebook

Build your evidence memo

Local-only learning record

Record your reasoning before the checkpoint. Finish with an explicit decision or next action. Notes stay on this device.

LOCAL STORAGE
Field exercise

Develop all three sections before completion.

Move from button labels to the actual destination, value and method encoded in the request.

Position in the course
1 of 14
Finishing this opens
Destination and value are the first invariants
Progress
0/21 · 0%

Course content

Module 01Transaction intent & calldata
Module 02Token approvals & spend authority
Module 03EIP-712, Permit & Permit2
Module 04Intent reconstruction & decision
AssessmentAssessment