Skip to main content
This guide is only relevant if you previously used action-based MFA to protect sensitive wallet operations. If you didn’t, you can skip it.
If you previously used action-based MFA to protect sensitive wallet operations, step-up authentication replaces and extends that functionality. The core concept is the same — require users to re-verify before sensitive actions — but step-up auth adds scoped elevated access tokens, re-authentication methods for non-MFA users, and automatic token handling by the SDK.

What changed

Dashboard changes

No dashboard changes are required — your existing action-based MFA event configuration (WaaS Export, WaaS Refresh, WaaS Sign, WaaS Reshare) carries over.
Make sure your code is fully updated before accepting the minimum API version at Dashboard > Developers > API & SDK Keys. Once set to 2026_04_01, the backend enforces step-up authentication immediately.

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.Install the Dynamic MCP below so your agent can reference live documentation automatically. If you don’t have it installed, the prompts fall back to https://www.dynamic.xyz/docs/llms.txt.
Copy the prompt for your SDK and run it in your agent.

Code migration: before and after

The After examples include an else branch that falls through to legacy action-based MFA. It is only needed if some of your users already have legacy MFA enabled and you’re deploying the updated SDK before the 2026_04_01 API version is confirmed. Once both the SDK and the minimum API version are upgraded, the transitional else branches can be removed since they are no longer needed.

Using Dynamic’s built-in UI

BeforeusePromptMfaAuth with createMfaToken:
AfteruseStepUpAuthentication with requestedScopes. The else branch is only needed if some of your users already have legacy MFA enabled — it handles the window when the frontend is deployed before the 2026_04_01 API version is confirmed. Remove it once both the SDK and the minimum API version are upgraded:

Headless TOTP

BeforeuseMfa with authenticateDevice and createMfaToken:
AfteruseStepUpAuthentication with verifyTotpMfa. The else branch is only needed if some of your users already have legacy MFA enabled — it handles the window before the 2026_04_01 API version is confirmed. Remove it once both the SDK and the minimum API version are upgraded:

Headless Passkey

BeforeuseAuthenticatePasskeyMFA with createMfaToken:
AfteruseStepUpAuthentication with verifyPasskeyMfa. The else branch is only needed if some of your users already have legacy MFA enabled — it handles the window before the 2026_04_01 API version is confirmed. Remove it once both the SDK and the minimum API version are upgraded:

Migration checklist

  1. Upgrade to React SDK 4.76.0 or later
  2. Replace useMfa / useAuthenticatePasskeyMFA / usePromptMfaAuth with useStepUpAuthentication
  3. Replace createMfaToken with requestedScopes using the appropriate TokenScope
  4. Replace useIsMfaRequiredForAction with isStepUpRequired
  5. If you have existing legacy MFA users and you’re deploying the SDK update before accepting the new API version, keep the transitional else branch shown in each After example so those users still get prompted
  6. Test the step-up flow end-to-end for each protected action
  7. Accept the minimum API version 2026_04_01 in your dashboard
  8. Remove the transitional else branches
For the full step-up authentication reference (all verification methods, scopes, token lifecycle), see Step-up authentication.
Last modified on June 29, 2026