Quickstart
Go from zero to a working Telegram sign-in in about five minutes.
How it works
The stateless, JWT-based proof model in technical detail.
React & Next.js
Drop-in
@bondify/react provider, button, and hooks.Backend verification
Verify the proof on your server before trusting any login.
Why Bondify?
Most auth solutions were built around email and passwords, then bolted on social logins as an afterthought. Bondify is built from scratch for messenger-native audiences — communities, mini-apps, SaaS products, and tools where your users already live in their messenger.How it works
1
The user starts sign-in
Your app calls Bondify, which creates a
pending session and opens Telegram with a deep link.2
The bot asks for confirmation
The Bondify bot (or your own white-label bot) sends the user a confirmation prompt in Telegram.
3
The user taps Confirm
One tap — no typing. The session becomes
confirmed.4
Bondify issues a signed proof
Bondify mints a short-lived proof — a JSON Web Token signed with your project’s webhook secret — that carries the user’s Telegram identity.
5
Your server verifies the proof
Your backend verifies the proof locally (no round-trip to Bondify) and creates its own session — a cookie, JWT, or DB record, exactly as it already does.
Core concepts
Project
A project is one integration — one app or environment. Each project carries three identifiers:string (proj_…)
Public. Identifies your project in the browser, mobile SDK, and deep links. Safe to ship in client code.
string (sk_…)
Server-only. Authenticates server-to-server
/generate and /verify calls. Never expose it in client code.string (whsec_…)
Server-only. Verifies the proof JWT and webhook signatures. This is the value
@bondify/node needs. Shown under Project → Settings → Webhook Secret.Session
A session is created the moment a user starts sign-in. It moves through a defined lifecycle:Proof
When a session is confirmed, Bondify produces a proof: a JWT (HS256) signed with your project’swebhook_secret and valid for 5 minutes. Your server verifies it locally with that same secret — there is no verify-time round-trip to Bondify. See How it works for the exact payload.
Channel
The messenger used for authentication. Telegram is live today; WhatsApp and Discord are on the way. The SDK surface and the proof model stay the same across channels.Plans
Billing is based on MAU — monthly active users, counted as unique Telegram accounts that confirm a sign-in, summed across all of your projects.New accounts start on a 7-day free trial of Pro. When the trial ends, the account automatically moves to Hobby unless you subscribe. Over-limit MAU are billed at $0.02 each from a prepaid balance you top up — there are no automatic card charges for overage.
SDKs
Bondify ships official packages for the most common stacks. Pick the one that matches your app:@bondify/react
React 18/19, Next.js 14–16. Provider, button, modal, QR, and hooks.
@bondify/node
Express/Node. Proof verification, middleware, and webhook handlers.
bondify_flutter
Flutter / Dart client for mobile apps.