Summary
When attempting to connect KeepKey Vault (v1.2.16) to a Solana dApp (e.g. jup.ag) via WalletConnect QR code, nothing happens — the session is silently rejected.
Steps to Reproduce
- Open jup.ag → Connect Wallet → WalletConnect
- Copy the WalletConnect URI / scan QR code into KeepKey Vault
- Nothing happens — no approval prompt, no error, no session established
Root Cause
The onSessionProposal handler in the WalletConnect manager only registers eip155 (EVM) in supportedNamespaces:
const namespaces = buildApprovedNamespaces({
proposal: proposal.params,
supportedNamespaces: {
eip155: {
chains: SUPPORTED_CHAINS,
methods: SUPPORTED_METHODS,
events: SUPPORTED_EVENTS,
accounts
}
// ← no solana namespace
}
});
Jupiter proposes a solana namespace. buildApprovedNamespaces throws because it cannot match the required namespace, the catch block fires, and the session is silently rejected. The user sees nothing.
Expected Behavior
Vault should support the solana WalletConnect namespace since:
- KeepKey firmware supports Solana (Experimental policy enabled)
POST /addresses/solana successfully returns a Solana address
- Solana address derivation works end-to-end on the device
Proposed Fix
Add a solana namespace to supportedNamespaces in the session proposal handler:
supportedNamespaces: {
eip155: {
chains: SUPPORTED_CHAINS,
methods: SUPPORTED_METHODS,
events: SUPPORTED_EVENTS,
accounts: evmAccounts
},
solana: {
chains: ['solana:mainnet'],
methods: ['solana_signTransaction', 'solana_signMessage'],
events: [],
accounts: [`solana:mainnet:${solanaAddress}`]
}
}
Environment
- Vault version: 1.2.16
- Firmware: 7.14.0
- Experimental policy: enabled
- OS: macOS
- dApp tested: jup.ag
Summary
When attempting to connect KeepKey Vault (v1.2.16) to a Solana dApp (e.g. jup.ag) via WalletConnect QR code, nothing happens — the session is silently rejected.
Steps to Reproduce
Root Cause
The
onSessionProposalhandler in the WalletConnect manager only registerseip155(EVM) insupportedNamespaces:Jupiter proposes a
solananamespace.buildApprovedNamespacesthrows because it cannot match the required namespace, the catch block fires, and the session is silently rejected. The user sees nothing.Expected Behavior
Vault should support the
solanaWalletConnect namespace since:POST /addresses/solanasuccessfully returns a Solana addressProposed Fix
Add a
solananamespace tosupportedNamespacesin the session proposal handler:Environment