CryptoLike guarda las claves de firma en un servicio de firma aparte, al que la API no tiene acceso; pasa cada retiro por controles que tú configuras y pide un código 2FA nuevo para los retiros hechos desde el panel o el bot de Telegram. Esta página reúne esos controles tal como funcionan en el producto, con sus valores predeterminados, para que decidas cuáles activar. Quién opera la plataforma y cómo escribimos sobre ella: acerca de CryptoLike.
Dónde están las claves
Las claves privadas existen solo dentro de un servicio de firma separado. La API, el panel y la base de datos principal guardan direcciones y claves públicas, nunca claves privadas. El servicio de firma acepta solicitudes solo por TLS con autenticación mutua (mTLS) desde una lista fija de servicios internos, y contrasta cada solicitud con sus propias reglas antes de firmar nada.
- Un retiro se firma solo si está en proceso y tiene el monto correspondiente retenido en tu saldo en el libro contable.
- La consolidación va solo a direcciones permitidas; agregar una dirección a la lista de direcciones permitidas del servicio de firma requiere a dos administradores distintos, y quitarla, a uno.
- Sin límite configurado, no hay firma. Una solicitud por encima del límite espera en una cola manual hasta que un operador la aprueba con un código de un solo uso aparte; los códigos incorrectos llevan a un bloqueo.
- Las claves se guardan cifradas en reposo y se borran de la memoria después de usarlas.
Billeteras caliente y fría
Los pagos llegan a direcciones de depósito separadas, una por pago o por cliente; luego la plataforma los consolida en la billetera caliente (hot wallet), que financia los retiros. Cuando el saldo caliente de un activo supera el límite fijado para él, el sistema propone una transferencia a almacenamiento en frío; nunca mueve fondos al almacenamiento en frío por su cuenta. Un operador aprueba cada transferencia con un código 2FA nuevo, y una propuesta que nadie aprueba vence sin mover fondos.
La dirección fría solo cambia con dos personas: un administrador la propone y otro distinto la confirma. El servicio de firma no firma transferencias desde la billetera fría; solo la observa. Cómo afecta esto a los retiros y una rutina de tesorería para tus propios fondos: billeteras caliente y fría.
Controles de retiros
Cada retiro desde el panel o el bot de Telegram necesita un código 2FA nuevo para esa acción (un retiro masivo por CSV usa un solo código para todo el archivo), y el mismo código no se puede usar dos veces. Un retiro por API lo autoriza una clave API con el permiso withdraw y no pide código 2FA; por eso, limita esa clave a las direcciones IP de tu servidor y activa la lista de direcciones permitidas. Además, tú decides qué tan estrictos son los retiros: la lista de direcciones permitidas, la segunda aprobación y los permisos de las claves los configuras tú. La tabla muestra cada control y su valor predeterminado.
| Control | Qué hace | Predeterminado |
|---|---|---|
| 2FA en retiros | Un código nuevo para cada retiro desde el panel o el bot de Telegram (uno por retiro masivo en CSV) y para agregar una dirección permitida; sin 2FA configurada, esos retiros se rechazan. Los retiros por API usan en su lugar el permiso withdraw de la clave |
Siempre activa en el panel y el bot |
| Lista de direcciones permitidas | Si la activas, los retiros desde el panel y por API van solo a direcciones de la lista. Una dirección nueva se puede usar 24 horas después de agregarla (con 2FA); quitar una no pide código 2FA y rige desde ese momento | Desactivada; la espera de 24 horas aplica cuando agregas direcciones |
| Segunda aprobación | Los retiros desde el panel y el bot de Telegram por encima del monto que fijes para un activo esperan a un segundo propietario o administrador, distinto de quien los creó; los retiros por API no se detienen | Desactivada |
| Límites de revisión | Los fija la plataforma para tu cuenta: un retiro por encima del límite por retiro o diario, o un patrón inusual, como un retiro grande a una dirección nueva o una ráfaga de retiros, pasa a revisión manual | Por cuenta |
| Verificación de la cuenta | Los retiros se habilitan cuando tu cuenta está verificada (verificación KYB); recibir pagos no depende de ella | Activa |
| Permisos de la clave API | read, create_invoice, create_address, withdraw: la clave de una tienda nunca necesita withdraw; cada clave se puede limitar a direcciones IP. Las claves las gestionan propietarios, administradores y desarrolladores, y otorgar withdraw les pide su código 2FA |
Por clave |
Un retiro creado por API puede llevar tu propio payout_id: si repites la solicitud con el mismo activo, monto y dirección, recibes el mismo retiro en lugar de uno segundo, y con parámetros distintos la respuesta es 409. Cómo funciona en la práctica: lista de direcciones permitidas, segunda aprobación y pagos masivos.
Protección de la cuenta
Para iniciar sesión en el panel se usa una contraseña y, cuando la activas, un código TOTP de una app de autenticación, con 10 códigos de recuperación de un solo uso. El secreto TOTP se guarda cifrado.
- Contraseñas de 10 a 128 caracteres, guardadas como hashes argon2id.
- Bloqueo. El número de intentos de inicio de sesión es limitado. Los fallos repetidos bloquean la cuenta, y cada bloqueo nuevo dura más; los códigos 2FA incorrectos también cuentan.
- Sesiones. «Cerrar sesión en todos los dispositivos» termina todas las sesiones; restablecer la contraseña hace lo mismo. Una sesión termina tras 24 horas sin actividad y a los 30 días como máximo.
- Registro de seguridad. Ves tus propios inicios de sesión y cambios de seguridad; propietarios y administradores también ven los del equipo. El registro no se puede editar.
- Alertas. Correos cuando cambia la contraseña, se activa o desactiva la 2FA o la cuenta se bloquea por códigos 2FA incorrectos; mensajes de Telegram sobre un nuevo inicio de sesión, una nueva clave API y cambios en la lista de direcciones permitidas.
API y webhooks
Cada solicitud a la API lleva una firma HMAC-SHA256 sobre la marca de tiempo, el método, la ruta y el hash del cuerpo. Una marca de tiempo desfasada más de 5 minutos se rechaza, y una firma ya usada se rechaza como repetición. El secreto de la API se muestra una vez y se guarda cifrado; tras rotarlo, el secreto anterior sigue funcionando 10 minutos para que despliegues el nuevo. Detalles: autenticación de la API.
Los webhooks llevan una firma HMAC (HMAC-SHA256) de la marca de tiempo y el cuerpo sin procesar, hecha con el secreto propio del endpoint. La entrega va solo a direcciones https:// en hosts públicos: las direcciones privadas, loopback y link-local se rechazan al guardar la URL y otra vez cuando CryptoLike se conecta. Si una entrega no recibe respuesta 2xx en 10 segundos, se reintenta a los 1, 5 y 15 minutos y a las 1, 6 y 24 horas: 7 intentos en unas 31 horas. Cómo verificarlos: webhooks.
Verificación AML y de la cuenta
El remitente de una transferencia entrante pasa la verificación AML después de sus confirmaciones, antes de que el dinero quede disponible en tu saldo. Los fondos de una fuente sancionada o por encima del umbral de riesgo quedan retenidos para una revisión de cumplimiento, y tu servidor recibe un webhook deposit.on_hold; si el servicio de verificación no responde, el abono espera en lugar de pasar sin verificar. La plataforma fija las reglas de verificación para tu cuenta, incluido qué pasa con una transferencia cuyo remitente no se puede determinar: se abona con una marca o se retiene hasta revisarla. Las direcciones de destino de los retiros se verifican al crear el retiro y otra vez antes de firmarlo: una dirección sancionada se rechaza y una de alto riesgo pasa a revisión. Qué ves en cada paso y cómo gestionar un pago retenido: verificación AML de pagos entrantes.
Libro contable y conciliación
Cada cambio de saldo es un asiento de partida doble en un libro contable de solo anexión: la base de datos rechaza ediciones y borrados de asientos, y un saldo no puede quedar por debajo de cero. Un proceso de conciliación compara con regularidad los saldos en las blockchains con el libro contable y lanza una alerta si encuentra una diferencia.
Los pagos se abonan solo después de las confirmaciones del activo. Si una reorganización de bloques elimina una transferencia confirmada, CryptoLike revierte el abono y envía invoice.reverted o deposit.reverted; una reorganización más profunda de lo que la plataforma maneja por sí sola detiene el procesamiento en esa red hasta que intervenga un operador.
Preguntas frecuentes
¿CryptoLike guarda las claves privadas de mi saldo?
Sí. CryptoLike opera las billeteras por ti: los pagos llegan a direcciones que gestiona la plataforma, y las claves se quedan dentro de un servicio de firma aparte que solo firma solicitudes que pasan sus propios controles. No tienes que operar nodos ni guardar claves. Tú controlas adónde va el dinero con los retiros, con 2FA, una lista de direcciones permitidas opcional y una segunda aprobación opcional.
¿Alguien que robe mi clave API puede retirar fondos?
Solo si esa clave tiene el permiso withdraw. Las claves para tiendas y plugins solo necesitan create_invoice y read. Además, puedes limitar una clave a las direcciones IP de tu servidor y activar la lista de direcciones permitidas; así, incluso una clave con withdraw solo puede pagar a direcciones que agregaste al menos 24 horas antes.
¿Qué pasa si alguien conoce la contraseña de mi panel?
Con la 2FA activada, la contraseña sola no abre la cuenta, y cada retiro desde el panel necesita un código nuevo de tu app de autenticación. Los códigos incorrectos repetidos bloquean la cuenta y cierran todas las sesiones, y recibes un correo. Una dirección permitida nueva solo se puede usar 24 horas después de agregarla, lo que deja tiempo para notarlo.
¿Cómo sé que un webhook realmente viene de CryptoLike?
Revisa el encabezado X-Signature: es sha256= seguido del HMAC-SHA256 del valor de X-Timestamp, un punto y el cuerpo sin procesar de la solicitud, calculado con el secreto de tu endpoint. Compara en tiempo constante y rechaza marcas de tiempo antiguas. La guía para verificar webhooks tiene código en cuatro lenguajes.
¿Qué pasa con los fondos que no pasan la verificación AML?
Quedan retenidos, no se abonan. Una transferencia verificada de una fuente sancionada o por encima del umbral de riesgo espera una revisión de cumplimiento, y tu servidor recibe un webhook deposit.on_hold por ella. La revisión decide si los fondos se abonan o se gestionan de otra forma; mientras tanto, no aparecen en tu saldo disponible.
Términos usados aquí
Empieza con un pago de prueba
Crea una cuenta, pide a soporte el entorno de prueba y mira cómo un pago pasa de pending a paid en una red de prueba.