Add Openfort as a third-party signer#1140
Add Openfort as a third-party signer#1140emauja wants to merge 2 commits intoalchemyplatform:mainfrom
Conversation
Add documentation for using Openfort's embedded wallet as a signer with Alchemy Smart Wallets. Follows the same structure as the existing Privy integration guide with React and JavaScript tabs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7abdd8bf64
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| getSigner(); | ||
| }, [openfort, signer]); |
There was a problem hiding this comment.
Retry signer initialization when auth state changes
If useOpenfortSigner mounts before the user finishes the Openfort login flow, getEthereumProvider() can return nothing and leave signer unset. Because this effect only depends on openfort and signer, it never reruns when the embedded wallet state later flips to READY, so the example can get stuck showing "Loading signer..." after a successful login. Include auth/readiness state in the dependency chain or reset the signer when login state changes.
Useful? React with 👍 / 👎.
| // Authenticate the user (e.g., via email OTP) | ||
| await openfort.auth.requestEmailOTP({ email: "user@example.com" }); | ||
| // await openfort.auth.verifyEmailOTP({ email, code }); | ||
|
|
||
| // Get the EIP-1193 provider from Openfort |
There was a problem hiding this comment.
Verify the OTP before using the embedded wallet
requestEmailOTP() only sends the one-time code; it does not authenticate the user. In this JavaScript sample the next lines immediately call getEthereumProvider() and eth_requestAccounts, so anyone following the email-OTP flow verbatim will try to use the signer before a session exists and the transaction example cannot succeed. The verification step (or a different completed auth flow) needs to happen before accessing the provider.
Useful? React with 👍 / 👎.
…rt-js The React tab was incorrectly using @openfort/openfort-js with a manually built React context. Now uses the proper @openfort/react SDK with: - OpenfortProvider + wagmi + React Query provider setup - useUser, useUI, useSignOut hooks for authentication - useWalletClient from wagmi for signer access - getDefaultConfig for wagmi configuration The JavaScript tab remains unchanged, correctly using @openfort/openfort-js with its imperative/class-based API. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Summary
docs.yml) to include the Openfort page under Third-party signersDetails
The new page covers:
@openfort/openfort-jsalongside@alchemy/wallet-apisWalletClientcreateSmartWalletClientfor Smart Wallet transactionsTest plan
/docs/wallets/third-party/signers/openfort🤖 Generated with Claude Code