NapNodes

← Guías de Bots de Discord

Bots de Discord · actualizada el 24 de octubre de 2026

El token de tu bot de Discord: dónde guardarlo y qué hacer si se filtra

El token es la contraseña de tu bot: quien lo tenga puede conectarse como él y hacer en tus servidores todo lo que el bot tenga permitido. Se filtra casi siempre de la misma forma, subido a GitHub sin querer, y se arregla igual: sacando uno nuevo. Aquí va cómo guardarlo bien y qué hacer, en orden, si ya es tarde.

¿Se lo pasas a tu grupo?WhatsApp

Qué es el token (y qué no lo es)

Lo sacas en discord.com/developers/applications, en tu aplicación → «Bot» → «Reset Token», y es un texto largo en tres trozos separados por puntos. Tu código se lo da a Discord al conectarse (client.run en discord.py, client.login en discord.js) y Discord no pide nada más: ni tu contraseña ni tu verificación en dos pasos.

No lo confundas con el «Client Secret» de la pestaña «OAuth2»: ese es para webs que inician sesión con Discord, es más corto y con él no arranca un bot. Tampoco con el «Application ID», que es público (va en el enlace de invitación).

Hay otro texto que es igual de secreto aunque no lo parezca: la dirección de un webhook (https://discord.com/api/webhooks/…). Quien la tenga puede publicar en ese canal con el nombre y la foto que quiera. Trátala como el token.

¿Prefieres no montarlo tú? Hosting de bots de Discord desde 1,50 € al mes, sin permanencia y con devolución íntegra en 72 horas. O crea un bot de Discord gratis, sin tarjeta.

Dónde guardarlo: un .env que nunca sube a GitHub

Lo seguro es que el token no esté en el código: en un fichero .env aparte, que el bot lee al arrancar (con python-dotenv en Python y dotenv en Node.js, como en tu primer bot en Python o en JavaScript), y un .gitignore que le diga a Git que no lo suba nunca.

.env
DISCORD_TOKEN=pega-aquí-tu-token
.gitignore
.env
node_modules/
__pycache__/
.venv/
  1. Crea el .gitignore antes del primer commit

    Si el .env ya se subió una vez, ponerlo después en el .gitignore no lo quita: Git sigue llevándolo. Sácalo con git rm --cached .env, haz commit y, como ya estuvo publicado, cambia el token (abajo).

  2. Comprueba lo que vas a subir

    git status antes de cada commit: si sale .env en la lista, para. En GitHub, mira que el fichero no aparezca en la página del repositorio.

  3. Deja un ejemplo sin el token

    Un .env.example con DISCORD_TOKEN= vacío explica a quien use tu código qué tiene que rellenar, sin dar el tuyo.

Cómo se filtra (casi siempre)

Subido a un repositorio público de GitHub, en el código o en el .env. Es lo más habitual con diferencia, y GitHub lo detecta: busca tokens de Discord en el código público y avisa a Discord, que puede anularlo. Si un día tu bot deja de conectarse con «Improper token has been passed» (discord.py) o «TokenInvalid» (discord.js) y acababas de subir algo, casi seguro es esto: mira tus mensajes directos de Discord y tu correo.

Borrarlo en un commit nuevo no sirve: sigue en el historial, y cualquiera que haya clonado o hecho un fork lo tiene. Da igual que el repositorio esté público cinco minutos: hay programas que leen todo lo que se publica en GitHub buscando tokens.

Las otras vías: una captura de pantalla de tu código o de tu .env para pedir ayuda, pegar el código entero en un foro o en un servidor de Discord, o instalar un paquete falso. En PyPI y npm aparecen de vez en cuando paquetes con nombres parecidos a los buenos que buscan tokens en tu ordenador y los mandan fuera: instala las librerías con su nombre exacto (discord.py, discord.js) y desconfía de «herramientas» que piden tu token para hacer algo por ti.

Se ha filtrado: qué hacer, en este orden

  1. Cambia el token ya

    Portal de desarrolladores → tu aplicación → «Bot» → «Reset Token». El viejo deja de valer en ese momento, esté donde esté. Es lo único que lo arregla de verdad; todo lo demás es limpiar. Si tienes la verificación en dos pasos activada, Discord te pedirá el código.

  2. Pon el nuevo en tu .env y reinicia el bot

    El token solo se lee al arrancar: hasta que reinicies, tu bot sigue intentando entrar con el viejo.

  3. Quita el viejo de donde estaba

    Del código, del .env que subiste (git rm --cached .env y commit) y de donde lo pegaras. Reescribir el historial de Git es opcional: el viejo ya no vale, así que lo importante es que el nuevo no vaya por el mismo camino.

  4. Mira qué ha hecho el bot

    En cada servidor donde está, «Ajustes del servidor» → «Registro de auditoría», filtrando por tu bot: canales borrados, roles cambiados, gente expulsada o mensajes masivos. Si alguien lo usó, ahí se ve, y los mensajes que mandó siguen en los canales.

  5. Revisa la aplicación

    En el portal: que «Public Bot» esté como quieres (si está activado, cualquiera puede añadir tu bot a su servidor), que en el equipo («Teams») que la administra no haya nadie de más y que las direcciones de «OAuth2» y de los webhooks sean las tuyas.

  6. Si había webhooks en el código, cámbialos también

    Un webhook no se arregla cambiando el token del bot: bórralo en «Editar canal» → «Integraciones» → «Webhooks» y crea otro.

Que un token robado haga el menor daño posible

Quien tiene el token puede hacer exactamente lo que el bot tiene permitido, ni más ni menos. Un bot con «Administrador» robado puede borrar el servidor entero; uno que solo puede leer y escribir en dos canales, poco más que mandar mensajes. Dale solo los permisos que usa: con la calculadora de permisos de bot marcas los que necesita y sacas el enlace de invitación con solo esos.

Lo mismo con los intents privilegiados (miembros, presencia y contenido de mensajes): actívalos en el portal solo si tu código los usa (qué hace cada uno y cuáles necesitas).

Y si el bot es solo para tu servidor y tus amigos, desactiva «Public Bot»: así nadie más puede meterlo en otros servidores con tu nombre.

Si tu bot está en NapNodes

El token va en tu código, por ejemplo en el .env, nunca en el panel: el panel no tiene ningún campo para él ni lo necesita. Si subes el código en «Archivos», sube el .env con él. Si lo traes de GitHub («Configuración» → «Repositorio de GitHub»), el .env no está en el repositorio (por el .gitignore), así que súbelo aparte en «Archivos»: al bajar los cambios del repositorio, Git no toca los ficheros que no lleva.

Si tu repositorio es privado, el panel te pide un usuario y un «Token de GitHub»: es otro token, de GitHub, no el de Discord. Lo más seguro es uno de grano fino (Settings → Developer settings → Fine-grained tokens) solo para ese repositorio y solo de lectura del contenido: es lo único que hace falta para bajarse el código.

Después de cambiar el token, súbelo al .env en «Archivos» y pulsa «Reiniciar»: en la «Consola» tiene que salir tu «Conectado como…». Si no tienes dónde alojarlo, hay un bot gratis de 256 MB encendido siempre, que solo hay que renovar con un clic cada semana.

Preguntas frecuentes

¿Qué pasa si alguien tiene el token de mi bot?

Puede conectarse como tu bot y hacer todo lo que el bot tenga permitido en tus servidores: mandar mensajes, borrar canales o expulsar gente si tiene esos permisos. Cambia el token en el portal de desarrolladores («Bot» → «Reset Token») y el viejo deja de valer al momento.

He subido el token de mi bot a GitHub, ¿qué hago?

Cámbialo ya en el portal de desarrolladores («Bot» → «Reset Token»), pon el nuevo en tu .env y reinicia el bot. Borrarlo del repositorio no basta: sigue en el historial. GitHub avisa a Discord de los tokens que aparecen en código público, así que puede que ya lo hayan anulado.

¿Por qué mi bot de Discord deja de funcionar con «Improper token has been passed»?

Porque el token que lee tu código ya no vale: o lo cambiaste en el portal, o se filtró y Discord lo anuló, o el .env no se lee bien (espacios, comillas, otro nombre). Saca uno nuevo con «Reset Token» y reinicia.

¿El Client Secret es el token del bot?

No. El Client Secret (pestaña «OAuth2») es para webs que inician sesión con Discord. El token del bot está en la pestaña «Bot» y es mucho más largo, en tres trozos separados por puntos.

¿Dónde guardo el token de mi bot de Discord?

En un fichero .env que tu bot lea al arrancar, con .env en el .gitignore para que nunca suba a GitHub. Nunca escrito en el código ni en capturas que compartas.

¿Te ha servido esta guía?

¿Lo montamos?

Hosting de bots de Discord desde 1,50 € al mes, sin sobreventa: tu RAM es solo tuya. Y si quieres empezar sin pagar, tienes un bot de Discord gratis, sin tarjeta.

Herramienta gratis: Permisos de un bot de Discord. Marca los permisos de tu bot en castellano y sal con el número y el enlace de invitación; o pega un número y mira qué permisos da.

Herramienta gratis: Intents de un bot de Discord. Marca lo que hace tu bot o busca el evento que no te llega: los intents, el código para discord.js o discord.py y qué activar en el portal.

Sigue leyendo

Todas las guías de Bots de Discord, ordenadas →