.NET SDK
User Wallets
InAppWallet
and EcosystemWallet
provide the same runtime capabilities for user authentication and signing in the Thirdweb .NET SDK. The only material differences are in how you create each wallet. Use this guide anytime you need an OTP-backed wallet experience for end users, regardless of whether you are building on the default thirdweb ecosystem or operating your own partner ecosystem.
- InAppWallet — best for applications that rely on the default thirdweb infrastructure. Creation does not require an
ecosystemId
. - EcosystemWallet — required when you run your own ecosystem. Creation requires the
ecosystemId
that was issued in the dashboard (and optionally anecosystemPartnerId
).
Once created, both wallets expose identical methods for login, session management, and blockchain interactions.
Once a wallet is created, you can always resume the session:
If the wallet is not connected, initiate the login flow that corresponds to the auth provider you selected.
Both wallet types support the same login surfaces:
- Email or phone (OTP-based)
- Social providers (Google, Apple, Facebook, Telegram, Farcaster, Line, GitHub, Twitch, Steam, TikTok, and more)
- Custom auth (JWT or generic auth endpoint)
- Guest onboarding
- Backend/server wallets
- Sign-In With Ethereum (SIWE)
- SIWE External (web-only wallets via a browser prompt)
Catch exceptions to allow retries when the user enters an incorrect code.
Adjust isMobile
, browserOpenAction
, and mobileRedirectScheme
based on your target runtime. For Godot or other engines, reuse the existing platform-specific handlers you already have in place.
Limiting forceWalletIds
to a single value skips the wallet picker and deep-links into that specific wallet provider.
Link multiple login methods to the same user identity regardless of the wallet type that initiated the session.