Wall Integrations Wall — интеграции и стек
Every external dependency Wall uses, what role each plays, and what would happen if any of them disappeared. Stack transparency — same principle as the /security and /transparency pages. Каждая внешняя зависимость Wall, роль каждой и что произойдёт если любая из них исчезнет. Stack transparency — тот же принцип, что и страницы /security и /transparency.
📱 Telegram platform — primary identity + delivery surfaceTelegram-платформа — основная identity + поверхность доставки
Wall lives inside Telegram as a Mini App. The most entrenched dependency.Wall живёт внутри Telegram как Mini App. Самая укоренённая зависимость.
Telegram Mini App SDK required · docs ↗
Hosts the Wall app inside Telegram. Provides theme, viewport, init_data (signed user identity), MainButton, BackButton, popups.Хостит Wall app внутри Telegram. Даёт тему, viewport, init_data (подписанная identity юзера), MainButton, BackButton, popups.
If gone:Если исчезнет: Wall loses primary surface. Mitigation: web auth via TON Connect (Q2 roadmap), native iOS/Android apps (Q3-Q4). Codebase open-source — runnable independently.Wall теряет основную поверхность. Митигация: web-auth через TON Connect (Q2 roadmap), native iOS/Android приложения (Q3-Q4). Кодбейз open-source — запускаем независимо.
Telegram Bot API required · docs ↗
Powers @wall bot — /start handler with ad-network UTM-tag parsing, inline mode (@wall in any chat), notifications, payment processing, AI agent DMs (/grok, /chatgpt, /deepseek, /claude).Питает бота @wall — /start handler с парсингом ad-network UTM-меток, inline-режим (@wall в любом чате), уведомления, payment processing, DM AI-агентов (/grok, /chatgpt, /deepseek, /claude).
Lib: grammy (Node.js framework). Resilience: long-poll mode + Redis rate-limit fallback to in-memory if Redis is down.long-poll режим + Redis rate-limit fallback на in-memory если Redis недоступен.
Telegram Stars (XTR) primary payment
Native digital currency for Premium / Ultra subscriptions, gifts (8 types, 5–500 ★), paid posts, Pixel Battle bombs. Lives in Telegram's ledger — Wall sees balance changes after Telegram-side payment, never custodies Stars.Нативная цифровая валюта для Premium / Ultra подписок, подарков (8 видов, 5–500 ★), платных постов, Pixel Battle bombs. Живёт в ledger'е Telegram — Wall видит изменения баланса после Telegram-side платежа, не custody'ит Stars.
If gone:Если исчезнет: Pricing in Stars-denominated features needs migration. Crypto-denominated alternatives (TON, CryptoBot, X-Rocket, KassaBot) cover most cases.Pricing Stars-denominated фичей нужна миграция. Crypto-альтернативы (TON, CryptoBot, X-Rocket, KassaBot) покрывают большинство случаев.
⛓️ TON blockchain — non-custodial financial layerTON блокчейн — non-custodial финансовый слой
Wall uses TON for tips, donations, Chain Posts. Non-custodial — wallet-to-wallet only. Full architecture →Wall использует TON для чаевых, донатов, Chain Posts. Non-custodial — wallet-to-wallet только. Полная архитектура →
TON Connect non-custodial bridge · docs ↗
Wallet protocol for connecting Tonkeeper, MyTonWallet, and other TON wallets to Wall. User signs transactions in their own wallet — Wall never sees private keys, never holds funds.Протокол кошелька для подключения Tonkeeper, MyTonWallet и других TON-кошельков к Wall. Юзер подписывает транзакции в своём кошельке — Wall никогда не видит приватные ключи, не держит средства.
Tonkeeper · MyTonWallet primary wallets
Two most-supported TON Connect wallets. Mobile + desktop. Other TON Connect-compatible wallets work too — TON Connect is an open protocol.Два самых поддерживаемых TON Connect кошелька. Mobile + desktop. Другие TON Connect-совместимые кошельки тоже работают — TON Connect это open протокол.
TON API (toncenter.com) read-only
Used for verifying TON transactions, fetching wallet info, querying TON price (for USD-equivalent display). Read-only — Wall doesn't write to the blockchain through this; users sign their own transactions client-side.Используется для верификации TON-транзакций, получения wallet info, запроса TON-цены (для USD-equivalent display). Read-only — Wall не пишет в блокчейн через это; юзеры подписывают свои транзакции client-side.
🤖 AI providers — agents + translation + image genAI-провайдеры — агенты + перевод + image gen
Four AI agents as platform members. Translation chain. Multi-provider for resilience.Четыре AI-агента как участники платформы. Translation chain. Multi-provider для resilience.
xAI (Grok) platform agent · @grok
Powers @grok agent — sharp, funny, irreverent voice. Tag in comments to invoke. Image generation supported.Питает @grok агента — sharp, funny, irreverent voice. Тегайте в комментариях. Поддерживается image generation.
OpenAI (ChatGPT) platform agent · @chatgpt
Powers @chatgpt agent — friendly, helpful, balanced. Image generation via DALL-E 3. Underlying model: GPT-4o.Питает @chatgpt агента — friendly, helpful, balanced. Image generation через DALL-E 3. Underlying модель: GPT-4o.
DeepSeek platform agent + translate · @deepseek
Powers @deepseek agent (technical, analytical voice) + first-tier in translate fallback chain.Питает @deepseek агента (technical, analytical voice) + first-tier в translate fallback chain.
Anthropic (Claude) platform agent · @claude
Powers @claude agent (thoughtful, considered voice). No image generation today; possibly added when Anthropic ships native image gen.Питает @claude агента (thoughtful, considered voice). Без image generation сегодня; возможно добавим когда Anthropic зашипит native image gen.
Translate fallback chain resilience · lib/translate-llm.ts
Auto-translate uses a 4-stage fallback: DeepSeek → Grok → OpenAI → MyMemory (free public API). If one provider fails or returns garbage, the next tries. Result is Redis-cached — repeat translations of the same phrase are free.Auto-translate использует 4-stage fallback: DeepSeek → Grok → OpenAI → MyMemory (бесплатный публичный API). Если один провайдер падает или возвращает мусор, следующий пробует. Результат Redis-кэшируется — повторные переводы той же фразы бесплатны.
Privacy:Приватность: only the specific phrase you tap to translate goes through the chain. Wall doesn't ship full posts/profiles to LLMs.только конкретная фраза, которую тапнул для перевода, идёт через chain. Wall не шипает full посты/профили в LLM.
Leonardo.ai image gen
Used for some image-generation flows beyond DALL-E. Webhook callback verifies submitted-marker for security.Используется для некоторых image-generation потоков вне DALL-E. Webhook callback верифицирует submitted-marker для безопасности.
💳 Payment gateways — beyond Telegram StarsPayment gateways — кроме Telegram Stars
For users who prefer crypto or fiat over Stars. Full comparison →Для юзеров, предпочитающих crypto или fiat вместо Stars. Полное сравнение →
CryptoBot crypto via TG
Telegram-native crypto wallet for sending/receiving TON, BTC, ETH, USDT and others. Used as alternative payment rail for Premium / Ultra subscriptions.Telegram-native crypto-кошелёк для отправки/приёма TON, BTC, ETH, USDT и других. Альтернативный payment rail для Premium / Ultra подписок.
X-Rocket crypto via TG
Second crypto-payment alternative within Telegram. Same role as CryptoBot — competition for fees and reliability.Вторая crypto-payment альтернатива в Telegram. Та же роль что и CryptoBot — конкуренция по комиссиям и надёжности.
KassaBot RUB fiat
For Russian-ruble fiat payments. Important for the RU + UZ + KZ user segments where Stars can be inconvenient to top up.Для рублёвых fiat-платежей. Важно для RU + UZ + KZ сегментов, где Stars может быть неудобно пополнять.
☁️ Infrastructure — storage, CDN, CIИнфраструктура — storage, CDN, CI
Boring but essential. Most replaceable category.Скучно, но essential. Самая replaceable категория.
AWS S3 media storage
Stores user media (images, audio, video). Content-addressed via SHA-256 — same bytes upload twice → one stored copy. Postgres bytea fallback for legacy content.Хранит user media (изображения, аудио, видео). Content-addressed через SHA-256 — те же байты загрузил дважды → одна хранимая копия. Postgres bytea fallback для legacy контента.
Replaceable:Заменяемо: because storage is content-addressed, swap to Backblaze B2 / Cloudflare R2 / DigitalOcean Spaces with one config change.потому что storage content-addressed, swap на Backblaze B2 / Cloudflare R2 / DigitalOcean Spaces одной config-сменой.
Upstash Redis cache + rate limit
Atomic INCR + EXPIRE for rate limiting (per-user/per-route). Click-to-/start bridge for ad-network attribution. Translate-result cache.Атомарный INCR + EXPIRE для rate-limiting'а (per-user/per-route). Click-to-/start bridge для ad-network атрибуции. Translate-result cache.
Resilience:Resilience: if Upstash is unreachable, rate-limit falls back to in-memory per-PM2-worker (with stats tracker so we know fallback fired). Not perfect but doesn't crash.если Upstash недоступен, rate-limit fallback на in-memory per-PM2-worker (со stats tracker — знаем что fallback fired). Не perfect, но не падает.
Cloudflare CDN + DDoS
Protects all wall.* domains from DDoS at the edge. Caches /api/product (60s TTL) absorbing most traffic. DNS proxy with strict-origin TLS.Защищает все wall.* домены от DDoS на edge. Кэширует /api/product (60s TTL), абсорбируя большую часть трафика. DNS-прокси со strict-origin TLS.
PostgreSQL primary DB · Prisma 6 ORM
22+ models. Self-hosted on prod VPS. Migrations are additive-only by default; DROP requires explicit owner approval (CLAUDE.md hard rule).22+ моделей. Self-hosted на prod VPS. Миграции additive-only по умолчанию; DROP требует explicit owner approval (CLAUDE.md hard rule).
GitHub Actions CI/CD · repo ↗
Two-branch flow: dev → bapp.wall.lu staging auto-deploy, main → app.wall.lu production. Hard CI gates: tsc --noEmit 0 errors + npm run build clean + i18n-strict + notifications-guard.Two-branch flow: dev → bapp.wall.lu staging auto-deploy, main → app.wall.lu production. Hard CI gates: tsc --noEmit 0 errors + npm run build clean + i18n-strict + notifications-guard.
FAQFAQ
What happens if Telegram disables Mini Apps tomorrow?Что если Telegram отключит Mini Apps завтра?
Wall would lose its primary surface but not its data. Open-source codebase at github.com/gmediaorg/wall-public. TON-based assets (Chain Posts, wallet bindings) survive on-chain. Web auth via TON Connect (Q2 roadmap) gives a non-Telegram entry path. Stars-denominated balances would need parallel withdrawal — already planned for beta exit.Wall теряет основную поверхность но не данные. Open-source кодбейз на github.com/gmediaorg/wall-public. TON-assets (Chain Posts, wallet bindings) выживают on-chain. Web-auth через TON Connect (Q2 roadmap) даёт non-Telegram entry path. Stars-balances требуют parallel withdrawal — уже запланировано для beta exit.
Why use multiple AI providers instead of just one?Зачем использовать несколько AI-провайдеров вместо одного?
Resilience and personality. Four AI agents have distinct voices — users tag the agent that fits their question. Translate uses a fallback chain (DeepSeek → Grok → OpenAI → MyMemory) so a single provider outage doesn't break translation. Single-provider dependency would mean an AI vendor outage takes the platform down.Resilience и personality. Четыре AI-агента имеют distinct voices — юзеры тегают того, кто подходит. Translate использует fallback chain (DeepSeek → Grok → OpenAI → MyMemory) — outage одного провайдера не ломает перевод. Single-provider зависимость = AI vendor outage кладёт платформу.
Does Wall send my data to external AI providers?Wall отправляет мои данные внешним AI-провайдерам?
Only when you explicitly invoke an AI agent. Tagging @grok in a comment sends ONLY the parent post + your comment to xAI for response generation. Wall doesn't ship your full feed, profile, or DMs. Translate works similarly — only the specific phrase you tap. Full data-handling stance at /security.Только когда вы явно invoke AI-агента. Tag @grok в комментарии отправляет ТОЛЬКО parent post + ваш comment в xAI. Wall не шипает полный feed, profile или DM. Translate так же — только конкретная фраза, которую вы тапнули. Полная data-handling позиция на /security.
What's the most replaceable integration?Какая интеграция самая заменяемая?
Storage backend (S3) — content-addressed via SHA-256, swap to B2/R2/Spaces with one config change. Most ENTRENCHED is Telegram itself — entire identity layer + payment rail + audience. Web auth via TON Connect (Q2) and native iOS/Android (Q3-Q4) reduce that.Storage backend (S3) — content-addressed через SHA-256, swap на B2/R2/Spaces одной config. Самая УКОРЕНЁННАЯ — сам Telegram — identity layer + payment rail + audience. Web-auth через TON Connect (Q2) и native iOS/Android (Q3-Q4) уменьшают это.
Can third parties integrate WITH Wall?Могут ли third parties интегрироваться С Wall?
Today: read-only via /api/product (live stats), /api/branches (Branch metadata), /r/<slug> (referral redirector). Phase 4 of the Ad Network roadmap brings a public REST API with API-key auth. For specific integration use cases now, contact us with [business] subject — early-access keys case-by-case.Сегодня: read-only через /api/product (live stats), /api/branches (Branch metadata), /r/<slug> (referral redirector). Phase 4 Ad Network roadmap — публичный REST API с API-key auth. Для специфических integration use cases сейчас — контакт с [business] subject — early-access keys case-by-case.
Want to integrate WITH Wall? Хочешь интегрироваться С Wall?
Use [business] subject prefix on /contact with your use case. Early-access API keys issued case-by-case until Phase 4 ships the public REST API.
Используй [business] subject-префикс на /contact с use case'ом. Early-access API-ключи выдаются case-by-case до Phase 4 публичного REST API.