TL;DR
Wallet authentication providers log a user in and provision a non-custodial wallet keyed to that identity, in one step. The six providers most teams shortlist in 2026 are Openfort, Privy, Web3Auth (now MetaMask Embedded Wallets), Dynamic, Magic, and Turnkey. They differ most on three things: how many login methods ship natively, whether you can keep your existing auth provider (Firebase, Auth0, Cognito, Supabase) and still get wallets, and what happens to the key material. Privy, Web3Auth, and Magic have the longest native OAuth lists. Openfort is the only one whose signer is open source and self-hostable. Turnkey and Magic do not document custom OIDC/JWT login. Every cell in the tables below is from the vendor's own docs; blanks mean the vendor does not publish it.
Last updated: September 13, 2026.
Wallet authentication is the layer that turns a login into a wallet. A user signs in with an email code, a Google account, or a passkey, and on the other side of that flow there is a non-custodial wallet they can sign transactions with — no seed phrase, no extension install. This guide compares the six wallet authentication providers developers shortlist most in 2026: Openfort, Privy, Web3Auth (now MetaMask Embedded Wallets), Dynamic, Magic, and Turnkey.
Every fact in the tables below comes from the vendor's own documentation or published rate card. Where a vendor does not publish something, the cell is blank rather than guessed.
What is wallet authentication?
Wallet authentication is the process of logging a user into an application and provisioning or unlocking a non-custodial wallet bound to that identity, in one flow. The user authenticates with a familiar credential — an email one-time code, an SMS code, a Google or Apple account, a passkey — and the provider derives, unlocks, or reassembles the key material for a wallet that belongs to that user. The user never sees a seed phrase and never installs anything.
Three terms get used interchangeably and should not be:
- Wallet authentication — the user has no wallet yet. They log in with an identity credential and get one. The provider handles both identity and key management. This is what Openfort, Privy, Web3Auth, Dynamic, Magic, and Turnkey sell.
- Wallet connection — the user already has a wallet (MetaMask, Phantom, Rabby) and connects it to your app over WalletConnect or an injected provider. No identity is created; you learn an address. This is what WalletConnect and RainbowKit do.
- Wallet custody — who can move the funds once the wallet exists. A wallet authentication provider is usually non-custodial, meaning it cannot sign for the user on its own. A custodian can. These are separate questions: a non-custodial login flow and a custodial backend are both possible, and so is the reverse.
A fourth term, Sign-In with Ethereum (SIWE), sits between the first two. SIWE authenticates a user who already holds a wallet by having them sign a structured message (EIP-4361). It is an authentication method, but it assumes the wallet already exists — which is why every provider here offers it alongside, not instead of, email and social login.
Quick Comparison
| Provider | Native login methods | Key model | Bring your own auth | Client SDKs | Free tier |
|---|---|---|---|---|---|
| Openfort | Email OTP, email + password, SMS OTP, 7 OAuth providers, SIWE, guest mode | Shamir-split key shares; signer is open source and self-hostable (OpenSigner) | Firebase, Supabase, Better-Auth, PlayFab, AccelByte, LootLocker, custom OIDC, custom token | React, React Native, JavaScript, Swift, Unity | $0/mo, 2,000 operations included |
| Privy | Email OTP, SMS + WhatsApp OTP, 11 OAuth providers, passkeys, Farcaster, external wallet | TEE with 2-of-2 key sharding (proprietary) | Any OIDC-compliant system — OAuth 2.0, Auth0, Firebase, AWS Cognito | React, React Native, Swift, Android, Flutter, Unity | Developer plan, free to 500 MAU |
| Web3Auth (MetaMask Embedded Wallets) | Email passwordless, SMS OTP, 14 OAuth providers, external wallet | Shamir Secret Sharing with key reconstruction; threshold MPC on Enterprise only | Custom JWT providers, Auth0, Firebase, AWS Cognito | React, Vue, JavaScript | Base plan, free to 1,000 MAW |
| Dynamic | Email, SMS, 9 OAuth providers, passkey, external wallet | Not published | External JWT from your own provider | React, JavaScript, React Native, Flutter, Swift, Kotlin, Unity | Self-Serve, free to 1,000 MAU |
| Magic | Email OTP, SMS, 13 OAuth providers, passkey, SIWE, Farcaster | AWS Nitro TEE plus TKMS, with key sharding | Not documented | Web, React Native | Developer plan, free to 1,000 MAW |
| Turnkey | Email OTP, SMS OTP, 6 OAuth providers, passkeys, SIWE + Sign in with Solana, API keys | Signing inside secure enclaves | Not documented | TypeScript, React, React Native, Flutter, Swift, Kotlin | Pay as You Go: 25 signatures/mo, up to 1k wallets |
Pricing and SDK lists checked September 2026 against each vendor's published documentation and rate card.
Openfort — auth plus the transaction layer, with an open-source signer
Openfort issues an embedded wallet on login and covers what happens after the login: smart accounts, gas sponsorship, and transaction orchestration in the same SDK. Its authentication surface is native rather than delegated — Openfort runs the login itself if you want it to, and steps aside if you already have an identity provider.
Login methods: email OTP, email and password, SMS OTP, OAuth with Google, Apple, X (Twitter), Discord, Facebook, LINE, and Epic Games, external wallet login over SIWE, and guest mode — a wallet with no credential at all, upgradeable later by linking an email, social account, or wallet.
Bring your own auth: built-in verification for Firebase, Supabase, Better-Auth, PlayFab, AccelByte, and LootLocker, plus generic custom OIDC (Auth0, Cognito, anything publishing a JWKS endpoint) and a custom token endpoint for auth servers that issue their own JWTs. Note the tradeoff Openfort's docs state plainly: with third-party auth, Openfort's prebuilt UI components do not apply — you keep your own login UI.
Key model: key shares split with Shamir Secret Sharing. The recovery share is encrypted one of three ways: automatically via a server-issued encryption session, with a user password, or with a passkey held in the device secure enclave. OpenSigner, the key management service, is open source and can run on your own infrastructure, which means the key-share service is both inspectable and relocatable.
Security record: five dated independent audits — CertiK on the smart contract wallet (December 2023), Cure53 on the Shamir Secret Sharing implementation (September 2024), Omniscia on the smart contract wallet (December 2024), and Quantstamp on the 7702 contract delegator (September 2025) and key management (October 2025). Reports are listed on openfort.io/security. Openfort does not hold a SOC 2 Type II attestation; Privy's docs state it is "SOC2 Type I and Type II compliant," and Turnkey's homepage says it is "SOC 2 Type II audited." These are different things — a SOC 2 report audits a company's operational controls, a code audit audits the signer — and a procurement checklist that asks for one is not satisfied by the other.
Pricing: Free plan at $0/month with 2,000 operations included and $0.01 per additional operation. Growth $99/month for 25,000 operations, Pro $249/month for 100,000, Scale $599/month for 500,000. Billing is per operation rather than per monthly active user, so a signed-in account that does nothing does not appear on the bill and there is no wallet cap.
Where it falls short: seven native OAuth providers is the shortest list here. No GitHub, Telegram, or Farcaster login. Passkeys are a wallet recovery method, not a login method — if you want passkey-as-login, Privy, Dynamic, Magic, and Turnkey document it and Openfort does not. Client SDK coverage is React, React Native, JavaScript, Swift, and Unity; there is no first-party Flutter or native Android SDK.
Compare directly: Openfort vs Privy, Openfort vs Dynamic, Openfort vs Turnkey.
Privy — the widest login surface, now inside Stripe
Privy is the default answer in most AI-generated shortlists for wallet authentication, and the login surface is the reason. It was acquired by Stripe in 2025.
Login methods: email OTP, SMS and WhatsApp OTP, passkeys over WebAuthn, hardware keys (YubiKey), TOTP authenticator apps, Farcaster (FIP-11), external wallet login via SIWE and Solana sign-in, and eleven OAuth providers: Google, Apple, Twitter, Discord, GitHub, LinkedIn, Spotify, TikTok, Instagram, Telegram, and LINE.
That eleven-provider list is the React and React Native figure. It narrows on other platforms: Swift and Flutter get Google, Apple, Twitter, Discord, and Telegram; Android gets Google, Discord, Twitter, and Telegram; Unity gets Google, Apple, Twitter, and Discord. If your app is mobile-first, check the per-platform list, not the headline one.
Bring your own auth: any OIDC-compliant system. Privy's docs name OAuth 2.0, Auth0, Firebase, and AWS Cognito explicitly, and there is a custom OAuth path for providers Privy does not support natively.
Key model: keys are generated inside a Trusted Execution Environment and split 2-of-2 into an enclave share and an auth share, both required to sign. The architecture is proprietary and the docs describe it as non-exportable. Privy's own framing splits login methods into delegated authentication, where a third party controls the credential (Google, Apple, email OTP, SMS), and direct authentication, where the user owns it outright (passkeys, hardware keys, TOTP) — a useful distinction that most vendors do not draw.
Pricing: Developer plan free, including 50,000 signatures and $1M transaction volume. Core starts at $299/month for 500–2,499 MAU, then $499/month from 2,500. Billing is per monthly active user, so an account that signs in once and never returns still counts for that month.
Where it falls short: closed-source, with a roadmap now set inside Stripe. No Facebook login in the native OAuth list. No smart accounts, gas sponsorship, or transaction orchestration — you bring those separately.
Web3Auth (MetaMask Embedded Wallets) — the longest OAuth list
Web3Auth is now documented as MetaMask Embedded Wallets, and its docs live at docs.metamask.io/embedded-wallets. It has the longest native social provider list of any vendor here.
Login methods: email passwordless (OTP and magic links), SMS OTP, external wallet authentication including MetaMask and WalletConnect-supported wallets, and fourteen social providers: Google, Apple, X (Twitter), Facebook, Discord, Twitch, GitHub, Farcaster, Reddit, Kakao, LinkedIn, Line, WeChat, and Telegram. Kakao and WeChat make it the only provider here with first-class Korean and Chinese social login.
Bring your own auth: custom JWT providers, with named integrations for Auth0, Firebase, and AWS Cognito.
Key model: this is the detail worth reading twice. The Embedded Wallet SDKs — the ones on the Base, Growth, and Scale tiers — use Shamir Secret Sharing with key reconstruction, meaning the full private key is reassembled at signing time. The MPC Core Kit SDK uses threshold signatures with no key reconstruction, and it is restricted to Enterprise plans. If "the key is never reassembled" is a requirement for you, that is an Enterprise-tier product, not the default one.
Pricing: Base plan free to 1,000 monthly active wallets, then $0.05 per additional MAW.
Where it falls short: the published SDK list on the current docs covers React, Vue, and JavaScript; mobile and game-engine SDK coverage is not enumerated on the pages reviewed here. Passkey login is not documented on the authentication overview. The MetaMask rebrand means older Web3Auth URLs redirect, and integration guides written against the old docs may not map cleanly. If you are already on Web3Auth, Openfort publishes a migration guide — see also Web3Auth alternatives.
Dynamic — auth UX with the broadest SDK matrix
Dynamic focuses on the login and wallet-connection experience, with a customizable prebuilt UI and support for both embedded wallets and external wallet connection in one flow.
Login methods: email, SMS, passkey, external wallets, and nine social providers: Apple, Discord, Facebook, Farcaster, GitHub, Google, Telegram, Twitch, and Twitter.
Bring your own auth: external JWT. You sign users into Dynamic with a token issued by your own authentication provider, plus a documented third-party auth integration path.
Key model: Dynamic does not publish its embedded wallet key management architecture on the pages reviewed here. The marketing copy references sub-second signing and enterprise-grade security without naming a mechanism. If your security review needs to know whether keys are reconstructed, ask their team directly — this is a blank cell because it is genuinely not published, not because it was not checked.
SDKs: the widest client matrix here — React, JavaScript, React Native, Flutter, Swift, Kotlin, and Unity, with Node, Python, Rust, and Java on the server side.
Pricing: Self-Serve free to 1,000 MAU, $249/month from 1,000 to 5,000 MAU, then $0.05 per additional MAU.
Where it falls short: no gas sponsorship, no smart account management, no transaction orchestration — Dynamic ends at wallet creation and signing. The undocumented key model is a real gap for regulated buyers.
Compare directly: Openfort vs Dynamic.
Magic — passwordless login, longest-running
Magic is the oldest product in this set and built its position on email magic links before the category was called wallet authentication.
Login methods: email OTP, SMS, passkey (WebAuthn), SIWE for external wallets, Farcaster, and thirteen social providers: Google, Facebook, Twitter (X), Apple, Discord, GitHub, LinkedIn, Bitbucket, Twitch, Microsoft, GitLab, Telegram, and Steam. Bitbucket, GitLab, Microsoft, and Steam appear on no other list here — if your users are developers or PC gamers, that matters.
Bring your own auth: not documented. Magic's public docs do not describe a custom OIDC or JWT login path for bringing an existing identity provider.
Key model: non-custodial, using AWS Nitro TEEs for server wallets and a patent-pending TEE Key Management System (TKMS) for embedded wallets, with key sharding.
Pricing: Developer plan $0/month up to 1,000 monthly active wallets, then $0.045 per additional MAW. Startup $99/month to 2,500 MAW, then $0.04 per additional. Enterprise is custom, with transaction-based pricing quoted as low as $0.001 per transaction.
Where it falls short: the documented client SDK surface is Web and React Native. No documented custom JWT/OIDC path, which rules it out if keeping Auth0 or Cognito as the identity source is a requirement.
Turnkey — key management first, auth attached
Turnkey sells key management as a primitive and layers authentication on top of it, rather than the other way round. Signing runs inside secure enclaves.
Login methods: passkeys and WebAuthn (biometric or device-based), email OTP, SMS OTP, external wallets via Sign-In With Ethereum and Sign-In With Solana, and six OAuth providers: Google, Apple, Twitter, Discord, GitHub, and LinkedIn. For server-to-server calls, Turnkey authenticates requests with an API secret.
Bring your own auth: not documented. Turnkey's authentication overview does not describe custom OIDC or JWT login.
Key model: signing inside secure enclaves, with authorization policies that control access to specific wallets and private keys. Turnkey states it is "SOC 2 Type II audited" and names Distrust, Cure53, Trail of Bits, and Zellic as audit firms on its homepage (read September 2026), though without dates or scopes attached to each.
Pricing: Pay as You Go includes 25 free signatures per month and up to 1,000 free wallets, then $0.10 per signature. Pro is $99/month with $0.05 per signature and up to 2,000 free wallets. Enterprise offers unlimited wallets and rates as low as $0.0015 per signature. Note that the wallet cap, not the signature price, is what most consumer apps hit first: 2,000 wallets on Pro is a low ceiling if every user gets one.
Where it falls short: no custom JWT or OIDC. The 2,000-wallet Pro cap makes per-user wallets expensive at consumer scale. No gas sponsorship on standard plans.
Compare directly: Openfort vs Turnkey, or the Turnkey migration guide.
Login methods matrix
The table every shortlist actually turns on. Yes means the vendor documents the method in its own public docs. A dash means it was not found there — treat it as undocumented rather than proven absent, and confirm with the vendor if it is a requirement.
| Login method | Openfort | Privy | Web3Auth | Dynamic | Magic | Turnkey |
|---|---|---|---|---|---|---|
| Email OTP | Yes | Yes | Yes | Yes | Yes | Yes |
| Email + password | Yes | — | — | — | — | — |
| SMS OTP | Yes | Yes (+ WhatsApp) | Yes | Yes | Yes | Yes |
| Yes | Yes | Yes | Yes | Yes | Yes | |
| Apple | Yes | Yes | Yes | Yes | Yes | Yes |
| X (Twitter) | Yes | Yes | Yes | Yes | Yes | Yes |
| Discord | Yes | Yes | Yes | Yes | Yes | Yes |
| Yes | — | Yes | Yes | Yes | — | |
| GitHub | — | Yes | Yes | Yes | Yes | Yes |
| — | Yes | Yes | — | Yes | Yes | |
| LINE | Yes | Yes | Yes | — | — | — |
| Telegram | — | Yes | Yes | Yes | Yes | — |
| Farcaster | — | Yes | Yes | Yes | Yes | — |
| Twitch | — | — | Yes | Yes | Yes | — |
| Epic Games | Yes | — | — | — | — | — |
| Kakao / WeChat / Reddit | — | — | Yes | — | — | — |
| Microsoft / GitLab / Bitbucket / Steam | — | — | — | — | Yes | — |
| Spotify / TikTok / Instagram | — | Yes | — | — | — | — |
| Passkey as login | — (recovery only) | Yes | — | Yes | Yes | Yes |
| Hardware key / TOTP | — | Yes | — | — | — | — |
| External wallet (SIWE) | Yes | Yes | Yes | Yes | Yes | Yes |
| Sign in with Solana | — | Yes | — | — | — | Yes |
| Custom OIDC / JWT | Yes | Yes | Yes | Yes | — | — |
| Named Firebase / Supabase / Auth0 / Cognito integration | Yes | Yes | Yes | — | — | — |
| Gaming backend auth (PlayFab, AccelByte, LootLocker) | Yes | — | — | — | — | — |
| Guest / no-credential login | Yes | — | — | — | — | — |
Read the dashes honestly. Openfort has the shortest consumer social list on this page — no GitHub, Telegram, or Farcaster, and passkeys only as a recovery method. Privy, Web3Auth, and Magic each cover roughly twice as many consumer identity providers. Where Openfort is alone is the other direction: email and password, guest mode, gaming backends, and a signer you can host yourself.
How to choose
"We already have Firebase, Auth0, or Cognito and don't want to replace it." Openfort, Privy, Web3Auth, or Dynamic. All four accept a token from your existing provider. Openfort has named built-in integrations for Firebase, Supabase, and Better-Auth; Privy and Web3Auth both name Auth0, Firebase, and Cognito; Dynamic takes an external JWT. Magic and Turnkey do not document this path, which removes them from the shortlist outright.
"Our users must never see a seed phrase, and we must never be able to move their funds." All six describe non-custodial architectures. The question worth asking is whether the claim is verifiable. Openfort is the only one that publishes its signer source and lets you run the key management service yourself through OpenSigner, and it lists five third-party audits with a date and a scope on each, covering the smart contract wallet, the Shamir implementation, the 7702 delegator, and key management. Turnkey names four audit firms — Distrust, Cure53, Trail of Bits, and Zellic — without publishing dates or scopes. If your review instead requires a SOC 2 Type II attestation of the vendor's operational controls, Openfort does not hold one, while Privy states it is "SOC2 Type I and Type II compliant" and Turnkey "SOC 2 Type II audited" — that is a different question from whether the code has been audited, and both belong on the checklist separately.
"Mobile-first." Dynamic and Turnkey publish the widest mobile client matrices — Dynamic covers React Native, Flutter, Swift, Kotlin, and Unity; Turnkey covers React Native, Flutter, Swift, and Kotlin. Privy covers React Native, Swift, Android, Flutter, and Unity but with a narrower OAuth list per platform. Openfort covers React Native, Swift, and Unity with no Flutter or native Android SDK. Verify the per-platform provider list before committing.
"We want the most consumer login options, full stop." Web3Auth (14 social providers, including Kakao and WeChat) or Magic (13, including Microsoft, GitLab, Bitbucket, and Steam). Privy's 11 is close and adds passkeys, hardware keys, and TOTP.
"We're building a game." Openfort. It is the only provider that verifies tokens from PlayFab, AccelByte, and LootLocker, supports Epic Games OAuth, and ships a Unity SDK with guest mode for zero-friction first sessions.
"We need wallets for crypto payments, not just login." Authentication is the front door; the transaction layer is the building. Openfort is the only provider here that bundles smart accounts, gas sponsorship, and transaction orchestration behind the same SDK as the login. Privy, Web3Auth, Dynamic, Magic, and Turnkey all stop at wallet creation and signing, so budget for a separate paymaster and bundler. See Best Embedded Wallet Providers for Stablecoin Payments.
"We bill per transaction, not per seat." Openfort and Turnkey meter usage (operations and signatures respectively). Privy, Web3Auth, Dynamic, and Magic meter monthly active users or wallets, so dormant accounts cost money. Turnkey's wallet caps — 1,000 on Pay as You Go, 2,000 on Pro — bite before its signature pricing does.
Detailed Feature Comparison
Login methods are in the matrix above. This table covers the rest of what a shortlist turns on: key architecture, security evidence, SDK reach, and how each vendor bills.
| Feature | Openfort | Privy | Web3Auth | Dynamic | Magic | Turnkey |
|---|---|---|---|---|---|---|
| Native OAuth providers | 7 | 11 (React/RN) | 14 | 9 | 13 | 6 |
| Passkey as wallet recovery | Yes | — | — | — | — | — |
| Password-based wallet recovery | Yes | — | — | — | — | — |
| Named Supabase integration | Yes | — | — | — | — | — |
| Account linking / unlinking | Yes | Yes | — | — | — | — |
| Key model published | Shamir shares | TEE, 2-of-2 | SSS; MPC on Enterprise | Not published | TEE + TKMS | Secure enclave |
| Signer source code public | Yes (OpenSigner) | — | — | — | — | — |
| Self-hostable key management | Yes | — | — | — | — | — |
| Independent code audits published | 5, dated and scoped | — | — | — | — | 4 firms named, undated |
| SOC 2 Type II | No | Yes | — | — | — | Yes |
| React SDK | Yes | Yes | Yes | Yes | — | Yes |
| React Native SDK | Yes | Yes | — | Yes | Yes | Yes |
| Swift / iOS SDK | Yes | Yes | — | Yes | — | Yes |
| Android / Kotlin SDK | — | Yes | — | Yes | — | Yes |
| Flutter SDK | — | Yes | — | Yes | — | Yes |
| Unity SDK | Yes | Yes | — | Yes | — | — |
| Smart accounts (ERC-4337) | Yes | — | — | — | — | — |
| Gas sponsorship | Yes | — | — | — | — | Custom plans |
| Billing unit | Operations | MAU | MAW | MAU | MAW | Signatures |
| Free tier | $0, 2,000 ops | Free to 500 MAU | Free to 1,000 MAW | Free to 1,000 MAU | Free to 1,000 MAW | 25 sigs, 1k wallets |
| Wallet cap on paid tier | None | None documented | None documented | None documented | None documented | 2,000 on Pro |
A dash means the vendor does not document the capability publicly. It is not a claim that the capability is absent — several of these products have unreleased or undocumented surface area, and a vendor's sales engineer may confirm something their docs do not. It does mean you cannot verify it before a call.
Related comparisons
- Best Wallet-as-a-Service Providers in 2026 — the infrastructure pillar, framed on wallet provisioning rather than login
- Best Embedded Wallets in 2026 — user-facing wallets provisioned on signup
- Best Embedded Wallet Providers for Stablecoin Payments — wallets tuned for USDC and USDT flows
- Best Agent Wallets for Developers — wallets an autonomous agent controls within policy limits
- Web3Auth alternatives — if you are migrating off Web3Auth specifically
Building a product where users log in and hold their own keys? Try Openfort free — email, social, SMS, and SIWE login, guest mode, bring-your-own-auth, and an open-source signer you can self-host.


