Skip to content

Wallets declare in one place what they can sign on each network - #206

Draft
hippocampusSK wants to merge 5 commits into
developfrom
fix/api-4032-honest-wallet-signing-capabilities
Draft

hippocampusSK wants to merge 5 commits into
developfrom
fix/api-4032-honest-wallet-signing-capabilities

Conversation

@hippocampusSK

@hippocampusSK hippocampusSK commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Each wallet now lists, in one place and network by network, every kind of signing it supports.
Nothing changes in how any wallet behaves: the declared values are the same as before.
It needs the matching SDK release before it can ship.

https://linear.app/swapkit/issue/API-4032

hippocampusSK and others added 4 commits October 21, 2026 11:11
WalletConnect EVM now implements signTypedData (eth_signTypedData_v4)
and signMessage (personal_sign), and exposes each only on chains whose
session grants that method. Signing methods that always threw are now
undefined: WalletConnect NEAR, KeepKey extension and Vultisig UTXO,
Noir Wallet Zcash and Ledger Zcash signTransaction. A source-level test
fails if a signing method is reintroduced as a throwing stub.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C6HypUJGoDjyQe2YykVdBg
Keep the scope to hiding signing methods that always threw. WalletConnect
EVM keeps its original signer; signTypedData is set to undefined on the
wallet object instead of being implemented, and signMessage is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C6HypUJGoDjyQe2YykVdBg
Each connector now passes signingSupport to createWallet, listing the EVM
chains where its signTypedData is a real implementation today. WalletConnect
declares nothing and no connector declares btcMessage. No signing behaviour
changes.

Requires the @swapkit/wallet-core and @swapkit/helpers release that adds
signingSupport.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C6HypUJGoDjyQe2YykVdBg
…clarations

Reverts a31d50b and a9ab326: signing methods, the UTXO signTransaction
helper and the WalletConnect connector are back to their develop
behaviour, and the signing-method guardrail test and its changeset are
removed. The per-chain signingSupport declarations, their test and
their changeset stay; the changeset now states that no wallet behaviour
changes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C6HypUJGoDjyQe2YykVdBg
@hippocampusSK hippocampusSK changed the title Wallets only offer signing actions they can really perform Wallets declare which networks they can sign typed messages on Oct 21, 2026
Connectors now declare direct, typed data and Bitcoin message signing
per chain in one signingSupport map and no longer pass
directSigningSupport. The direct values are copied unchanged from
directSigningSupport and the typed data values are unchanged, so the
resolved signingSupport, directSigningSupport and supportsDirectSigning
stay identical for every connector and chain.

WalletConnect keeps its session check and now passes the result as
signing.direct instead of supportsDirectSigning.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C6HypUJGoDjyQe2YykVdBg
@hippocampusSK hippocampusSK changed the title Wallets declare which networks they can sign typed messages on Wallets declare in one place what they can sign on each network Oct 21, 2026
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.

1 participant