Docs
Tapebot is a Telegram bot for the Stock Tokens on Robinhood Chain. It answers price questions, lists the day's movers, watches price levels for you, shows what any wallet holds, and hands you buy or sell links that you sign in your own wallet. The bot itself never holds keys or funds.
Overview
The bot runs on a Cloudflare worker. Telegram sends it each message through a webhook; it reads Chainlink on Robinhood Chain and answers in the chat. A scheduled job checks every alert every five minutes. Trades happen on a separate page of this site, in your browser, with your wallet.
Prices
Every price is the Chainlink feed for that Stock Token on Robinhood Chain, read through the chain's price adapter, the same source lending and trading contracts there use. The 24h change comes from the deepest pool of each token on DexScreener. Prices are cached for one minute. Stock feeds pause when the market is closed; the bot then shows the last price.
Commands
/price NVDA TSLA | price and 24h change of one or more stocks, with buy buttons |
/top | the five biggest gainers and losers today |
/all | all 27 Stock Tokens and ETFs in one table |
/alert NVDA < 200 | a ping when NVDA falls to $200; > for a rise; "below" and "above" work too |
/alerts, /del 2 | list your alerts, remove one |
/buy NVDA 100 | a button to buy $100 of NVDA in your wallet |
/sell NVDA 0.5 | a button to sell 0.5 NVDA for USDG |
/wallet 0x… | what any address holds in Stock Tokens and USDG, valued at Chainlink |
/watch 0x…, /me | save your address, then check it with one word |
Tickers: AAPL NVDA TSLA MSFT AMZN META GOOGL COIN AMD TSM MU INTC PLTR DELL SNDK MSTR CRCL BABA GME SPCX USAR SPY QQQ GLD SLV USO SGOV. A leading $ is fine.
Alerts
Each chat can hold up to 10 alerts. Every five minutes the worker reads Chainlink and sends a message for every alert whose level was reached, with a button to buy (after a fall) or sell (after a rise). A fired alert is removed. Levels the price has already passed are refused when you set them. Because the check runs every five minutes, a spike that comes and goes in between can be missed.
Wallets
/wallet reads the balance of USDG and of each of the 27 Stock Tokens for an address in one multicall and values them at Chainlink. It works for any address; it does not need to be yours. /watch saves one address per chat so /me works without pasting it again.
Trading
The buy and sell buttons open /trade with the stock, side and amount filled in. You connect your own wallet there and sign one transaction on Robinhood Chain. If the router does not have an allowance yet, the page first asks for an EIP-2612 permit signature for exactly the amount, and sends it inside the same transaction (selfPermit), so there is no separate approval step and no open-ended approval left behind.
Routes and the floor
Trades go straight through Uniswap's SwapRouter02 on Robinhood Chain. Most stocks have a direct USDG pool; COIN, MSTR and SPY route through WETH. The page reads the Chainlink price on chain and sets the minimum out 1.5% under it for each pool hop. If the pool would fill worse, the swap reverts and nothing is traded. On a fork of mainnet, 100 USDG bought 0.4546 NVDA and sold back for 99.90 USDG.
Fees
Tapebot takes nothing. A trade pays the Uniswap pool fee (0.05% to 1% depending on the pool) and gas, under a cent.
What is stored
Your chat id with your alerts, and the wallet address if you saved one with /watch. Nothing else: no names, no message history, no keys. Removing all alerts removes the chat from the alert list.
In groups
Add the bot to a group and anyone can use the commands there. Alerts set in a group fire in that group.
Risks
- Alerts are checked every five minutes and depend on Telegram and Cloudflare being up.
- Stock Token pools can be thin; the floor refuses bad fills but cannot remove market risk.
- Always check the domain before signing: the bot only links to tapebot.appunit.xyz.
Token
The Tapebot token launches on pons. Its address will be listed here and on the home page.
Addresses
| Uniswap SwapRouter02 | 0xcaf681a66d020601342297493863e78c959e5cb2 |
| Chainlink price adapter | 0xe9bBcd46F9B0Df04B418e0207876984F9f8336cb |
| USDG | 0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168 |
Tapebot