ZTip Bot → Tipper minimalista por CLI para Zcash
ZTip Bot es un bot de Telegram inspirado en la terminal de Zcash, diseñado para interactuar con nodos y ejecutar comandos de forma remota, manteniendo un estilo de consola limpio y seguro.
Permite recibir y enviar ZEC, consultar balances, transacciones y direcciones, además de ofrecer comandos administrativos básicos.
Características Técnicas
ZTip está completamente desarrollado en Python, lo que garantiza portabilidad y facilidad de mantenimiento.
El bot establece una conexión SSH segura mediante la librería paramiko, permitiendo ejecutar comandos directamente sobre el nodo Zcash remoto, ya sea Zebra, Lightwalletd o Zingo-CLI, con autenticación controlada y registro detallado.
Toda la experiencia del usuario se inspira en la estética de una terminal real, replicando el entorno de consola de Zcash.
El diseño es deliberadamente minimalista, sin elementos gráficos ni botones, priorizando la simplicidad, la legibilidad del texto y la sensación de estar operando un nodo desde la línea de comandos.
En su núcleo, el bot respeta los principios cypherpunk: transparencia, descentralización y control directo del usuario sobre la interacción con su nodo.
Cada comando puede rastrearse, reproducirse y verificarse manualmente, manteniendo una correspondencia 1:1 con las operaciones reales de Zcash.
Estructura del Proyecto
ztip_bot/
│
├── z-f.py # Archivo principal del bot
├── allowed_users.json # Lista de usuarios autorizados
└── bot.pid # PID del proceso activo
Comandos Disponibles
Comandos Principales
| Comando | Descripción || ---------------------- | ---------------------------------------------------------------- || /deposit | Muestra direcciones unificadas y transparentes para recibir ZEC. || /zec balance | Consulta el balance completo (unified, shielded, transparent). || /zec transactions | Lista las últimas transacciones con monto, tipo y TXID. || /zec quicksend | Envía ZEC a una dirección con memo opcional. || /zec shield | Protege fondos transparentes moviéndolos al pool Orchard. || /zec sends_to_address | Counts sent outputs per address. |
Cada respuesta incluye información detallada, estructura tipo bloque, y estado final de la operación.
El usuario ve el proceso como si estuviera operando un nodo Zcash en tiempo real: sincronización, guardado y salida del CLI.
Comandos Administrativos
| Comando | Función || ------------------------- | ----------------------------------------------------------- || /add_user <user_id> <key> | Autoriza un nuevo usuario en la whitelist local. || /remove_user <user_id> | Revoca acceso a un usuario existente. || /about | Muestra información del sistema, versión, y backend activo. |
Estos comandos solo están disponibles para usuarios registrados en allowed_users.json,
garantizando que las operaciones críticas (como el envío o autorización de usuarios) no puedan ejecutarse sin permiso.
Vista del menu principal
zebra@node:~$ cat /etc/zebra/commands.listzebra@node:~$ [INFO] user_2138507839 ----------- PUBLIC COMMANDS -----------/deposit : receive funds/about : show system & bot info ----------- WHITE LIST COMMANDS --------/zec quicksend : send ZEC with memo (optional)/zec balance : show wallet balances/zec transactions : list last 5 transactions/zec shield : shield transparent funds ----------- ADMIN COMMANDS -------------/add_user <id> <key> : authorize new user/remove_user <id> : remove an authorized user/list_users : list all authorized users zebra@node:~$ awaiting input...
Comando Público /deposit
zebra@node:~$ cat /etc/zebra/deposit_addresses.caro zebra@node:~$ [INFO] Deposit addresseszebra@node:~$ [TIP] Try /zec balance to check your wallet----------------------------------------------> TRANSPARENT ADDRESS:t1JYg6zmRwosC2U13Nvnerx8HsBX4YmTVxt --> UNIFIED ADDRESS:u1kragrthrjfzpyyp3h4mxe079ed0r8xzqdulf2xnlev2d6238p8y2eq9y72tg46s9m9hz2ll5c7n8eqwa786ma2jqqcly660jqgydwavg--------------------------------------------zebra@node:~$ [NOTE] For easy copy on mobile:zebra@node:~$ [CMD] /t_address → transparent onlyzebra@node:~$ [CMD] /u_address → unified only--------------------------------------------zebra@node:~$ [OK] Ready to receive deposits
El usuario obtiene ambas direcciones (t y u) para realizar depósitos de forma transparente o unificada.
Comando /zec balance
------------ ZEC BALANCE ------------ Unified balance : 0.00355033 ZECShielded balance : 0.00000000 ZECTransparent balance : 0.00000000 ZEC Spendable total : 0.00355033 ZEC ★-----------------------------------------TOTAL BALANCE : 0.00355033 ZEC----------------------------------------- zebra@node:~$ [INFO] Balance fetched successfully.[OK] Operation completed.
Historial de Transacciones (/zec transactions)
------------ TX HISTORY ------------ SENT → 0.00106191 ZECTXID: 3c736c7323f7b4e6e83041730549edfa292f158dcdc0187ae65869cadd222f98Date: 2025-11-02 23:16:23 UTC------------------------------------SENT → 0.00007000 ZECTXID: 0e1758df4ebab063881f99fcee884c63eed0045e661fc5ab24d579aa0972a20fDate: 2025-11-02 23:05:06 UTC------------------------------------RECEIVED ← 0.00121191 ZECTXID: bc02251e37f63593df22e2479845c2569413c5bddd0c330e4e9035a0e6936f5fDate: 2025-11-02 22:39:10 UTC------------------------------------SENT → 0.00005000 ZECTXID: b3e1a5b4ef423ae36ab1e8c9849df28617e8d753b46aeb463c8c026f37f8ad32Date: 2025-11-02 15:25:01 UTC------------------------------------SENT → 0.00005000 ZECTXID: 25ebd875841016dd927e6b3092564d361b7b49b548924148e69bde54b8d48f8cDate: 2025-11-02 15:20:32 UTC------------------------------------ zebra@node:~$ [INFO] last 5 transactions loaded successfully [OK]zebra@node:~$
Comando /zec quicksend
Envía ZEC rápidamente a una dirección con memo opcional:
------------ SEND ==> ------------To : u1s7dkgz3qutt5g5wn7c7wl8z6gf5fvhset06arxgy8tgr9pqs0cqvngxdglr69f2grmp3ewms34dw5lm98qn7a3esa72apw26jpdydt5k7dek04pgckj6a90nuzql80lzdg2kpk564nxzjalj0t690ghk28lxkv0edrn3dt9w4kn6fke8kjhuqewqtzvw6jdanfms6r6hd56x5dz3gz7Amount : 0.00007000 ZECMemo : Prueba desde ZtipStatus : Sending transaction...Fee : will be deducted automatically [=>] Sending...Launching sync task...Launching save task...{ "txids": [ "0e1758df4ebab063881f99fcee884c63eed0045e661fc5ab24d579aa0972a20f" ]}Save task shutdown successfully.Zingo CLI quit successfully.zebra@node:~$ [OK] operation complete.
Comando /zec shield
Protege fondos transparentes moviéndolos a la dirección unificada:
zebra@node:~$ quickshield[INFO] Shielding transparent funds to Orchard...[INFO] Connecting to lightwalletd...[INFO] Broadcasting transaction...[INFO] Processing response... [OK] Transparent funds successfully shielded to Orchard.zebra@node:~$ [INFO] Run '/zec balance' to verify changes.
Comando /about
Muestra información del sistema y del bot:
zebra@node:~$ whoamizebra@node:~$ whoami user_2138507839zebra@node:~$ cat /etc/zebra/about------------------------------------------------------------ZTip - Zcash Node CLI Interface------------------------------------------------------------A lightweight remote shell for interacting with Zcash nodeoperations (Zebra / Lightwalletd / Zingo-CLI). Developed by: cΔrovΣr0zebra@node:~$ [LINK] https://carover0.github.io/pagina/zebra@node:~$ [LINK] https://free2z.cash/cΔrovΣr0------------------------------------------------------------zebra@node:~$ [INFO]{ "version": "v0.0.0.0-dev", "git_commit": "", "server_uri": "https://carover0.xyz:9067/", "vendor": "ECC LightWalletD", "taddr_support": true, "chain_name": "main", "sapling_activation_height": 419200, "consensus_branch_id": "c8e71055", "latest_block_height": 3121328}------------------------------------------------------------Visit --> https://t.me/zcashespchat (to learn about Zcash) zebra@node:~$ donate [INFO] dev_address:u1s7dkgz3qutt5g5wn7c7wl8z6gf5fvhset06arxgy8tgr9pqs0cqvngxdglr69f2grmp3ewms34dw5lm98qn7a3esa72apw26jpdydt5k7dek04pgckj6a90nuzql80lzdg2kpk564nxzjalj0t690ghk28lxkv0edrn3dt9w4kn6fke8kjhuqewqtzvw6jdanfms6r6hd56x5dz3gz7 zebra@node:~$ [INFO] service ready
Filosofía del Proyecto
ZTip es un experimento de interfaz humana para Zcash, diseñado para reproducir la estética, el flujo y la lógica de un nodo real dentro de un chat de Telegram.
Su propósito es ofrecer una experiencia puramente textual, sin interfaces gráficas, navegadores ni dependencias externas, acercando al usuario a la interacción directa con la red.
El proyecto prioriza la privacidad, la transparencia verificable y la descentralización, manteniendo la simplicidad y el control del usuario sobre cada operación.
ZTip busca demostrar que una comunicación segura, privada y funcional con un nodo Zcash puede lograrse únicamente a través de texto sin sacrificar autonomía ni estética.
Notas Técnicas
Todos los comandos están auditados y reproducibles en un nodo Zebra completo.
Se recomienda usar usuario autorizado para ejecutar comandos críticos (quicksend, shield).
La salida del bot respeta la estética de la consola Zcash, con etiquetas [INFO], [OK], [TIP].





