Храните авторизацию вне исходного кода
Используйте native fetch в доверенном Node/server runtime. Браузер должен вызывать ваш backend, а не ChainsFlow с секретным токеном.
Используйте ID, выданный API
Создайте портфель через POST /api/v1/portfolios и сохраните возвращённый portfolioId в своём backend. Границу владения определяет API-ключ.
Обрабатывайте контракт ответа
Проверяйте HTTP status до декодирования success data. Ошибки имеют application/problem+json, а платные успехи — заголовки стоимости и остатка кредитов.