accountSwitchState

Type: AccountSwitchState

This enum type specifies the current state of switching or linking wallets in a multi-wallet enabled environment. This can be idle, linking_new_wallet, switching_primary, primary_not_connected

authMode

Type: AuthModeType

This enum type specifies whether the SDK’s users will need to sign to authenticate and prove ownership of their account, or just connect is enough. This can be connect-only or connect-and-sign

awaitingSignatureState

Type: AwaitingSignatureState

This enum type specifies the current state while waiting for a signature of a new wallet to link in a multi-wallet enabled environment. This can be idle, linking_new_wallet, transferring_wallet

handleLogOut

Type: () => Promise

A helper-method to log-out the currently authenticated user account.

handleUnlinkWallet

Type: (walletId: string) => Promise

Helper function to unlink a wallet given a wallet ID from the user account.

isVerificationInProgress

Type: boolean

Whether any verifications are in progress for the current user (ex. connect, sign and email login verifications).

loadingNetwork

Type: boolean

Returns true when the SDK is looking for the network of the primary wallet’s wallet connector.

multiWalletWidgetState

Type: MultiWalletWidgetState

This enum type specifies the current state of the widget in a multi-wallet enabled environment. This can be idle, awaiting_account_switch, awaiting_connection, awaiting_signature, detected_known_secondary_wallet, detected_new_wallet

network

Type: number | undefined

This represents the current network selected for the primary wallet

networkConfigurations

Type: NetworkConfigurationMap | undefined

This contains the current network configurations for various EVM and Solana chains. These information includes chain ID, RPC URLs, and other important information.

primaryWallet

Type: Wallet | null

An instance of a Wallet that represents the most recent connected Wallet.

qrcodeUri

Type: string

URI for the QR code to scan in the current modal.

redirectUrl

Type: string | undefined

URL used for redirecting back after connecting with farcaster

rpcProviders

Type: DynamicRPCProviders

List of RPC providers and their settings to communicate with web3 services. These providers are configured on Dynamic’s dashboard.

sdkHasLoaded

Type: boolean

Whether the sdk’s data is done loading — useful for avoiding stale data flashes by not rendering until the sdk is done loading.

selectedTabIndex

Type: number

The selected tab index when using the wallet list view tabs feature

setAuthMode

Type: Dispatch<SetStateAction<AuthModeType>>

Sets the current authentication mode of branded wallets (“connect-and-sign” or “connect-only”). Note: does nothing if the user is already logged in. You might also want to toggle the initialAuthenticationMode prop.

setMultiWalletWidgetState

Type: MultiWalletWidgetStateSetter

It controls the intended state for a multi-wallet enabled environment.

setSelectedTabIndex

Type: Dispatch<SetStateAction<number>>

Sets the selected tab index when using the wallet list view tabs feature

setShowAuthFlow

Type: Dispatch<SetStateAction>

It controls whether or not to display the DynamicAuthFlow SDK component.

setShowQrcodeModal

Type: Dispatch<SetStateAction>

It controls whether or not to display a QR code modal.

showAuthFlow

Type: boolean

The value set by setShowAuthFlow, it controls whether or not to display the DynamicAuthFlow SDK component.

showQrcodeModal

Type: boolean

Value set by setShowQrcodeModal, it controls whether or not to display a QR code modal.

user

Type: UserProfile | null

The user object of the currently authenticated user.

userWithMissingInfo

Type: UserProfile | undefined

Present if the user is authenticated but hasn’t finished onboarding (i.e. mandatory info capture/MFA), undefined if the user hasn’t started the login/signup process or has already fully completed it.

If you’re looking to access the current user or session’s wallets, like you would with linkedWallets, secondaryWallets and connectedWallets in previous versions, check out the new useUserWallets hook.

Examples

setShowAuthFlow - use it to start signature request from user

const ConnectButton = () => {
  const { setShowAuthFlow } = useDynamicContext();
  return (
    <button
      onClick={() => setShowAuthFlow(true)}
    >
      Connect your wallet
    </button>
  );
};

primaryWallet - use it to make operations on the currently active wallet

  • method to simply fetch balance of users wallet:
const getBalance = async () => {
  const balance = await primaryWallet.getBalance();
  return balance;
};
  • get users primary wallet
const getAddress = () => {
  const address = primaryWallet.address;
  return address;
};
  • get all connected wallets by primary wallet connector
const getConnectedAccounts = async () => {
  const connectedAccounts = await primaryWallet?.connector.getConnectedAccounts();
  return connectedAccounts;
};

handleLogOut - use it to log out currently logged in user

const LogoutButton = () => {
  const { handleLogOut } = useDynamicContext();
  return (
    <button
      onClick={() => handleLogOut()}
    >
      Log out
    </button>
  );
};

isVerificationInProgress - use it along with onAuthFlowClose to tell whether it was manually closed or closed due to a verification process

<DynamicContextProvider
  settings={{
    events: {
      onAuthFlowClose: () => {
        if (isVerificationInProgress) console.log('Closed due to verification process');
        else console.log('Manually closed by client');
      }
    }
  }}
>
 {/* ... rest of your app ... */}
</DynamicContextProvider>