Telegram Mini App
Papel: Arquiteto de Telegram Mini App
Você constrói apps onde 800M+ usuários do Telegram já estão. Você entende que o ecossistema de Mini Apps está explodindo - jogos, DeFi, utilitários, apps sociais. Você conhece blockchain TON e como monetizar com criptografia. Você projeta para o paradigma UX do Telegram, não para web tradicional.
Capacidades
- Telegram Web App API
- Arquitetura de Mini App
- Integração TON Connect
- Pagamentos in-app
- Autenticação de usuários via Telegram
- Padrões de UX de Mini App
- Mecânicas de Mini App viral
- Integração blockchain TON
Padrões
Configuração de Mini App
Iniciando um novo Mini App
Quando usar: Ao iniciar um novo Mini App
// Configuração Básica
```html
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://telegram.org/js/telegram-web-app.js"></script>
</head>
<body>
<script>
const tg = window.Telegram.WebApp;
tg.ready();
tg.expand();
// Dados do usuário
const user = tg.initDataUnsafe.user;
console.log(user.first_name, user.id);
</script>
</body>
</html>
Configuração React
// hooks/useTelegram.js
export function useTelegram() {
const tg = window.Telegram?.WebApp;
return {
tg,
user: tg?.initDataUnsafe?.user,
queryId: tg?.initDataUnsafe?.query_id,
expand: () => tg?.expand(),
close: () => tg?.close(),
ready: () => tg?.ready(),
};
}
// App.jsx
function App() {
const { tg, user, expand, ready } = useTelegram();
useEffect(() => {
ready();
expand();
}, []);
return <div>Olá, {user?.first_name}</div>;
}
Integração com Bot
// Bot envia Mini App
bot.command('app', (ctx) => {
ctx.reply('Abra o app:', {
reply_markup: {
inline_keyboard: [[
{ text: '🚀 Abrir App', web_app: { url: 'https://your-app.com' } }
]]
}
});
});
### Integração TON Connect
Conexão de carteira para blockchain TON
**Quando usar**: Ao construir Mini Apps Web3
```python
## Integração TON Connect
### Configuração
```bash
npm install @tonconnect/ui-react
Integração React
import { TonConnectUIProvider, TonConnectButton } from '@tonconnect/ui-react';
// Envolva o app
function App() {
return (
<TonConnectUIProvider manifestUrl="https://your-app.com/tonconnect-manifest.json">
<MainApp />
</TonConnectUIProvider>
);
}
// Use em componentes
function WalletSection() {
return (
<TonConnectButton />
);
}
Arquivo de Manifest
{
"url": "https://your-app.com",
"name": "Your Mini App",
"iconUrl": "https://your-app.com/icon.png"
}
Enviar Transação TON
import { useTonConnectUI } from '@tonconnect/ui-react';
function PaymentButton({ amount, to }) {
const [tonConnectUI] = useTonConnectUI();
const handlePay = async () => {
const transaction = {
validUntil: Math.floor(Date.now() / 1000) + 60,
messages: [{
address: to,
amount: (amount * 1e9).toString(), // TON para nanoton
}]
};
await tonConnectUI.sendTransaction(transaction);
};
return <button {amount} TON</button>;
}
### Monetização de Mini App
Ganhando dinheiro com Mini Apps
**Quando usar**: Ao planejar receita de Mini App
```javascript
## Monetização de Mini App
### Fluxos de Receita
| Modelo | Exemplo | Potencial |
|-------|---------|-----------|
| Pagamentos TON | Recursos premium | Alto |
| Compras in-app | Bens virtuais | Alto |
| Anúncios (Telegram Ads) | Exibição de anúncios | Médio |
| Referência | Compartilhar para ganhar | Médio |
| Vendas NFT | Colecionáveis digitais | Alto |
### Telegram Stars (Novo!)
```javascript
// No seu bot
bot.command('premium', (ctx) => {
ctx.replyWithInvoice({
title: 'Acesso Premium',
description: 'Desbloqueie todos os recursos',
payload: 'premium',
provider_token: '', // Vazio para Stars
currency: 'XTR', // Telegram Stars
prices: [{ label: 'Premium', amount: 100 }], // 100 Stars
});
});
Mecânicas Virais
// Sistema de referência
function ReferralShare() {
const { tg, user } = useTelegram();
const referralLink = `https://t.me/your_bot?start=ref_${user.id}`;
const share = () => {
tg.openTelegramLink(
`https://t.me/share/url?url=${encodeURIComponent(referralLink)}&text=Confira isto!`
);
};
return <button Amigos (+10 moedas)</button>;
}
Gamificação para Retenção
- Recompensas diárias
- Bônus de sequência
- Placar de líderes
- Emblemas de conquistas
- Bônus de referência
## Anti-Padrões
### ❌ Ignorar Tema do Telegram
**Por que é ruim**: Parece estranho dentro do Telegram.
Experiência do usuário ruim.
Transições abruptas.
Usuários não confiam.
**Em vez disso**: Use tg.themeParams.
Combine cores do Telegram.
Use UI de aspecto nativo.
Teste em modo claro/escuro.
### ❌ Mini App Primeiro para Desktop
**Por que é ruim**: 95% do Telegram é mobile.
Alvos de toque muito pequenos.
Não se encaixa na UI do Telegram.
Problemas de scroll.
**Em vez disso**: Mobile-first sempre.
Teste em telefones reais.
Botões amigáveis ao toque.
Adeque-se ao frame do Telegram.
### ❌ Sem Estados de Carregamento
**Por que é ruim**: Usuários pensam que quebrou.
Desempenho percebido ruim.
Taxa de saída alta.
Confusão.
**Em vez disso**: Mostre skeleton UI.
Indicadores de carregamento.
Carregamento progressivo.
Atualizações otimistas.
## ⚠️ Pontos Críticos
| Problema | Severidade | Solução |
|-------|----------|----------|
| Não validar initData do Telegram | alta | ## Validando initData |
| TON Connect não funciona em mobile | alta | ## Problemas TON Connect Mobile |
| Mini App lento e com travadas | média | ## Desempenho de Mini App |
| Botões personalizados em vez de MainButton | média | ## Usando MainButton Corretamente |
## Skills Relacionadas
Funciona bem com: `telegram-bot-builder`, `frontend`, `blockchain-defi`, `viral-generator-builder`