MetaMask / MetaMask/metamask-mobile

[Bug]: EIP-681 QR code scans no longer register after scan button UI relocation (iOS)

Open
#27,896 2 comments 0 reactions 0 assignees View on GitHub
external-contributor INVALID-ISSUE-TEMPLATE regression-prod-7.69.1 team-mobile-ux type-bug
Dominant language
TypeScript
Stars
3k
Forks
1.7k
Avg merge
1d 14h
Merged PRs (30d)
669

Description

**Describe the bug**

EIP-681 QR codes that previously triggered a "Transfer request" screen now fail to register when scanned. Scanning worked previous when the scan button was located at the top of the main wallet UI (now moved one menu level down). Since that change, the scanner opens but does not parse EIP-681 URIs.

I'm building an app that generates these QR codes (USDC transfers on Base). Same QR codes, same format, worked before the update, and now they don't.

**Expected behavior**

Scanner should parse the EIP-681 URI and display the "Transfer request" confirmation screen (token, amount, network, recipient, fees).

**Steps to reproduce**

1. Open MetaMask Mobile v7.69.1 on iOS
2. Tap the scan button from the main wallet screen
3. Scan a valid EIP-681 QR code (e.g., ethereum:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913@8453/transfer?address=0x65F6BeC9862e793094B54e6f50bb236430C4b513&uint256=5e-1 - QR code for this URI attached above)
4. Scanner does not register the code

Image

**Error messages or log output**

```shell
None
```

**Where was this bug found?**

Live version (from official store)

**Version**

7.69.1

**Build number**

4015

**Build type**

None

**Device**

iPhone 15 Pro Max

**Operating system**

iOS

**Additional context**

Running: iOS 26.3.1 (a)

Possibly related: #26715 - the multichain redesign in v7.68.0 broke the "Request Payment" EIP-681 generation flow. This may be the other side of that same regression, where the scanner no longer routes EIP-681 URIs through the parser.

**Severity**

High impact for developers building payment flows on EIP-681. Completely blocks scan-to-pay functionality - no workaround available. Visible to all users who attempt to scan an EIP-681 QR code.

Contributor guide

Open the contributing guide

Research direction

Reproduce the scan flow on MetaMask Mobile v7.69.1 for iOS using the EIP-681 URI and inspect the scan-button relocation and parser routing. Compare the current behavior with the expected Transfer request confirmation screen, ensuring the URI registers and displays the token, amount, network, recipient, and fees.

Written by the indexing model from the issue text.

Assessment

Tech stack
ios, react-native, typescript
Domain
blockchain, mobile
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.