Solana signInWithWeb3 fails on Ledger hardware wallets
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 30/100
- Issue type
- Bug
- Clarity
- Needs clarification
- Activity status
- Quiet
- Tech stack
- javascript, next.js
- Domain
- authentication
Research direction
Start at the signInWithWeb3({ chain: "solana" }) entry point and reproduce the failure with Phantom or Jupiter connected to a Ledger device. Trace the SIWS signing flow to determine where the message stops reaching the hardware wallet; done requires a supported authentication path that succeeds for Ledger-backed Solana accounts, or a clearly defined fallback.
Written by the indexing model from the issue text.
Description
Bug report
- I confirm this is a bug with Supabase, not with my own application.
- I confirm I have searched the Docs, GitHub Discussions, and Discord.
Describe the bug
There is still a blocking issue with Solana Web3 auth (signInWithWeb3) when using Ledger hardware wallets.
Even though issue #2092 was addressed and the related PR was merged, the fix did not fully resolve the problem.
The core issue is that the SIWS flow relies on off-chain message signing, and Ledger’s Solana app does not reliably handle this path when accessed through Phantom/Solflare. The message never reaches the hardware wallet, so authentication always fails for Ledger-backed accounts.
This means that any Solana user using a Ledger wallet cannot authenticate through Supabase, even after the merged fix.
I reached out to the author of the original PR on Twitter — he confirmed that additional issues likely remain, but hasn’t followed up.
This is a significant problem because most high-value users, teams, and institutional Solana accounts use hardware wallets. Right now they are completely unable to log in.
To Reproduce
- Set up a Solana wallet using Phantom or Jupiter wallet with a Ledger device.
- Implement supabase.auth.signInWithWeb3({ chain: "solana" }) in a Next.js / JS project.
- Attempt to sign in with the Ledger-backed wallet.
- The SIWS message never appears on the Ledger device; the wallet rejects the request; authentication fails.
This reproduces consistently across browsers and environments.
Expected behavior
I expected authentication to work for Ledger users after the fix for #2092.
Instead, SIWS still fails because message signing never reaches the hardware wallet.
Ideally, you should either:
- Continue refining SIWS to work with hardware wallets, or
- Provide a fallback mechanism for wallets that do not support off-chain message signing (e.g., a minimal transaction-based signature flow or another supported signing method).
System information
- OS: all
- Browsers: all
- supabase-js: latest
- Node.js: all
Additional context
- This is not an issue with my application — it reproduces with clean setups.
- The fix for #2092 improved part of the flow but did not solve the Ledger case.
- Ledger has stated that off-chain message signing issues are not likely to be resolved quickly on their end, so this currently blocks a large segment of Solana users. This makes this feature, signInWithWeb3, a no-go for production environments
- Dominant language
- Go
- Stars
- 2.6k
- Forks
- 764
- Avg merge
- 5d 3h
- Merged PRs (30d)
- 39
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from supabase/auth
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 1/5 Under an hour Newbie friendliness 86/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Similar issues
-
optimization optimization:agents-md-curator
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
githubnext/gh-aw-cao#13143 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
blinklabs-io/bursa#904 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
yanet-platform/ipfw-go#129 ·
-
bug confmap/provider/googlesecretmanagerprovider needs triage
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
open-telemetry/opentelemetry-collector-contrib#51273 · 2 comments ·
-
bug: AI Gateway client filter lists "Unknown" twice when NULL and literal Unknown clients coexist Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 90/100