> ## Documentation Index
> Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Utilisation du portefeuille

> Lire l'état d'authentification, signer des messages et des transactions, envoyer, et lire l'historique avec useHeliusWallet

## Authentification

Utilisez le hook `useHeliusWallet` pour lire l'état d'authentification et gérer la connexion :

```tsx theme={"system"}
"use client";

import { useHeliusWallet } from "helius-wallet-kit";

export function AuthButton() {
  const { status, login, logout, address } = useHeliusWallet();

  if (status === "loading") return <p>Loading…</p>;

  if (status === "authenticated") {
    return (
      <div>
        <span>{address}</span>
        <button onClick={() => logout()}>Sign out</button>
      </div>
    );
  }

  return <button onClick={() => login()}>Sign in</button>;
}
```

Appeler `login()` ouvre le modal du portefeuille avec les méthodes d'authentification que vous avez activées.

Après la connexion, `status` devient `"authenticated"` et `user` est renseigné avec l'id de l'utilisateur, l'id de la sous-organisation et l'id du portefeuille.

Choisissez quelles méthodes de connexion apparaissent dans le tableau de bord — voir [Configurer les méthodes de connexion](/docs/fr/waas/configuration#configurer-les-méthodes-de-connexion).

## Signature et envoi

`useHeliusWallet` expose l'adresse du portefeuille, les méthodes de signature, et un Solana `Connection` prêt à l'emploi connecté à Helius RPC.

### Signer un message

```tsx theme={"system"}
const { signMessage } = useHeliusWallet();
const signature = await signMessage("Sign in to Acme");
```

### Signer et envoyer une transaction

`signAndSendTransaction` signe la transaction côté client et la soumet via Helius. Il prend une transaction sérialisée et renvoie la signature de la transaction.

```tsx theme={"system"}
import {
  Transaction,
  SystemProgram,
  PublicKey,
  LAMPORTS_PER_SOL,
  ComputeBudgetProgram,
} from "@solana/web3.js";

const { address, connection, signAndSendTransaction, getPriorityFeeLevels } =
  useHeliusWallet();

const fromPubkey = new PublicKey(address!);
const toPubkey = new PublicKey(recipient);

// Estimate a priority fee from Helius.
const fees = await getPriorityFeeLevels([address!, recipient]);

const tx = new Transaction()
  .add(ComputeBudgetProgram.setComputeUnitPrice({ microLamports: fees.medium }))
  .add(
    SystemProgram.transfer({
      fromPubkey,
      toPubkey,
      lamports: 0.01 * LAMPORTS_PER_SOL,
    }),
  );

const { blockhash } = await connection.getLatestBlockhash();
tx.recentBlockhash = blockhash;
tx.feePayer = fromPubkey;

const serialized = tx.serialize({
  requireAllSignatures: false,
  verifySignatures: false,
});

const signature = await signAndSendTransaction(serialized);
```

<Tip>
  Utilisez `signTransaction` au lieu de `signAndSendTransaction` lorsque vous souhaitez la
  signature du portefeuille sans diffusion — par exemple, pour l'ajouter à une
  transaction multi-parties avant de la soumettre vous-même.
</Tip>

### Lire l'historique des transactions

```tsx theme={"system"}
const { getTransactions } = useHeliusWallet();
const transactions = await getTransactions({ limit: 20 });
```

<Note>
  `getTransactions` nécessite le [gestionnaire de route serveur](/docs/fr/waas/quickstart#configuration) —
  il n'est pas disponible dans le mode par défaut client-seul (Secure RPC).
</Note>

### Exporter le portefeuille

Les portefeuilles sont non-custodial, donc les utilisateurs peuvent emporter leurs clés avec eux. `exportWallet` ouvre un flux sécurisé et chiffré pour que l'utilisateur connecté révèle et exporte sa clé privée.

```tsx theme={"system"}
const { exportWallet } = useHeliusWallet();
await exportWallet();
```

## Prochaines étapes

<CardGroup cols={2}>
  <Card title="Référence API" icon="code" href="/docs/fr/waas/api-reference">
    La surface complète `useHeliusWallet()` et les imports.
  </Card>

  <Card title="Migration depuis Privy" icon="arrow-right-arrow-left" href="/docs/fr/waas/migrating-from-privy">
    Déplacez les portefeuilles Privy existants vers Helius WaaS
  </Card>
</CardGroup>
