Skip to content

Deep Links

A deep link is Telegram’s way of dropping a user into a private chat with a bot and handing the bot a payload at the same time. The URL shape is:

https://t.me/<bot_username>?start=<payload>

When a user opens that URL, Telegram sends the bot a regular /start message with <payload> as its only argument. The bot reads the payload and acts on it before showing the welcome screen.

Several Prysm surfaces live inside group chats or list messages where inline buttons can’t always do the work — buttons can’t, for example, open a private DM and pre-load context for an action that touches your personal watchlist. Deep links bridge that gap.

In practice, every clickable emoji on /detailed, every clickable ticker on /toptokens and /trending, the ✏️ and ❌ on /alert, the “Track Personally” button on a group /track reply, and the Share button on a PvP session all generate a deep-link URL. Tapping it lands you in DM with Prysm, which then runs the action.

This page documents the payloads so the round-trip isn’t a black box.

Every payload Prysm understands is parsed in start.command.ts. If the first word after /start matches one of these prefixes, Prysm runs the matching handler instead of showing the welcome message.

PayloadWhat it doesGenerated byPage
view_<CHAIN>_<address>Opens the detailed view for one token, the same flow as pasting the contract directly.Ticker links on /toptokens and /trending.Top Tokens · Trending
add_<CHAIN>_<address>Adds the token to your personal watchlist.”💬 Track Personally” button on a group /track reply.Add tokens
remove_<CHAIN>_<address>Removes the token from your personal watchlist and edits the original /detailed message in place.The ❌ next to each token on /detailed.Remove tokens
alert_<token_id>Opens the alert-type picker (Price/MCap above or below, % Change) for the token.The 🔔 next to each token on /detailed.Create an alert
edit_alert_<alert_id>Opens the edit-value prompt for an existing alert.The ✏️ on each row of the /alert overview.Manage alerts
remove_alert_<alert_id>Deletes an existing alert and edits the /alert overview in place.The ❌ on each row of the /alert overview.Manage alerts
pvp_<share_token>Opens the PvP share preview, letting the recipient clone the shared list.The Share button on a PvP session.PvP overview

<CHAIN> is the internal chain name (ETHEREUM, BASE, SOLANA, BSC, etc.) — the same identifier used everywhere else inside Prysm. <address> is the contract address as stored on that chain (lower-cased for EVM chains, original case for Solana, TON, Tron, and Sui).

Two of the payloads — remove_ and alert_ — accept an optional suffix that pins the action to a specific group’s watchlist instead of your personal one:

remove_<CHAIN>_<address>_g-<chat_id>
alert_<token_id>_g-<chat_id>

<chat_id> is the Telegram chat ID for the group. The leading - is part of the ID (group chat IDs are negative integers in Telegram), and the suffix is parsed with the regex /_g(-?\d+)$/ so both signs work.

When the suffix is present, Prysm:

  • For remove_: removes the token from that group’s watchlist (regardless of forum topic) instead of yours, then sends a confirmation in DM with a link back to the group and a notice in the group itself.
  • For alert_: shows the alert-type picker with a 📌 For group: <title> line so it’s obvious the alert will fire for the group, and threads the same suffix through the callback data on the picker buttons.

The view_, add_, edit_alert_, remove_alert_, and pvp_ payloads do not take a group suffix.

A view_ link for a Solana token, sanitized:

https://t.me/PrysmTokenTrackerBot?start=view_SOLANA_So11111111111111111111111111111111111111112

Tapping it opens DM with Prysm. The bot deletes the /start message, treats the contract address as if you’d pasted it, and shows the detailed view for that token.

A remove_ link with a group-context suffix would look like:

https://t.me/PrysmTokenTrackerBot?start=remove_BASE_0xabc…123_g-1001234567890

PvP share links use a short opaque token rather than user data:

https://t.me/PrysmTokenTrackerBot?start=pvp_AB12CD34

The share token is a six-to-sixteen-character alphanumeric string generated server-side; it’s the only part of the URL that should not be hand-crafted or guessed.

A typical use case — clicking 🔔 on /detailed in DM:

  1. The 🔔 emoji on the token’s row is wired as a text_link entity pointing at https://t.me/<bot>?start=alert_<token_id>.
  2. Telegram opens (or focuses) the DM with Prysm and sends /start alert_<token_id> on your behalf.
  3. Prysm parses the payload, deletes the /start message so your chat stays clean, and replies with the alert-type picker.

The same shape — link, parse, delete, reply — applies to every payload in the table above. The _g-<chat_id> suffix simply tells the parser to operate on a different watchlist before it replies.