Who this is for
You’re moving an app from the React SDK (@dynamic-labs/sdk-react-core) to the JavaScript SDK (@dynamic-labs-sdk/client). This section explains what’s different, what your app now owns, and links each flow to a concrete implementation guide.
The JavaScript SDK is headless: it gives you the logic for auth, wallets, and money movement, and you build every screen. The React SDK shipped a widget and orchestrated flows for you; the JavaScript SDK hands you the same capabilities as functions (and React hooks) that you call when you decide.
The big shifts
Almost every change traces back to one idea — the SDK no longer does anything on its own. Keep these in mind as you read the per-flow pages:- No built-in UI. There’s no modal, wallet picker, or prompt. You render everything. Each flow’s UI is covered in the Building UI section.
- Nothing is automatic. Onboarding, MFA, device registration, and wallet creation used to run automatically after login. Now you run each step explicitly — see Post-login user setup.
- No provider monolith.
DynamicContextProviderbecomescreateDynamicClient()plus (in React) a thinDynamicProvider.useDynamicContext()splits into focused hooks likeuseUser(). See Basic setup. - Call functions, don’t wait for events. The React SDK was event-driven; the JavaScript SDK is imperative — you
awaita function or use a hook’sonSuccess/onError. Events still exist for convenience but aren’t the primary pattern. - You choose the wallet. The SDK doesn’t track a current or active wallet for you — you work with the array of wallet accounts from
getWalletAccounts()and pass the specificwalletAccountyou mean into each call. - No
isSignedIn/isLoggedInflag. Derive state directly from the user, their wallets, and onboarding completeness. See Users.
Type renames
The concepts carry over, but several types were renamed for the JavaScript SDK:The pages
Work through these roughly in order — setup and auth first, then the flows your app uses.Foundations
- Basic setup — provider, client, and the events → promises shift
- Non-wallet authentication — email, SMS, social, passkey, external JWT
- Wallet authentication — connecting and verifying external wallets
- Post-login user setup — the orchestration chain you now own
Accounts, wallets & networks
Embedded wallets
- Setup & creation
- Password & security
- Backup & recovery
- Delegated access
- Transactions & session keys
- Upgrading embedded wallets