Skip to content

Conversation

@kduprey
Copy link
Contributor

@kduprey kduprey commented Dec 2, 2025

Description

This adds support for C2 users to manage their Solana Web3 wallet connection via the <UserProfile /> component, ensuring that this new feature has a full E2E usage support. This will render the available wallet provider connections via a second action step, as seen with adding a passkey flow via the <UserProfie />.

USER-3772

Checklist

  • pnpm test runs as expected.
  • pnpm build runs as expected.
  • (If applicable) JSDoc comments have been added or updated for any package exports
  • (If applicable) Documentation has been updated

Type of change

  • 🐛 Bug fix
  • 🌟 New feature
  • 🔨 Breaking change
  • 📖 Refactoring / dependency upgrade / documentation
  • other:

Signed-off-by: Kenton Duprey <kenton@clerk.dev>
Core Changes
- Add `AuthenticateWithSolanaParams` type for Solana-specific authentication
- Extend `authenticateWithWeb3` to support Solana wallets with `walletName` parameter
- Add `authenticateWithSolana` method to `SignInResource` for dedicated Solana auth
- Require `walletName` for Solana provider to enable multi-wallet selection
- Split Ethereum and Solana provider detection into separate modules

Updated types
- Add `web3_solana_signature` to `Web3Strategy` union type
- Add `walletName` field to `Web3SignatureFactor` type
- Update `AuthenticateWithWeb3Params` to include optional `walletName`
- Removed unused Wallet Standard types in `web3.ts` (moved to library imports)

Dependencies
- Add `@solana/wallet-standard@^1.1.4` for Solana wallet types
- Add `@wallet-standard/core@^1.1.1` for wallet registry
- Add `@wallet-standard/react@^1.0.1` for React integration

Signed-off-by: Kenton Duprey <kenton@clerk.dev>
… selectable wallet support

- Adds `web3_solana_signature` strategy for Sign In and Sign Up, introduces a Solana wallet selection route (`choose-wallet`), and integrates Solana wallet-standard APIs for identifier and signature generation.
- Add `@solana/wallet-standard`, `@solana/wallet-adapter-react`, `@solana/wallet-adapter-base`, `bs58` libs
- Implement `injectedWeb3SolanaProviders.ts` singleton with feature/type guards within `solana:signMessage`, connect flow
- Update `web3.ts` to fetch Solana identifier via `StandardConnect` and sign messages via `SolanaSignMessage`.
- Add `authenticateWithSolana` to `SignIn`, `SignUp`, and expose through `IsomorphicClerk` & `Clerk` interface.
- Extend `SignInResource`, `SignUpResource`, introduce `SignUpAuthenticateWithSolanaParams`, thread optional `walletName`.
- Support `web3_solana_signature` in sign-in and sign-up start machines.
- Add `SignInFactorOneSolanaWalletsCard` component and `choose-wallet` route; extend `FlowMetadata` with `choose-wallet`.
- Add `getSolanaIdentifier`, `generateSignatureWithSolana`, propagate `walletName` into web3 auth flow
- if named wallet not found, attempt `window.solana` before failing gracefully.

Signed-off-by: Kenton Duprey <kenton@clerk.dev>
…ents

Signed-off-by: Kenton Duprey <kenton@clerk.dev>
Signed-off-by: Kenton Duprey <kenton@clerk.dev>
… methods

Signed-off-by: Kenton Duprey <kenton@clerk.dev>
…l error handling and strict types

Signed-off-by: Kenton Duprey <kenton@clerk.dev>
… logic

Signed-off-by: Kenton Duprey <kenton@clerk.dev>
Signed-off-by: Kenton Duprey <kenton@clerk.dev>
… authentication methods

Signed-off-by: Kenton Duprey <kenton@clerk.dev>
…nal walletname

Signed-off-by: Kenton Duprey <kenton@clerk.dev>
… package.json and pnpm-lock.yaml

Signed-off-by: Kenton Duprey <kenton@clerk.dev>
…ck.yaml

Signed-off-by: Kenton Duprey <kenton@clerk.dev>
…andling

Signed-off-by: Kenton Duprey <kenton@clerk.dev>
…y to <UserProfile />

Signed-off-by: Kenton Duprey <kenton@clerk.dev>
@kduprey kduprey requested a review from chanioxaris December 2, 2025 07:19
@kduprey kduprey self-assigned this Dec 2, 2025
@changeset-bot
Copy link

changeset-bot bot commented Dec 2, 2025

⚠️ No Changeset found

Latest commit: 23172d5

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel
Copy link

vercel bot commented Dec 2, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
clerk-js-sandbox Ready Ready Preview Comment Dec 2, 2025 7:19am

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 2, 2025

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch kenton/user-3772-add-ability-for-users-to-connect-a-solana-enabled-wallet-userprofile

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants