Research / Security

ERC-20 Approvals for Stock Tokens: Allowances, Permissions and Safer UX

An approval does not move a token. It authorizes a spender to move up to an allowance later, which makes spender identity and scope critical.

August 4, 20268 min readArchLiquid Research
Illustrative ERC-20 allowance example where 125 approved units minus 100 transferred units leaves 25 units.
Key takeaways

Key takeaways

  • approve sets a spender allowance; transferFrom later consumes that allowance and can fail for token-specific policy reasons.
  • Interfaces should show the verified spender, exact amount, current allowance and whether a broader approval is being requested.
  • Canonical token identity, simulation and post-transaction allowance reads are essential for RWA workflows.
Worked allowance lifecycleIllustrative example · Contract check

Approve 125 units, transfer 100, leave 25

In the basic ERC-20 model, a holder approves a verified locker for 125 units. A successful transferFrom of 100 units leaves a 25-unit allowance unless the token implements different documented behavior.

01
Verify token + spender
02
Approve amount
03
Spender transfers
04
Reconcile allowance
Initial allowance
0

Read owner-to-spender allowance on the active chain.

Approval
125 units

Hypothetical exact bounded approval.

transferFrom
100 units

Spender moves the approved token amount.

Remaining
25 units

Read again after the mined transfer receipt.

Illustrative values. Tokens can add transfer controls and applications must handle false returns or reverts correctly.

Source: ERC-20 token standard (Ethereum Improvement Proposals).

Approval and transfer are different actions

The ERC-20 standard defines approve to set how much a spender may withdraw from an owner's account. The spender later calls transferFrom. An approval transaction can succeed without moving any balance, and the user's intended deposit remains incomplete until the second transaction is mined.

Interfaces should show this sequence before the first signature. After approval, read the confirmed allowance and proceed only if account, chain, token and spender still match. Mobile wallet returns and chain-change events make that revalidation especially important.

Verify both sides of the permission

A token name and symbol are not identity. Resolve the stock token from an issuer registry for the active chain and confirm live code. Resolve the spender from the protocol's release manifest. A malicious interface can request a real token approval for an attacker-controlled spender.

Display checksummed addresses or a clear expansion control beside human labels. If a proxy is the intended spender, explain that the allowance remains attached to the proxy address while its implementation may change under an admin policy.

Bound allowances to the intended action

An exact approval limits the immediate amount a compromised spender can transfer, though repeated use requires new approvals. An unlimited approval reduces transaction friction but creates persistent exposure. The application should explain the choice rather than silently requesting the largest integer.

Existing nonzero allowances also need care because the ERC-20 specification discusses an allowance-change attack pattern and recommends user-interface mitigation. Some tokens require setting allowance to zero before changing it. Support should be based on observed contract behavior and simulation, not a universal assumption.

RWA tokens can add transfer policy

A stock token may implement pauses, eligibility lists, freezes or jurisdiction controls beyond the base ERC-20 interface. A sufficient allowance does not guarantee transferFrom will succeed. The caller should simulate the exact transfer and surface a meaningful restriction state before asking for gas.

Those policies can change under issuer governance. Applications need event monitoring and clear failure handling. They should not encourage repeated approvals when the real blocker is recipient eligibility or a paused asset.

Reconcile and help users revoke

After the protocol action, read the mined receipt, resulting token balance and remaining allowance. A successful approval followed by a failed deposit leaves permission behind. The interface should make that state visible and offer a path to revoke or reduce it.

Security pages can list current protocol spenders by network and link their verified code and role owners. This makes wallet approval warnings actionable. Users can compare what the wallet displays with a canonical release record instead of trusting a contract label supplied by the requesting site.

Primary sources

Sources and further reading

Sources were accessed for this publication on August 4, 2026. Product terms, networks and deployments can change; check the linked primary source before acting.

  1. 01ERC-20 token standardEthereum Improvement Proposals
  2. 02Robinhood Chain contract addressesRobinhood Chain Documentation
  3. 03Statement on tokenized securitiesU.S. Securities and Exchange Commission
Continue researching

Related reading