Skip to content

Investigation: Viem Breaking Change in WebAuthn Types (Issue #188)#190

Closed
jeffsmale90 wants to merge 1 commit intomainfrom
cursor/viem-breaking-change-investigation-3ba2
Closed

Investigation: Viem Breaking Change in WebAuthn Types (Issue #188)#190
jeffsmale90 wants to merge 1 commit intomainfrom
cursor/viem-breaking-change-investigation-3ba2

Conversation

@jeffsmale90
Copy link
Collaborator

@jeffsmale90 jeffsmale90 commented Mar 23, 2026

Summary

This PR documents the investigation into the breaking change in viem that causes TypeScript errors in smart-accounts-kit as described in #188.

Root Cause

The breaking change was introduced in ox@0.6.5 on November 24, 2025 via commit d11e1fbd.

The Breaking Change

The commit titled "feat: modify WebAuthnP256.verify to work with minimal metadata" made the following fields in SignMetadata optional:

  • challengeIndex?: number | undefined (was: challengeIndex: number)
  • typeIndex?: number | undefined (was: typeIndex: number)
  • userVerificationRequired?: boolean | undefined (was: userVerificationRequired: boolean)

This change propagated to viem when it updated its ox dependency, causing type incompatibilities in smart-accounts-kit.

Timeline

  1. July 24, 2024: Viem adds Account Abstraction support with webauthn-p256@0.0.5 (PR #2510)
  2. January 16, 2025: Viem migrates from webauthn-p256 to ox@0.6.0 (PR #3232)
  3. November 24, 2025: Ox makes WebAuthn fields optional in version 0.6.5
  4. After Nov 24, 2025: Viem updates to ox@0.6.5+, breaking change affects downstream users

Specific PR That Introduced the Breaking Change

Repository: wevm/ox
Commit: d11e1fbd2554194a67d37c4da34dcf9f749e3698
Date: November 24, 2025
Author: @jxom

Documentation

See INVESTIGATION_RESULTS.md for complete details including:

  • Full timeline of changes
  • Detailed explanation of the type changes
  • Recommended solutions for smart-accounts-kit

Related

Fixes #188

Slack Thread

Open in Web Open in Cursor 

Investigated the breaking change in viem that affects #188.

Key findings:
- Breaking change introduced in ox@0.6.5 on Nov 24, 2025
- Commit d11e1fb made challengeIndex, typeIndex, and userVerificationRequired optional
- This change propagated to viem through its ox dependency update
- Affects smart-accounts-kit's WebAuthn type expectations

The specific PR that introduced the breaking change:
wevm/ox@d11e1fb

Co-authored-by: jeffsmale90 <jeffsmale90@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Viem dependency specification includes breaking changes

2 participants