Skip to content

Kotlin SDK rejects verifyingContract in EIP712Domain (Jackson UnrecognizedPropertyException) #14

@superbigroach

Description

@superbigroach

Hit this on the Modular Wallets Android SDK while integrating EIP-712 typed-data signing.

Steps to reproduce

val typedData = """
{
  "domain": {
    "name": "MyRelay",
    "version": "1",
    "chainId": 84532,
    "verifyingContract": "0x..."
  },
  "types": { ... },
  "primaryType": "DelegateAuthorization",
  "message": { ... }
}
"""
walletService.signTypedData(typedData)

Actual

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:
Unrecognized field "verifyingContract"
(class com.circle.modularwallets.core.models.EIP712Domain),
not marked as ignorable

Expected

verifyingContract accepted as a standard EIP-712 domain field. It's canonical per the EIP-712 spec and required for any signed typed-data that targets a specific contract.

Impact

Forces customers to bypass the SDK's signTypedData for any flow that uses verifyingContract (which is most non-trivial EIP-712 use cases). We're using a raw secp256k1 signing path with a per-device EOA in EncryptedSharedPreferences instead.

Likely fix

One-line annotation on the Kotlin EIP712Domain DTO — either @JsonIgnoreProperties(ignoreUnknown = true) at the class level or an explicit @JsonProperty("verifyingContract") field.

Context

Filed by Lucilla, currently in active integration on Base mainnet. Happy to send a minimal Android Studio repro project if useful.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions