> ## 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.

# Usar la billetera

> Lee el estado de autenticación, firma mensajes y transacciones, envía y consulta el historial con useHeliusWallet

## Autenticación

Usa el hook `useHeliusWallet` para leer el estado de autenticación y gestionar el inicio de sesión:

```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>;
}
```

Llamar a `login()` abre el modal de la billetera con los métodos de autenticación que habilitaste.

Después de iniciar sesión, `status` se convierte en `"authenticated"` y `user` se completa con el ID del usuario, el ID de la suborganización y el ID de la billetera.

Elige qué métodos de inicio de sesión aparecen en el panel de control. Consulta [Configurar métodos de inicio de sesión](/docs/es/waas/configuration#configurar-los-métodos-de-inicio-de-sesión).

## Firmar y enviar

`useHeliusWallet` proporciona la dirección de la billetera, los métodos de firma y una `Connection` de Solana lista para usar y conectada a Helius RPC.

### Firmar un mensaje

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

### Firmar y enviar una transacción

`signAndSendTransaction` firma la transacción del lado del cliente y la envía mediante Helius. Recibe una transacción serializada y devuelve la firma de la transacción.

```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>
  Usa `signTransaction` en lugar de `signAndSendTransaction` cuando quieras obtener la
  firma de la billetera sin transmitirla; por ejemplo, para agregarla a una
  transacción con varias partes antes de enviarla tú mismo.
</Tip>

### Consultar el historial de transacciones

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

<Note>
  `getTransactions` requiere el [controlador de rutas del servidor](/docs/es/waas/quickstart#configuración);
  no está disponible en el modo predeterminado solo para clientes (Secure RPC).
</Note>

### Exportar la billetera

Las billeteras no son de custodia, por lo que los usuarios pueden llevarse sus claves. `exportWallet` abre un flujo seguro y cifrado para que el usuario que inició sesión pueda revelar y exportar su clave privada.

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

## Próximos pasos

<CardGroup cols={2}>
  <Card title="API reference" icon="code" href="/docs/es/waas/api-reference">
    La interfaz completa de `useHeliusWallet()` y sus importaciones.
  </Card>

  <Card title="Migrating from Privy" icon="arrow-right-arrow-left" href="/docs/es/waas/migrating-from-privy">
    Migra las billeteras existentes de Privy a Helius WaaS
  </Card>
</CardGroup>
