# Wallet Authentication

Authenticating a wallet means verifying the user is in control of the wallet they are connecting with.  Wallet authentication is **enabled by default**, meaning that the user will be prompted to sign a message verifying their wallet once they click the 'Connect' button.

![](https://268636785-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8n4plerMUJrsrAiaKpc2%2Fuploads%2FzxWLBlF0xI5ywemrRulm%2Fimage.png?alt=media\&token=2dd8c473-1fdb-4219-94b1-2efc3bd286db)

### Detecting Authentication&#x20;

Once the user signs the request above, two things occur:

1. A window object is added
2. A window event is emitted

#### Window Object

A window object containing the authentication state and connected address is added once a user has verified their wallet address.  The object is stored in `window.manifold`, and has the following structure:

<pre class="language-javascript"><code class="lang-javascript">{
  "isAuthenticated": true,
  "address": "&#x3C;THE WALLET ADDRESS>"
  "oauthToken": "&#x3C;THE AUTHENTICATION TOKEN>"
  "dataClient": &#x3C;An instance of the <a data-footnote-ref href="#user-content-fn-1">data client</a>>
}
</code></pre>

This object is updated if the user switches wallets or disconnects.

#### Window Events

There are two window events that are fired upon authentication and disconnect. These events can be observed by adding event listeners via `window.addEventListener`

* `m-authenticated`

  This event is fired upon authentication or if the user switches their wallet address.  The event will also contain a reference to the [Data Client](https://docs.manifold.xyz/manifold-for-developers/resources/widgets/connect-widget/data-client), which you can access via `event.detail.client`
* `m-unauthenticated`

  This event is fired if the user disconnects from the website by clicking the 'Disconnect' button.

  Additionally, there will be an `m-authenticated` event fired upon authentication (and `m-unauthenticated` if they click the "Disconnect" button).&#x20;

<br>

[^1]:
