Ztip-eng

Ztip-eng

ZTip is a minimalist tool for receiving Zcash (ZEC) tips directly from Telegram, fully compatible with Zebra and Zingo-CLI.

November 4, 2025· 5 min read
27 score

ZTip Manifesto

ZTip is a 100% native Zcash project.
It does not interact with wrapped assets, bridges, DeFi layers, or any external system that dilutes privacy or treats Zcash as a mere "add-on" to another chain.
If you want privacy, use real Zcash, not a wrapped, bridged, or contract-translated imitation.
I openly oppose the idea of DeFi as "magical decentralization."
In practice, it simply adds new intermediaries: yesterday it was the bank, today it’s the contract… or, more accurately, a bank disguised as a contract, a bank, but written in code..


ZTip Bot → Minimal Zcash CLI Tipper

ZTip Bot is a Telegram bot inspired by the Zcash terminal, designed to interact with nodes and execute commands remotely while maintaining a clean and secure console-style interface.
It allows users to receive and send ZEC, check balances, transactions, and addresses, as well as perform basic administrative commands.

Technical Features

ZTip is fully developed in Python, ensuring portability and ease of maintenance.
The bot establishes a secure SSH connection using the Paramiko library, enabling direct command execution on the remote Zcash node, whether Zebra, Lightwalletd, or Zingo-CLI with controlled authentication and detailed logging.

The entire user experience is inspired by the aesthetics of a real terminal, replicating the authentic Zcash console environment.
Its design is deliberately minimalist, no graphical elements or buttons, prioritizing simplicity, text readability, and the feeling of operating a node directly from the command line.

At its core, the bot adheres to cypherpunk principles: transparency, decentralization, and direct user control over node interaction.
Every command can be traced, reproduced, and manually verified, maintaining a 1:1 correspondence with real Zcash operations.

Project Structure

ztip_bot/

├── z-f.py # Main bot file
├── allowed_users.json # List of authorized users
└── bot.pid # Active process PID

Available Commands

Main Commands

| Command               | Description                                                   ||---------------------- | --------------------------------------------------------------|| /deposit              | Displays unified and transparent addresses to receive ZEC.    || /zec balance          | Checks the full balance (unified, shielded, transparent).     || /zec transactions     | Lists recent transactions with amount, type, and TXID.        || /zec quicksend        | Sends ZEC to an address with an optional memo.                || /zec shield           | Shields transparent funds by moving them to the Orchard pool. || /zec sends_to_address | counts sent outputs per address.                              |

Each response includes detailed information, a block-style structure, and the final operation status.
The user experiences the process as if they were operating a Zcash node in real time synchronization, saving, and CLI output.

Administrative Commands

| Command                   | Function                                                  || ------------------------- | --------------------------------------------------------- || /add_user <user_id> <key> | Authorizes a new user in the local whitelist.             || /remove_user <user_id>    | Revokes access for an existing user.                      || /about                    | Displays system information, version, and active backend. |

These commands are only available to users registered in allowed_users.json,
ensuring that critical operations (such as sending or authorizing users) cannot be executed without permission.

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/zec sends_to_address : counts sent outputs per address ----------- 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...

Public Command /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

The user receives both addresses (t and u) to make deposits either transparently or through the unified address.

Command /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. 

Transaction History (/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:~$

Command /zec quicksend

Quickly sends ZEC to an address with an optional memo:

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

Command /zec shield

Protects transparent funds by moving them to the unified address:

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. 

Command /about

Displays information about the system and the 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

Project Philosophy

ZTip is a human–interface experiment for Zcash, designed to reproduce the aesthetics, flow, and logic of a real node within a Telegram chat.
Its purpose is to offer a purely textual experience no graphical interfaces, browsers, or external dependencies—bringing users closer to direct interaction with the network.

The project prioritizes privacy, verifiable transparency, and decentralization, while maintaining simplicity and full user control over every operation.
ZTip aims to demonstrate that secure, private, and functional communication with a Zcash node can be achieved purely through text—without sacrificing autonomy or aesthetics.

Technical Notes

All commands are audited and reproducible on a full Zebra node.

It is recommended to use an authorized user to execute critical commands (quicksend, shield).

The bot output preserves the Zcash console aesthetics, using tags such as [INFO], [OK], [TIP].


traducir


Related Articles