Ошибка: TON Connect — манифест не найден

Причина и решение ошибки TON Connect, когда кошелёк не может загрузить tonconnect-manifest.json.

TON Connect: манифест не найден

Кошелёк не смог скачать tonconnect-manifest.json по URL из manifestUrl. Connect обрывается до выбора аккаунта.


Причина

  • файл не задеплоен / неверный путь (404);
  • manifestUrl указывает на localhost — мобильный кошелёк туда не достучится;
  • CORS / HTTPS: манифест должен отдаваться по публичному HTTPS без auth;
  • JSON битый или не тот Content-Type;
  • mixed content: страница на https, manifest на http.

Решение

Положи файл в public/tonconnect-manifest.json (Vite/Next) и отдай его как статику:

json
{
  "url": "https://your-app.example",
  "name": "Your App",
  "iconUrl": "https://your-app.example/icon-180.png",
  "termsOfUseUrl": "https://your-app.example/terms",
  "privacyPolicyUrl": "https://your-app.example/privacy"
}
tsx
// @tonconnect/ui-react ^2
import { TonConnectUIProvider } from "@tonconnect/ui-react";

export function Providers({ children }: { children: React.ReactNode }) {
  return (
    <TonConnectUIProvider manifestUrl="https://your-app.example/tonconnect-manifest.json">
      {children}
    </TonConnectUIProvider>
  );
}

Проверка:

bash
curl -I https://your-app.example/tonconnect-manifest.json
# ожидается HTTP 200, доступ без cookie/auth

Для локальной разработки используй туннель (ngrok/cloudflared) и его HTTPS URL в manifestUrl.


Как избежать в будущем

Манифест — публичный HTTPS URL, доступный из интернета. После деплоя всегда проверяй curl и открытие URL в режиме инкогнито с телефона.

Материалы gramdocs.tech носят образовательный характер и не являются финансовой, юридической или инвестиционной рекомендацией. Работа с блокчейном TON и токеном Gram связана с рисками потери средств. Правовая информация