Dynamic offers multiple options for security at the transaction level when using the Dynamic-powered embedded wallets. These options include no MFA (Multi-factor authentication), Passkey MFA, and One-Time Codes MFA. It’s important to note that transactional MFA is distinct from authentication MFA, which is used when the user logs in. This means a user can be protected with MFA during login and also required to confirm actions when signing messages or transactions.
One-Time Email Codes MFA provides an additional layer of security by requiring the user to enter a one-time code when performing a transaction. This code is typically sent to the user’s registered email.How it Works:
When a transaction is initiated, a one-time code is sent to the user’s registered email. The user must enter this code to proceed with the transaction. This ensures that even if an unauthorized party gains access to the user’s device, they would still need the one-time code to complete a transaction.Configuration:
You can enable One-Time Codes MFA in the Wallet Transactions section under the Embedded Wallets tab
You can adjust the length of time before a session with OTC expires by clicking the gear to the right of the feature section once you’ve toggled it on.
Passkey MFA provides the most secure transactional MFA option. We strongly recommend this option for applications that handle money or trading.
Passkey MFA enhances security by requiring the user to authenticate using a passkey when performing a transaction. This method leverages the user’s device-based authentication mechanisms (e.g., biometrics, device PIN) to confirm their identity.How it Works:
When a transaction is initiated, the user is prompted to authenticate using their device’s passkey mechanism. This could be a fingerprint scan, facial recognition, or entering a device PIN. Once authenticated, the transaction proceeds as normal.Configuration:
You can control whether a Passkey is required at signup or not by clicking the gear to the right of the feature section once you’ve toggled it on.
You can control whether a user can add more than one Passkey in the same configuration section as mentioned above.
Important Notes
Domains
Passkeys are scoped to top level domains - This means that they will work on
app.example.com, example.com, and market.example.com, but will require a new passkey if interacting on on
app.example.xyz or notexample.com. If a customer interacts with your application on a different domain, the user’s account and wallet will appear as expected. Dynamic will detect that they are attempting to interact with a wallet on a new domain and prompt them to add a new passkey or use a one-time (if enabled) to complete the transaction.If you decide to migrate your domain, your
end users will need to generate new passkeys. We can walk you through that
process as you implement.
Browsers
Passkeys are supported on the following browsers:Android: Chrome, BraveMacOS v13+ Safari, Chrome, BraveiOs v16+: Safari, Chrome, BraveWindows: Chrome, EdgeNot Supported:Chromebook: Not supportedOpera MiniFor customers that are on an unsupported browser, we recommend they update to the a recent version
1Password
(Requirement: 1password installed on both desktop and phone)Delayed syncing across mobile: Passkey may not sync to the mobile device when it is created first on desktop. User may have to adjust their 1pass password settings in IOS to allow 1password to auto-fill browsers.
Not pairing: Even if the 1password is installed on both devices, iOS sometimes does not check 1password for passkeys. This prevents a user from accessing their passkey on their mobile device. To remediate, open password options under settings on your iOS device. Make sure that 1Password is selected to auto-fill for passwords and passkeys. If its already selected, deselect and re-enable in order to refresh it.
Multi-Chain
Passkeys are assigned at wallet creation, meaning the same passkey can be used for all embedded wallets created at the time of passkey creation. Adding additional embedded wallet chains will require users to use their passkey. Support for adding an embedded wallet on a new chain for existing embedded wallet users will be availalbe in the coming weeks.
Dynamic offers a customizable transaction and message signing UI, enhancing the user experience by providing clear and intuitive confirmation prompts. These prompts ensure users are aware of and can confirm actions before they are executed, adding an extra layer of transparency and security.Features of Transaction and Message Signing UI:
Provides clear, user-friendly confirmation prompts for transactions and message signing.
Helps prevent accidental or unauthorized actions by requiring user confirmation.
Can be customized to match the look and feel of your application.
Turning Off Signing Confirmation UI:
You can disable the transaction and message signing UI via an option in the Dynamic dashboard. This can be useful in scenarios where speed is a priority, and the risk of unauthorized actions is minimal, or when you control your own UI to show a similar confirmation screen.