Welcome to Verne Passepartout
Verne Passepartout is a managed Telegram Auth-as-a-Service engine that lets your end-users sign in with a single tap in Telegram — no passwords, no email verification, no reset flows to build or maintain.
What is Passepartout?
Passepartout gives your tenants' applications a drop-in login flow backed by Telegram. Your app starts a login, sends the user to a Telegram deep link, and polls for completion to receive an access token representing the authenticated user.
Under the hood, a high-performance Rust bridge long-polls each tenant's Telegram bot, verifies the update, and provisions a tenant-scoped identity in Ory Kratos. Bot tokens are encrypted at rest with AES-256-GCM, and every end-user identity is isolated per tenant — one Telegram user signing into two tenants results in two independent identities.
Why Passepartout?
| Capability | Description |
|---|---|
| Passwordless | Users authenticate through Telegram — nothing to store, leak, or reset. |
| Tenant-scoped identities | End-users are namespaced per tenant in a shared Kratos identity store. |
| Drop-in bot setup | Create a bot with @BotFather, paste the token in the dashboard, enable it. |
| No public webhook | The bridge uses Telegram long-polling — nothing to expose or secure. |
| Encrypted tokens | Bot tokens are encrypted at rest with AES-256-GCM. |
| Multi-language SDKs | First-class passepartout resource in the Node, PHP, Python, and Rust SDKs. |
How the login flow works
- Your app calls
login/startwith a Passepartout API key and receives anonceand adeep_link. - You send the end-user to the
deep_link— Telegram opens your bot with/start <nonce>. - Your app polls
login/statuswith thenonceuntilstatusbecomescompleted. - The completed response carries an
access_tokenand the Telegramuser— the user is signed in. - Optionally, validate a token later with
tokens/introspect.
Quick Start
- In the Dashboard, create a Telegram bot with @BotFather, paste its token, and enable it.
- Generate a
vrn_passepartout_API key on the Keys page. - Start a login and send the user to Telegram:
# 1. Start a login — returns a nonce and a Telegram deep link
curl -X POST https://api.vernesoft.com/v1/passepartout/login/start \
-H "Authorization: Bearer vrn_passepartout_test_123"
# => { "nonce": "n_9f2c…", "deep_link": "https://t.me/your_bot?start=n_9f2c…", "expires_at": "…" }
# 2. Poll for status until the user taps Start in your bot
curl "https://api.vernesoft.com/v1/passepartout/login/status?nonce=n_9f2c…" \
-H "Authorization: Bearer vrn_passepartout_test_123"
# => { "status": "completed", "access_token": "ppt_live_…", "user": { "id": "…" } }
That's it — Passepartout runs the bot bridge, provisions the identity, and issues the token.
See the API Reference for every endpoint and the full SDK surface.