use-truapi
Accounts

useDisconnect

Disconnect the wallet and clear account state

useDisconnect returns a stable function that disconnects the wallet: accounts empties, selectedAccount and the signer become null, and status returns to "disconnected". Every account hook reads the same shared store, so one call updates useAccounts, useSelectedAccount and useSigner across the whole app.

Disconnecting is synchronous, there is nothing to await. It also resets the shared connect attempt, so a subsequent connect() starts fresh.

Usage

import { useDisconnect, useSelectedAccount } from "@use-truapi/react";

function DisconnectButton() {
  const account = useSelectedAccount();
  const disconnect = useDisconnect();

  if (!account) return null;

  return (
    <button type="button" onClick={disconnect}>
      Disconnect {account.name ?? account.address}
    </button>
  );
}
<script setup lang="ts">
import { useDisconnect, useSelectedAccount } from "@use-truapi/vue";

const account = useSelectedAccount();
const disconnect = useDisconnect();
</script>

<template>
  <button v-if="account" type="button" @click="disconnect">
    Disconnect {{ account.name ?? account.address }}
  </button>
</template>

See also

  • useConnect is the inverse operation, with pending and error state.
  • useAccounts bundles the same disconnect with the full account state.

API reference

React

function useDisconnect(): () => void;

Returns

() => void

Vue

function useDisconnect(): () => void;

Returns

() => void

On this page