Skip to main content
Dynamic lets you opt into API changes on your own schedule. Not all updates are backwards compatible, so setting a minimum API version in the dashboard gives you control over when new behavior applies to your integration. Go to Dashboard > Developers > API & SDK Keys to view and set your minimum API version. New environments default to the latest version. Existing environments remain on their current version until you opt in.

2026_04_01

Setting 2026_04_01 as your minimum version enables two security features:
  • Step-up authentication — requires users to re-verify their identity before performing sensitive actions. Credential linking/unlinking and wallet export always require step-up verification. Wallet sign is optional and configurable.
  • Device registration — protects accounts from takeover by verifying users when they sign in from an unrecognized device. They receive an email verification link before being granted access. New users are registered automatically during signup with no extra friction.

Action required

You must implement both features in your app before setting the minimum API version. Once enabled, the backend enforces these requirements immediately — users will see errors if your app doesn’t handle them.

Minimum SDK versions

These minimum versions include support for step-up authentication and device registration. Implement both flows before raising your minimum API version.
SDKMinimum version
React4.76.0
React Native4.76.0
JavaScript0.24.1
Flutter1.2.10
Kotlin1.0.8
Swift1.0.11

Implementation guides

SDKDevice registrationStep-up
ReactGuideGuide
React NativeGuideGuide
JavaScriptGuideGuide
FlutterGuideGuide
KotlinGuideGuide
SwiftGuideGuide

Widget UI

If you use Dynamic’s built-in widget UI (e.g. the Dynamic Widget with the React SDK), you’re all set — just upgrade to the minimum SDK version above. No additional UI work required.

AI-assisted upgrade prompts

These prompts are designed for AI coding agents (Cursor, Claude Code, Copilot). Always review generated code before committing — agents can misread your project structure.For best results, install the Dynamic MCP in your agent so it can reference live documentation automatically. If you don’t have it installed, the prompts fall back to https://www.dynamic.xyz/docs/llms.txt.
These steps are only required for headless integrations. If you use the Dynamic Widget, both step-up authentication and device registration UI are handled automatically — skip this section.

Step 1: Scaffold step-up authentication screen

I need to add step-up authentication to my Dynamic SDK headless
React integration as part of the 2026_04_01 API upgrade.

If you have the Dynamic MCP installed, use it to reference the latest API.
Otherwise reference: https://www.dynamic.xyz/docs/llms.txt

In my codebase:
1. Find where sensitive actions occur — wallet export, wallet sign,
   credential linking and unlinking
2. Before each sensitive action, add a check using `isStepUpRequired`
   from `useStepUpAuthentication` in `@dynamic-labs/sdk-react-core`
3. If required, call `promptStepUpAuth` with the appropriate `TokenScope`
   from `@dynamic-labs/sdk-api-core`:
   - Wallet export: `TokenScope.Walletexport`
   - Wallet sign: `TokenScope.Walletsign`
   - Credential link: `TokenScope.Credentiallink`
   - Credential unlink: `TokenScope.Credentialunlink`
4. The SDK stores and attaches the token automatically — no manual
   token handling needed
5. Do not modify any files outside of the auth flow

After making changes, summarize what was added and flag anything that
needs manual review.

Step 2: Scaffold device registration screen

I need to add a device registration screen to my Dynamic SDK headless
React integration as part of the 2026_04_01 API upgrade.

If you have the Dynamic MCP installed, use it to reference the latest API.
Otherwise reference: https://www.dynamic.xyz/docs/llms.txt

In my codebase:
1. Find where I handle the authentication flow and user state
2. Add a check for device registration using `isDeviceRegistrationRequired`
   from `@dynamic-labs-sdk/client` alongside `useDynamicClient`
3. If registration is required, render a "Check your email" screen —
   the SDK sends the verification link automatically, no additional API call needed
4. Wire up the following events using `useDynamicEvents`:
   - `deviceRegistrationCompleted` — user verified in this tab, proceed to app
   - `deviceRegistrationCompletedInAnotherTab` — user clicked link in another tab, update UI
5. Do not modify any files outside of the auth flow

After making changes, summarize what was added and flag anything that
needs manual review.

Headless integrations

If you have an existing headless integration, you only need to implement two new screens introduced in 2026_04_01. See the implementation guides above for your SDK’s step-up authentication and device registration guides.

Migrating from action-based MFA to step-up authentication

This section is only relevant if you previously used action-based MFA to protect sensitive wallet operations. If you didn’t, you can skip this.
See the full MFA migration guide.