ERC-7946 primary sources — 2026-05-14
Project status in this pass
- No standalone ERC-7946 whitepaper or litepaper surfaced.
- The clearest current source of truth was the draft ERC itself, backed by the raw ERC markdown in the Ethereum ERCs repository and the linked Magicians discussion thread.
- The reviewed materials consistently frame ERC-7946 as unidirectional batch-transaction handoff infrastructure rather than as a generic wallet-connect or JSON-RPC standard.
Primary-source snapshots
1) Canonical ERC page
- URL: https://eips.ethereum.org/EIPS/eip-7946
- Key excerpt/signals:
- The subtitle describes unidirectional app-to-wallet communication for private construction of transactions.
- The abstract says the protocol allows a dApp to request a wallet to make a batch of contract calls in one atomic transaction without a two-way connection or revealing the user’s address to the requester.
- The abstract also highlights Protocol Buffers plus QR/NFC-suitable transport and the two modes: Static and Programmable.
- Why it mattered:
- This is the clearest evidence that ERC-7946 belongs in the corpus as privacy-oriented wallet request transport rather than as a simple batching helper.
2) Raw ERC markdown / what the wallet actually receives
- URL: https://raw.githubusercontent.com/ethereum/ERCs/master/ERCS/erc-7946.md
- Key excerpt/signals:
- The request is encoded as a
uwulink:URI carrying a base64-encoded protobuf message. - The top-level protobuf includes a chain ID and exactly one request type: either a static
Batchor aResolverReference. - The static call structure carries target address, optional ETH value, and optional calldata for each call.
- The request is encoded as a
- Why it mattered:
- These details show ERC-7946 is best treated as a transport envelope for atomic wallet-executed call batches, with compact encoding as a first-order design goal.
3) Raw ERC markdown / programmable resolver control plane
- URL: https://raw.githubusercontent.com/ethereum/ERCs/master/ERCS/erc-7946.md
- Key excerpt/signals:
- Programmable Mode points the wallet at a resolver contract and opaque input data.
- The resolver interface exposes
getCalls(address requester, bytes calldata data)and an error-code explanation function. - The spec says wallets should call the resolver off-chain and avoid combining the call with others such as Multicall.
- Why it mattered:
- This is the strongest evidence that ERC-7946 has a second control surface beyond transport: resolver selection and query behavior shape the eventual call batch without forcing the requester app to know the user’s address up front.
4) Canonical ERC page / motivation and trust boundaries
- URL: https://eips.ethereum.org/EIPS/eip-7946
- Key excerpt/signals:
- The motivation contrasts session-heavy connectivity with one-off QR, NFC, and offline workflows.
- It also emphasizes privacy relative to account-requesting flows and size efficiency relative to longer human-readable encodings.
- The text explicitly cites EIP-5792 and EIP-7702 as adjacent batching abstractions that still assume an active connection.
- Why it mattered:
- This frames ERC-7946 as a different architectural cut: it is not inventing batch execution from scratch, but relocating it into a compact one-way transport channel.
Working conclusion
ERC-7946 is best cataloged as a draft protocol for private, offline-friendly handoff of atomic multi-call wallet requests. Its distinctive contribution is to separate batch-request transport from two-way wallet sessions, while also separating direct static call payloads from programmable resolver-driven call generation.