Манифест приложения (tonconnect-manifest.json)
Соберёшь валидный tonconnect-manifest.json: поля, хостинг на HTTPS и типичные ошибки 404/CORS.
Зачем манифест
tonconnect-manifest.json — публичный JSON, который кошелёк загружает по URL при Connect. Из него пользователь видит имя, иконку и сайт приложения. Без доступного манифеста подключение ломается (часто выглядит как «манифест не найден»).
Это не секретный конфиг и не API-ключ — файл должен открываться в браузере без авторизации.
Полный рабочий пример
Положи файл в public/tonconnect-manifest.json (или отдавай с CDN) так, чтобы он открывался по прямому HTTPS-URL:
Минимально обязательны:
| Поле | Требование |
|---|---|
url | HTTPS-адрес приложения (origin) |
name | Человекочитаемое имя в кошельке |
iconUrl | HTTPS-картинка (PNG/SVG), желательно квадрат ≥ 180×180 |
termsOfUseUrl и privacyPolicyUrl — опциональны, но полезны для магазинов/кошельков.
В коде:
Проверка: открой manifestUrl в инкогнито — должен быть JSON с Content-Type, близким к application/json, без редиректа на HTML логина.
Как это работает
Кошелёк по manifestUrl делает HTTP GET → читает name / iconUrl → показывает их в экране подтверждения.
url в JSON должен соответствовать реальному origin приложения (важно и для ton_proof: domain в proof сверяют с манифестом).
CORS: если манифест на другом домене, сервер должен отдавать заголовки, позволяющие читать JSON со стороны клиента кошелька / bridge-сценариев. Проще всего хостить манифест на том же origin, что и dApp.
Частые ошибки
404 или SPA fallback на index.html → кошелёк получает HTML вместо JSON. Исключи путь манифеста из rewrite правил (Next.js: файл в public/).
iconUrl по HTTP или битая ссылка → Connect может пройти, но UI кошелька выглядит «пустым» / часть клиентов ругается. Только HTTPS и реальный файл.
url = localhost в production-манифесте → мобильный кошелёк не ассоциирует приложение с реальным доменом. Для локальной разработки используй туннель и манифест с тем же публичным host.
Что дальше
- Подключение кошелька через @tonconnect/ui-react — подставь свой
manifestUrl - Ошибка: TON Connect — манифест не найден — чеклист починки 404/CORS
- TON Proof: подтверждение владения кошельком — domain из манифеста участвует в проверке
Материалы gramdocs.tech носят образовательный характер и не являются финансовой, юридической или инвестиционной рекомендацией. Работа с блокчейном TON и токеном Gram связана с рисками потери средств. Правовая информация