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

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>