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

# Autenticación

> Aprende a autenticar tus solicitudes a la API de Helius de forma segura y eficiente

La API de Helius usa claves de API para autenticar las solicitudes. Cada solicitud a la API debe incluir tu clave de API para verificar tu identidad y tus permisos.

<Warning>
  Tu clave de API es información confidencial que permite acceder a tu cuenta de Helius. Nunca la expongas en código del lado del cliente, repositorios públicos ni áreas accesibles desde el navegador.
</Warning>

## Primeros pasos

### 1. Crea tu clave de API

<Steps>
  <Step title="Sign up or log in">
    Crea una cuenta en el [panel de Helius](https://dashboard.helius.dev) o inicia sesión en tu cuenta existente.
  </Step>

  <Step title="Navigate to API Keys">
    Ve a la sección **Claves de API** en la barra lateral del panel.
  </Step>

  <Step title="Generate a new key">
    Haz clic en **Crear nueva clave de API** y proporciona un nombre descriptivo para tu proyecto (por ejemplo, "Aplicación de producción" o "Entorno de desarrollo").
  </Step>

  <Step title="Copy and secure your key">
    Copia tu clave de API de inmediato y guárdala de forma segura. No podrás volver a verla después de salir de la página.
  </Step>
</Steps>

### 2. Usa tu clave de API

Incluye tu clave de API como parámetro de consulta en todas las solicitudes:

<CodeGroup>
  ```bash cURL theme={"system"}
  curl "https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY" \
    -X POST \
    -H "Content-Type: application/json" \
    -d '{"jsonrpc":"2.0","id":1,"method":"getAccountInfo","params":["ACCOUNT_ADDRESS"]}'
  ```

  ```javascript JavaScript theme={"system"}
  const url = `https://mainnet.helius-rpc.com/?api-key=${YOUR_API_KEY}`;
  const response = await fetch(url, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      jsonrpc: '2.0',
      id: 1,
      method: 'getAccountInfo',
      params: ['ACCOUNT_ADDRESS']
    })
  });
  ```

  ```python Python theme={"system"}
  import requests

  url = f"https://mainnet.helius-rpc.com/?api-key={YOUR_API_KEY}"
  payload = {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getAccountInfo",
      "params": ["ACCOUNT_ADDRESS"]
  }
  response = requests.post(url, json=payload)
  ```
</CodeGroup>

## Primeros pasos (para agentes)

Los agentes pueden registrarse mediante programación para obtener cuentas de Helius, crear proyectos y generar claves de API con la [CLI de Helius](/docs/es/agents/cli).

Para consultar las instrucciones completas, lee: [https://dashboard.helius.dev/agents.md](https://dashboard.helius.dev/agents.md)

### Instala la CLI de Helius

<CodeGroup>
  ```bash theme={"system"}
  npm install -g helius-cli
  ```
</CodeGroup>

### Genera un par de claves

<CodeGroup>
  ```bash theme={"system"}
  helius keygen
  ```
</CodeGroup>

### Agrega fondos a la billetera generada (solo para pagos automáticos)

Omite este paso si pagarás mediante el enlace de pago alojado (el modo de registro predeterminado, que se completa con `helius signup --resume`). El pago automático (`--pay`) se realiza desde el par de claves local: envía 1 USDC y 0.001 SOL a la dirección de la billetera proporcionada en el paso 2.

### Regístrate y obtén una clave de API

<CodeGroup>
  ```bash theme={"system"}
  # Default: prints a hosted payment link — pay with any wallet in the browser
  helius signup --email you@example.com --first-name Jane --last-name Doe --json

  # After paying via the link, finalize the account
  helius signup --resume --json

  # Or autopay from the funded local keypair
  helius signup --plan agent --pay --email you@example.com --first-name Jane --last-name Doe --json
  ```
</CodeGroup>

## Prácticas recomendadas de seguridad

<CardGroup cols={2}>
  <Card title="Environment Variables" icon="shield-check">
    Guarda tu clave de API en variables de entorno, no en el código fuente.

    ```bash theme={"system"}
    export HELIUS_API_KEY="YOUR_API_KEY"
    ```
  </Card>

  <Card title="IP Restrictions" icon="globe">
    Configura restricciones de IP para tus claves de API en el panel a fin de limitar el acceso a direcciones o intervalos de IP específicos.
  </Card>

  <Card title="Separate Keys" icon="key">
    Usa claves de API diferentes para los entornos de desarrollo, preproducción y producción a fin de aislar el uso y mejorar la seguridad.
  </Card>

  <Card title="Monitor Usage" icon="chart-line">
    Revisa periódicamente el uso de tu API en el panel para detectar patrones inusuales o posibles problemas de seguridad.
  </Card>
</CardGroup>

### Administración de secretos

<Tabs>
  <Tab title="Node.js">
    ```javascript theme={"system"}
    // Use environment variables
    const apiKey = process.env.HELIUS_API_KEY;

    // Or use a secrets manager
    const { SecretManagerServiceClient } = require('@google-cloud/secret-manager');
    const client = new SecretManagerServiceClient();

    async function getApiKey() {
      const [version] = await client.accessSecretVersion({
        name: 'projects/PROJECT_ID/secrets/helius-api-key/versions/latest',
      });
      return version.payload.data.toString();
    }
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={"system"}
    import os
    from dotenv import load_dotenv

    # Load environment variables
    load_dotenv()
    api_key = os.getenv('HELIUS_API_KEY')

    # Or use AWS Secrets Manager
    import boto3

    def get_secret():
        client = boto3.client('secretsmanager')
        response = client.get_secret_value(SecretId='helius-api-key')
        return response['SecretString']
    ```
  </Tab>

  <Tab title="Docker">
    ```dockerfile theme={"system"}
    # In your Dockerfile
    ENV HELIUS_API_KEY=""

    # Or use Docker secrets
    RUN --mount=type=secret,id=helius_key \
        cat /run/secrets/helius_key > /app/api_key.txt
    ```
  </Tab>
</Tabs>

## Límites de frecuencia y uso

<Note>
  Los límites de frecuencia varían según el plan de suscripción. Supervisa tu uso en el [panel de Helius](https://dashboard.helius.dev) para asegurarte de mantenerte dentro de los límites asignados.
</Note>

### Comprende los límites de frecuencia

* **Solicitudes por segundo**: Según tu nivel de suscripción
* **Cuota mensual de solicitudes**: Total de solicitudes permitidas por ciclo de facturación
* **Margen para ráfagas**: Picos de corta duración por encima de tu límite de frecuencia base

### Gestiona los límites de frecuencia

<CodeGroup>
  ```javascript JavaScript theme={"system"}
  async function makeRequest(url, data) {
    try {
      const response = await fetch(url, {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify(data)
      });
      
      if (response.status === 429) {
        const retryAfter = response.headers.get('Retry-After');
        console.log(`Rate limited. Retry after ${retryAfter} seconds`);
        await new Promise(resolve => setTimeout(resolve, retryAfter * 1000));
        return makeRequest(url, data); // Retry
      }
      
      return response.json();
    } catch (error) {
      console.error('Request failed:', error);
      throw error;
    }
  }
  ```

  ```python Python theme={"system"}
  import time
  import requests

  def make_request(url, data):
      try:
          response = requests.post(url, json=data)
          
          if response.status_code == 429:
              retry_after = int(response.headers.get('Retry-After', 60))
              print(f"Rate limited. Waiting {retry_after} seconds...")
              time.sleep(retry_after)
              return make_request(url, data)  # Retry
          
          response.raise_for_status()
          return response.json()
      except requests.exceptions.RequestException as e:
          print(f"Request failed: {e}")
          raise
  ```
</CodeGroup>

## Solución de problemas

<AccordionGroup>
  <Accordion title="Invalid API Key Error">
    **Síntomas**: errores 401 No autorizado o "Clave de API no válida"

    **Soluciones**:

    * Verifica que tu clave de API sea correcta y no se haya vuelto a generar
    * Comprueba que incluyas la clave de API como parámetro de consulta: `?api-key=YOUR_KEY`
    * Asegúrate de que no haya espacios ni caracteres adicionales en tu clave de API
    * Confirma que tu clave de API no haya vencido ni se haya revocado
  </Accordion>

  <Accordion title="Rate Limit Exceeded">
    **Síntomas**: errores 429 Demasiadas solicitudes

    **Soluciones**:

    * Revisa tu uso actual en el panel
    * Implementa un retraso exponencial en tu lógica de reintentos
    * Considera mejorar tu plan para obtener límites más altos
    * Optimiza tus solicitudes para reducir las llamadas innecesarias
  </Accordion>

  <Accordion title="Forbidden Access">
    **Síntomas**: errores 403 Prohibido

    **Soluciones**:

    * Verifica que las restricciones de IP no estén bloqueando tus solicitudes
    * Comprueba que tu suscripción incluya acceso al endpoint
    * Asegúrate de que tu clave de API tenga los permisos necesarios
  </Accordion>
</AccordionGroup>

## Próximos pasos

<CardGroup cols={2}>
  <Card title="Quickstart Guide" icon="rocket" href="/docs/es/quickstart">
    Comienza a realizar tus primeras llamadas a la API con Helius
  </Card>

  <Card title="API Reference" icon="book" href="/docs/es/api-reference">
    Explora todos los endpoints y métodos disponibles
  </Card>

  <Card title="Rate Limits" icon="credit-card" href="/docs/es/billing/rate-limits">
    Comprende los límites de frecuencia y las opciones de mejora
  </Card>

  <Card title="Dashboard" icon="chart-line" href="https://dashboard.helius.dev">
    Supervisa el uso de tu API y administra las claves
  </Card>
</CardGroup>

## Soporte

¿Necesitas ayuda con la autenticación o tienes preguntas sobre las claves de API?

<CardGroup cols={2}>
  <Card title="Discord Community" icon="discord" href="https://discord.com/invite/6GXdee3gBj">
    Únete a nuestro Discord para obtener ayuda en tiempo real y soporte de la comunidad
  </Card>

  <Card title="Email Support" icon="envelope" href="mailto:support@helius.xyz">
    Contacta directamente con nuestro equipo de soporte
  </Card>
</CardGroup>
