Skip to content

Spike: consume ERC-7730 descriptors for clear signing #65

Description

@0xpantera

Part of #46 (PRD-02: Clear-signing v2 + message-signing intents).

Why

#46 already calls out consuming ERC-7730 descriptors where available, but we should track the spec and Clear Signing docs as a first-class implementation spike so Deckard's message-signing UX can align with the emerging descriptor format instead of inventing an incompatible local schema.

References:

Scope

  • Read ERC-7730 and the Clear Signing build docs.
  • Identify the minimum descriptor fields Deckard needs for EIP-712 typed-data clear signing.
  • Decide where descriptor lookup/parsing lives: contract model, signerd policy layer, app rendering layer, or a dedicated resolver module.
  • Define fallback behavior when no descriptor exists or descriptor validation fails: explicit blind-sign / undecodable typed-data warning, matching PRD-02: Clear-signing v2 + message-signing intents #46.
  • Add fixtures for at least one representative descriptor and one malformed/unsupported descriptor.

Questions to answer

  • Can Deckard consume descriptors directly, or do we need a normalized internal ClearSigningDescriptor representation?
  • How should descriptors be trusted, versioned, cached, and invalidated?
  • Which parts are safe to show as human-readable fields without over-trusting third-party metadata?
  • How does descriptor consumption interact with domain binding (chainId, verifyingContract) and unknown-contract warnings?

Acceptance criteria

  • Short design note or ADR describing Deckard's ERC-7730 consumption path.
  • Parser/normalizer spike with fixtures, or a documented decision to defer implementation with concrete blockers.
  • Clear UI behavior for descriptor-present, descriptor-missing, and descriptor-invalid cases.
  • Tests covering descriptor-present rendering and descriptor-invalid fallback.

Non-goals

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    securitySecurity-relevantsigningMessage/typed-data/transaction signing surface

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions