The upgrade guide for this release containing only implementation related changes can be found here.

New features:

Added a new bridge authentication flow

Learn all about the bridge flow here.

Rolled out advanced access control

Includes NFT Gating, mapping of rules to scopes and much more. Learn all about NFT gating and scopes here: NFT Gating.

Improved multi-chain wallet Grouping

Created a new top level view for wallets that support multiple chains, based on WalletOption

Added new Callbacks

onBeforeConnectSuccessConfirmation

Implemented support for Backpack & OKX Wallets

Moved to CDN based wallet list

Our wallets list is now served from a CDN, which allows us to update the majority of wallets without needing an npm update.

Improvements to how account merging works

Specifically if a user has a wallet connected with email linked, and then signs up again via email or vice versa.

Launched a new embedded Blocto wallet login integration

You can read all about how to use Blocto with Dynamic here

Moved to default support for WalletConnect V2

Walletconnect V2 will be enabled by default from within the “WalletConnect v2” tile in your configurations. Add your own project ID when you can, the integration comes with a temporary default project ID.

Implementation changes:

Summary

There are no major breaking changes in V0.18. There are some minor changes in V0.018.x:

Updates to API URIs

Our api is served now from www.dynamicauth.com instead of www.dynamic.xyz, which should reduce issues for end users behind specific firewall providers.. Please update any rules and validations that you might have on the dynamic.xyz URIs.

Changes to ​​DynamicContextProvider

Prop rename from: displayTermsOfService to: displaySiweStatement.

This affects DynamicContextProvider. If you’re passing displayTermsOfService to DynamicContextProvider, you should update your code like so:

<DynamicContextProvider
  settings={{
    environmentId: "1234abcd-1234-abcd-1234-abcd12343abc",
    displayTermsOfService: false,
    ...
  }}
>
</DynamicContextProvider>

Multiwallet prop has been removed.

If you have multiwallet enabled please enable it in your dashboard:

<DynamicContextProvider
  settings={{
    multiWallet: true,
    ...
  }}
>
  {...}
</DynamicContextProvider>

Changes to DynamicContext

ConnectedWallets

connectedWallets now represents all the wallets that are actually connected

const { connectedWallets } = useDynamicContext();
LinkedWallets

Used to be called ConnectedWallets now only represents that wallets that are linked to the account (only relevant to connect-and-auth flow)

const { linkedWallets } = useDynamicContext();

Updates to Walletbook

If you have a dependancy on @dynamic-labs/walletbook < v0.19, please remove it from your dependancies as it should now be included by default alongside the sdk-react package.

Bug fixes & performance improvements:

WC V2, callbacks, and onboarding bugs all fixed, and multiple performance improvements across the board.