Skip to content

Fix signTransaction feature typo#1366

Open
Michaelsulistio wants to merge 2 commits intomainfrom
fix-wallet-standard-signTransaction-feature-typo
Open

Fix signTransaction feature typo#1366
Michaelsulistio wants to merge 2 commits intomainfrom
fix-wallet-standard-signTransaction-feature-typo

Conversation

@Michaelsulistio
Copy link
Copy Markdown
Collaborator

I discovered a typo in the handleWalletCapabilitiesResult when checking for the Wallet Standard signTransaction feature.

The typo caused a bug where handleWalletCapabilitiesResult would always think the wallet did not support signTransaction, thus removing it from it's advertised #features object.

Fix:
solana:signTransactions -> solana:signTransaction

Impact:
This change will fix a long-running bug with Privy x MWA web apps (see here) where trying to sign a transaction throws an error

Error: WalletSignTransactionError: Connected wallet does not support signing transactions

This is because the Privy wallet library checks for the presence of the signTransaction feature

capabilities: Awaited<ReturnType<GetCapabilitiesAPI['getCapabilities']>>
) => {
// TODO: investigate why using SolanaSignTransactions constant breaks treeshaking
const supportsSignTransaction = capabilities.features.includes('solana:signTransactions');//SolanaSignTransactions);
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this change will break MWA 2.0 compliant wallets. the specified identifier is solana:signTransactions. that value must be checked. If we need a translation for misbehaving wallets that are hard coding an incorrect identifier we can do that, but there is a better layer for that.

Copy link
Copy Markdown
Collaborator Author

@Michaelsulistio Michaelsulistio Jan 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ahh good catch, I had assumed the strings were matched between MWA and Wallet Standard features because that's what Seed Vault Wallet was returning:

This is what SVW is returning in capabilities:
telegram-cloud-photo-size-1-5130031525758962753-y

Seems like the fix is that SVW actually needs to return the correct string solana:signTransactions (plural)

@Funkatronics
Copy link
Copy Markdown
Collaborator

I discovered a typo in the handleWalletCapabilitiesResult when checking for the Wallet Standard signTransaction feature.

There is no typo here. Always check the spec for the source of truth. the MWA specification defines this constant: solana:signTransactions

Let me explain this fully. wallet capabilities here is an MWA API, NOT a wallet-standard API. We need to be careful in the wallet-standard wallet to be sure when we are working with which. handleWalletCapabilitiesResult is handling the MWA get_capabilities API which is a pure MWA RPC call to wallet mobile app itself. And therefore should not be mixing with wallet-standard API constants

@Michaelsulistio Michaelsulistio force-pushed the fix-wallet-standard-signTransaction-feature-typo branch from 562d440 to 0fd20fe Compare January 14, 2026 01:36
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.

2 participants