Skip to content

[tracking] prepare_eip7702_authorization β€” gated on Ledger Live + WalletConnect 7702 primitive supportΒ #481

Description

@szhygulin

Status: 🟑 Tracking β€” gated on Ledger Live + WalletConnect 7702 primitive support

What needs to be true to unblock:

  • Ledger Live routes 7702 signing requests to the device over WalletConnect
  • WalletConnect 2.x exposes a standardized 7702 primitive in the eip155 namespace β€” either a dedicated eth_signAuthorization / wallet_signEIP7702Authorization method, OR ERC-5792 wallet_sendCalls carrying setCode authorizations as part of a batched-calls payload

Either path closes the gap; the wallet_sendCalls route is the more likely one (see #505 for why).

What's verified today (2026-04-28):

  • βœ“ Ledger Ethereum app firmware supports 7702 authorization + type-4 tx signing since v1.17.0 (2025-05-05). Device-firmware implementation allowlist enforced at the hardware layer (EF simple7702 only as of v1.20.0; MetaMask Gator was added in v1.18 then removed 2025-12-02).
  • βœ— Ledger Live β†’ device routing of 7702 over WC: vendor's own statement: "only the simple 7702 contract is compatible with your Ledger signer at the device level β€” and it is not yet available to use via Ledger Live" β€” Pectra announcement, 2025-05-07. No later vendor reversal found.
  • βœ— WalletConnect 2.x has no standardized 7702 RPC method in the eip155 namespace (WC namespaces spec).
  • βœ— viem signAuthorization is local-key-only (viem docs) β€” no JSON-RPC bridge for external signers like WC.

Verification details: rnd verification comment.

Design decisions already captured β€” do NOT redo at unblock time:

  • #504 β€” Curated MCP-side / skill-side implementation allowlist is moot. Device firmware enforces the allowlist at the strongest possible layer (hardware; can't be bypassed by compromised MCP / agent / skill).
  • #505 β€” Build against ERC-5792 wallet_sendCalls, not against bare eth_signAuthorization. Industry direction; what Ledger Live is most likely to expose first.
  • Project memory project_ledger_live_eip7702_wc.md + feedback_no_curated_allowlists_for_security.md β€” for high-blast-radius security flows, design around user echo-back + agent-assisted verify + 2nd-LLM cross-check, not whitelisted contract sets.
  • Skill v8 Β§16 unconditional refusal is the load-bearing defense until this lands. Inv Add Base network support (chainId 8453)Β #14 verify-block (#460) still applies once we ship β€” even with a hardware allowlist, the user re-states the implementation address before signing.

How to close this issue:

  1. Re-verify the precondition with the rnd skill: recheck Ledger Live release notes (https://support.ledger.com/article/What-s-new-in-Ledger-Live), Ledger ETH app CHANGELOG (https://github.com/LedgerHQ/app-ethereum/blob/develop/CHANGELOG.md), WC eip155 namespace spec, and any new viem JSON-RPC bridge for signAuthorization.
  2. If unblocked: design per [security] EIP-7702 builder should target ERC-5792 wallet_sendCalls, not bare eth_signAuthorizationΒ #505 (ERC-5792-shaped tool, not bare authorization emitter), trust the device-firmware allowlist per [security] EIP-7702 implementation allowlist is enforced in device firmware β€” MCP/skill allowlists are mootΒ #504, implement, ship, and close this issue along with [security] EIP-7702 implementation allowlist is enforced in device firmware β€” MCP/skill allowlists are mootΒ #504 + [security] EIP-7702 builder should target ERC-5792 wallet_sendCalls, not bare eth_signAuthorizationΒ #505.
  3. If still blocked: no action β€” keep waiting.

Original spec (filed 2026-04-28 AM)

Tracking issue for the MCP-side prepare_eip7702_authorization builder, paired with the eventual skill v9 release that introduces the curated implementation allowlist. Companion to #455 (the design issue) and the v8 forward-looking refusal in vaultpilot-security-skill#19 Β§16.

Why this is filed now

Skill v8 ships Β§16 saying "EIP-7702 setCode REFUSED UNCONDITIONALLY until skill v9 ships an implementation allowlist." Without an MCP-side implementation tracking issue, the design (#455) sits in skill text with no MCP-side counterpart on the roadmap.

Scope (as originally proposed β€” superseded by #504, #505 above)

Build prepare_eip7702_authorization(implementation, delegator, chainId, nonce) returning an unsigned authorization tuple per EIP-7702. Safeguards baked in:

  1. Curated implementation allowlist β€” superseded: device firmware enforces it ([security] EIP-7702 implementation allowlist is enforced in device firmware β€” MCP/skill allowlists are mootΒ #504).
  2. chain_id β‰  0 enforcement β€” hard refuse on chain_id = 0 (cross-chain replay risk too large to mitigate any other way). STILL APPLIES.
  3. Paired revocation tuple β€” emitted alongside install so the user can revert. STILL APPLIES.
  4. Inv Auto-discover Morpho Blue positions via event-log scanΒ #12.5 hard-trigger β€” second-LLM check is a precondition, not opt-in. STILL APPLIES.
  5. Out-of-band re-statement β€” user pastes the implementation address back before signing, defeating agent-side address swaps. STILL APPLIES (Inv Add Base network support (chainId 8453)Β #14).

Source

Adversarial smoke-test 2026-04-28 scripts 139, 140. See #455 for the full design proposal.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesttool_gapCategory: an existing tool is missing a parameter or flowtrackingGated on an external precondition; not actionable today

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions