Telegram notifications

Trading P2P means waiting for a counterparty to act, sometimes for hours. The Telegram bot exists so you don't have to keep the InVeil tab open while you wait. It pushes a message when something on your order needs you — payment came in, dispute opened, response window about to expire — and stays quiet otherwise.

The bot is optional. Everything on InVeil works without it. What it adds is a notification channel that doesn't require us to know your email, your phone, or anything else identifying.

What the bot does

Three things, all push-only:

  • Order events. When something happens on an order you're a party to — your offer was taken, the buyer marked delivery sent, the seller confirmed receipt, the response window is about to expire — the bot pushes a short message with a deep link back to the order page.
  • Dispute events. Disputes have time-critical phases. When a dispute opens on your order, when the evidence window is about to close, when the committee ruling lands — the bot pushes each transition so you don't miss the response.
  • Counterparty contact. Some traders share their Telegram @handle as part of an offer's terms so you can message them directly before committing. The bot isn't involved in that path — you message the @handle the maker chose to publish, in whatever Telegram client you're already using.

The bot does not initiate trades, hold funds, sign transactions, or do anything that touches the chain. It's a one-way notification pipe.

How to bind your Telegram

You don't go looking for the binding flow — the product brings it to you. The first time you do something on InVeil that needs a Telegram (posting an offer, taking one), the app prompts you to bind and walks you through the ceremony in line with the action you were already doing. Follow the prompts and you're done. No phone number, no email, no profile data is exchanged beyond what Telegram has already given you for that account.

If you ever want to change which Telegram account is bound, open the navigation under your avatar and go to the Telegram screen there. You can re-run the bind ceremony against a different account from that screen at any time.

What InVeil sees, what Telegram sees

Binding the bot reveals one thing to InVeil's worker: a mapping from your wallet address to your Telegram chat ID. The chat ID is what Telegram uses to route messages to you; it's not the @handle, and it's not your phone number.

Telegram, on its side, sees that the InVeil bot has sent you messages. It doesn't see what those messages mean to InVeil's protocol — to Telegram, the bot is just another bot pushing text and a URL. Telegram's privacy posture is its own; if Telegram messaging is sensitive in your context, you can:

  • Use a Telegram account that isn't tied to your real phone number (Telegram allows fragment-purchased anonymous numbers and SIM-less accounts in many jurisdictions).
  • Skip the bot entirely. InVeil's web app surfaces every event the bot pushes — refreshing the order page shows you the same information.

We don't recommend the Telegram channel for users with adversarial threat models around messaging. Use the in-app surface and check the app on your own schedule.

Why a Telegram bot, not email or SMS

Email and SMS would require us to ask you for an email or a phone number, both of which are stronger identifiers than a Telegram chat ID and both of which would have to live in our database. Telegram is the cheapest channel that meets two conditions: delivers in seconds, doesn't require an identity we'd then have to hold. It's also the channel a large fraction of the userbase already uses for trade-related chat — keeping notifications in the same app reduces context-switching.

We don't plan to add email or SMS. If Telegram isn't available to you, the in-app event log is the supported path.

Switching accounts — there is no unbind

Once your wallet has a Telegram bound, you can switch the binding to a different Telegram account, but you cannot remove the binding entirely. There is no Disconnect button. From the Telegram screen under your avatar, the only action available is "Switch Telegram account," which re-runs the bind ceremony against a new account and replaces the old binding in one step.

This is deliberate. A handle on InVeil is a commitment to be reachable by counterparties on a trade — allowing arbitrary unbinding would create an escape hatch from that commitment that's inconsistent with the rest of the trust architecture (passkey accounts are permanent, reputation is permanent). A user who truly wants no Telegram visibility can stop using the wallet; the binding does not survive that.

If you lose access to the bound Telegram account (phone lost, account locked, etc.), the binding is harmless — the bot just keeps pushing to a chat you can't read. Sign in to InVeil from any device, open the Telegram screen, and switch the binding to an account you can read.

Notification timing

The bot polls chain logs every 30 seconds for new events on orders involving bound wallets. Most messages land within a minute of the on-chain event. The polling cadence is a trade-off: faster polling pushes harder on the RPC bill, slower polling delays notifications. Thirty seconds was chosen as the point where missed-event probability and cost both stay reasonable.

If the worker is unreachable for any reason (Cloudflare incident, our deploy in progress, anything else), notifications buffer on-chain — the events don't disappear. The bot picks them up on its next successful poll and pushes a catch-up batch. You won't miss anything that happens during downtime, just see it slightly late.

Telegram notifications