# Signing messages

You can request a user to sign a message with a private key of his connected account. This can be achieved in two ways.

You can call the `signMessage` on the `fuel` object providing the account address (in [Bech32 format](https://fuellabs.github.io/fuels-ts/guide/types/bech32.html)) you want to sign message with, and the message itself:

{% tabs %}
{% tab title="TypeScript" %}

```javascript
const signature = await fuel.signMessage('fuel1j0nym7r7twmy8cs6gx2yhd042n38znkeghyjw3dtp0g6tkju34zq2fwltf', 'Message to sign');
console.log("Sign message response", signature);
```

{% endtab %}
{% endtabs %}

Or you can get an instance of the wallet first and then call the `signMessage` method on it:

{% tabs %}
{% tab title="TypeScript" %}

```javascript
const wallet = await fuel.getWallet('fuel1j0nym7r7twmy8cs6gx2yhd042n38znkeghyjw3dtp0g6tkju34zq2fwltf');
const signature = await wallet.signMessage('Message to sign');
console.log("Sign message response", signature);
```

{% endtab %}
{% endtabs %}

After calling any of the methods, the app will prompt the user to authorize the request. The following screen will appear:

<figure><img src="https://2435339766-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FT65XO2RJ6uispplU4cJT%2Fuploads%2FmpqbvAqnilnTj1STsTLr%2Fimage.png?alt=media&#x26;token=7868280f-73a1-493c-a02d-f2dbfa212b24" alt="" width="183"><figcaption></figcaption></figure>

Once the user approves the request, the promise is finalized with a string - the signature. If anything goes wrong, e.g. the user cancels the request, the method call will result in an exception.
