Para un usuario común, el sitio oficial de Binance es www.binance.com, pero para un desarrollador las cosas son bastante más complejas: al escribir código no se conecta a las páginas frontales, sino a esa cadena de hosts como api.binance.com, stream.binance.com o fapi.binance.com. Muchos desarrolladores recién llegados han caído en documentación de phishing y SDK clonados; el origen del problema es no separar el "sitio oficial para usuarios" del "sitio oficial para desarrolladores". Primero prepare la cuenta y la API Key desde el Sitio Oficial de Binance, instale luego la App Oficial de Binance para recibir notificaciones de verificación en dos pasos, y para iPhone consulte la Guía de instalación iOS.
A continuación explicamos la estructura de entrada del sitio oficial de Binance íntegramente desde la perspectiva de desarrolladores, incluyendo la identificación de accesos a la documentación, la distinción entre producción y Testnet, la validación de las fuentes del SDK, la lista de hosts de WebSocket y la suscripción al changelog.
Las entradas correctas al sitio oficial de desarrolladores de Binance
La documentación para desarrolladores no está colgada en la navegación principal de www.binance.com: se reparte en varios subdominios independientes y en la organización de GitHub. Con estas entradas no se equivocará.
Sitio principal de documentación: developers.binance.com
developers.binance.com es la puerta unificada del portal de desarrolladores de Binance; reúne los manuales de referencia de las API Spot, Futures, Margin, Wallet y Staking. Arriba a la derecha puede cambiar a Change Log, con marcas de tiempo precisas al minuto para cada actualización de la API.
El certificado TLS de este dominio lo emite Binance Holdings Ltd y comparte cadena de certificados con el sitio principal binance.com. Si al abrirlo el sujeto del certificado no coincide, básicamente le están haciendo un secuestro.
Organización de GitHub: binance
Los repositorios oficiales están centralizados en la organización github.com/binance; es la fuente de máxima autoridad para verificar la autenticidad del SDK y del código de ejemplo. Algunos repos frecuentes:
- binance-spot-api-docs: especificación REST/WebSocket del mercado spot
- binance-futures-connector-python: conector Python de futuros USDⓈ-M
- binance-connector-node: SDK oficial para Node.js
- binance-api-postman: colección de Postman para depuración
En la parte inferior de la página de la organización verá el distintivo Verified; este distintivo se consigue asociando un registro DNS TXT a binance.com, y una organización suplantadora no puede falsificarlo.
Entradas técnicas en Binance Academy
academy.binance.com es un sitio de contenido, no de interfaces, pero su etiqueta "Developer" publica artículos de fondo sobre diseño de protocolo, cambios en la estructura de comisiones o comportamiento del motor de matching, útiles para entender la lógica de negocio detrás de las APIs.
Cómo distinguir los hosts de producción y los de la Testnet
Binance ofrece un entorno Testnet completo, pero confundir los hosts de Testnet y de producción es muy fácil. Conectarse al host equivocado trae dos desastres: probar con dinero real o lanzar operaciones reales con dinero de prueba.
Lista de hosts para las APIs de Spot
| Uso | Producción | Testnet |
|---|---|---|
| REST API | api.binance.com | testnet.binance.vision |
| WebSocket Stream | stream.binance.com:9443 | stream.testnet.binance.vision:9443 |
| WebSocket API | ws-api.binance.com:443 | ws-api.testnet.binance.vision:443 |
Atención: la Testnet usa el dominio independiente binance.vision, no un subdominio de binance.com. Es intencional por parte de Binance para evitar que claves de producción y de prueba se confundan al tener dominios parecidos.
Lista de hosts para las APIs de futuros
| Uso | Producción | Testnet |
|---|---|---|
| REST USDⓈ-M | fapi.binance.com | testnet.binancefuture.com |
| WS USDⓈ-M | fstream.binance.com | stream.binancefuture.com |
| REST COIN-M | dapi.binance.com | testnet.binancefuture.com |
| WS COIN-M | dstream.binance.com | dstream.binancefuture.com |
La Testnet de futuros va por binancefuture.com, otro dominio independiente. Si ve en el código host binance.com pero path con /fapi, lo más probable es que sea un SDK antiguo con dominios unificados; las versiones nuevas los separan.
Las API Key no son intercambiables entre entornos
Una API Key de producción no sirve en Testnet, y viceversa. La Key de Testnet se genera en la página testnet.binance.vision iniciando sesión con la cuenta de GitHub; la Key de producción se crea en la página de seguridad de la cuenta del Sitio Oficial de Binance. Los dos sistemas están totalmente aislados; filtrar una Key de Testnet no afecta fondos reales.
Cómo validar el origen del SDK
En el ecosistema de desarrolladores, los ataques más habituales son los paquetes pip/npm suplantadores, con nombres extremadamente engañosos. Descargue el SDK siempre desde estas fuentes oficiales.
Nombre correcto de los paquetes Python
Binance no publica un paquete oficial llamado simplemente "binance"; use alguno de estos dos:
- binance-connector: mantenido oficialmente, publicado en PyPI por Binance
- python-binance: biblioteca clásica de la comunidad, autor Sam McHardy, referenciada por la documentación oficial
Estos nombres son suplantaciones: binance-api, binancepy, pybinance, binance-sdk (atención a esta variante antigua con guion). En PyPI puede consultar el dominio del correo del publicador; el paquete oficial se publica desde un correo @binance.com.
Verificación de integridad de paquetes
Desde 2023, pip soporta hash checking; bloquear el hash en requirements.txt evita la sustitución por MITM:
binance-connector==3.7.0 \
--hash=sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
El hash está en la sección "Download files" de la página de PyPI; compare antes de instalar.
Nomenclatura para Node.js
En npm, el scope oficial es @binance/connector; el scope @binance ha pasado la verificación de organización en npm y no se puede registrar por suplantadores. Sin scope, node-binance-api es la biblioteca clásica de la comunidad, bastante fiable pero no oficial.
Situación en Go y Rust
Binance no publica SDK oficial para Go; hoy lo habitual es la biblioteca comunitaria adshao/go-binance, cuyo autor adshao fue desarrollador colaborador temprano de Binance y mantiene buena calidad de código. Tampoco hay SDK oficial para Rust; ccxt-rust y binance-rs son dos implementaciones comunitarias que conviene auditar antes de usar.
Detalles operativos de las conexiones WebSocket de larga duración
Las llamadas REST se consumen una a una, pero una conexión WebSocket vive mucho tiempo, con más escollos operativos que REST.
Corte forzado a las 24 horas
Regla fija del WebSocket spot de Binance: una conexión dura como máximo 24 horas, tras las cuales el servidor la cierra. El cliente debe implementar reconexión, idealmente reconectando activamente en torno a las 23 horas en lugar de esperar a que lo tumben.
Heartbeat PING/PONG
El servidor envía un PING cada 3 minutos y el cliente debe responder PONG en menos de 10 minutos, o la conexión se cierra. La mayoría de las librerías lo gestionan; si no, hay que engancharse manualmente al frame de heartbeat.
Límite de suscripciones
Una conexión soporta como máximo 1024 streams; al superarlo el servidor devuelve el error -1013. Los sistemas que monitorizan muchos pares deben agrupar en varias conexiones.
Sintaxis de streams combinados
El formato del stream combinado es stream.binance.com:9443/stream?streams=btcusdt@trade/ethusdt@kline_1m, con barras separando cada stream. Un único stream usa stream.binance.com:9443/ws/btcusdt@trade; el path cambia.
Cómo seguir los cambios de la API
La frecuencia de cambios en la API de Binance es superior a la de la mayoría de exchanges; no suscribirse al changelog es pisar cualquier día un endpoint retirado o un campo con nuevo significado.
Ubicación del Change Log oficial
Se publica de forma sincronizada en binance-docs.github.io y developers.binance.com; el histórico llega hasta 2017. Cada entrada lleva uno de tres tags: UPDATE, NEW, DEPRECATED.
Suscripción a GitHub Releases
En github.com/binance/binance-spot-api-docs, pulse Watch → Releases only; recibirá correo en cada commit al repositorio de la documentación del protocolo; más fiable que hacer polling al sitio web.
Lista de avisos por correo
Los cambios mayores de la API se avisan con entre 2 semanas y 2 meses de antelación al correo de registro de la cuenta. Use para la cuenta asociada a la API Key un correo que revise habitualmente, no uno temporal.
Ajustes en las políticas de rate limit
Los límites de frecuencia son lo que cambia de forma más silenciosa. Binance devuelve en tiempo real la cabecera HTTP X-MBX-USED-WEIGHT-1M; vigilar su evolución detecta antes los cambios de política que leer la documentación.
Checklist de integración segura
Antes de conectar, estas comprobaciones evitan el 95% de los problemas de seguridad:
- Activar la lista blanca de IP: en la gestión de API, marque "Restrict access to trusted IPs only"; si no, está desnudo en internet.
- Privilegios mínimos: separe las claves de solo lectura y las de trading, y no active retiros por defecto.
- Las claves no se suben al repositorio: use variables de entorno o Vault, y revise en CI con gitleaks para evitar commits accidentales.
- HTTPS obligatorio: rechace cualquier llamada HTTP no cifrada para prevenir MITM.
- Firme con HMAC-SHA256: concatene los parámetros en orden alfabético; el orden de timestamp y signature debe ser correcto.
- recvWindow no supere 5 segundos: el valor por defecto es 5000ms; un valor más alto amplía la ventana para ataques de replay.
FAQ de preguntas frecuentes
P1: ¿El contenido de la página de documentación del sitio oficial y el de binance-docs.github.io es el mismo?
Puede haber desfase temporal. binance-docs.github.io se sirve por GitHub Pages y se actualiza con cada commit; developers.binance.com se entrega por el CDN del sitio oficial como recurso estático, así que puede haber de minutos a horas de diferencia. Para ver lo más reciente, vaya a GitHub Pages.
P2: ¿Las órdenes en Testnet afectan a la cuenta real?
En absoluto. La Testnet es un sistema de matching independiente, con fondos virtuales y libros de órdenes aislados del main net. La única relación es que los datos de mercado se alimentan de snapshots del main net, así que los precios aparentan seguir el mercado real.
P3: ¿Python: python-binance o binance-connector?
Depende del uso. binance-connector es oficial, con cobertura de endpoints al día pero estilo más funcional; python-binance es comunitario, ofrece una abstracción más cómoda con soporte sync/async y más ejemplos. Para producción se recomienda connector; para prototipos rápidos, python-binance.
P4: ¿La reconexión del WebSocket debe usar backoff exponencial?
Sí. Ante tráfico anómalo Binance puede banear IPs temporalmente; sin backoff se reactivan los baneos. Estrategia recomendada: primera espera 1 s, luego ×2, tope 60 s, y al reconectar con éxito reiniciar el contador.
P5: ¿Binance tiene algo similar al Demo Trading de OKX?
Sí, con otro nombre. Para spot se llama Testnet (testnet.binance.vision), para futuros Binance Futures Testnet (testnet.binancefuture.com). Las entradas y las API Keys son independientes; no se conmuta desde la misma cuenta como en OKX.