📩
Получить материал в Telegram Подпишитесь на канал и заполните короткую анкету — материалы откроются в нашем приложении
Открыть в Telegram →
DeFiCap · Visual Guide 23.04.2026

Как закрыть займ в Nostra через Voyager

Пошаговая инструкция со скриншотами. Для тех, у кого не работает интерфейс nostra.finance.

Что мы сейчас будем делать

Интерфейс Nostra (nostra.finance) сломан — кнопка «Repay» не работает, баланс не обновляется. Но смарт-контракты Nostra работают. Сейчас мы зайдём в эти контракты напрямую через блокчейн-сканер Voyager и закроем займ вручную.

Что нужно сделать: 1) проверить точный долг, 2) подключить кошелёк к Voyager, 3) разрешить контракту списать токены (approve), 4) погасить долг (burn), 5) при желании вывести залог.

Займёт 10–15 минут при первом разе. Не переживай если непонятно — просто следуй шагам по порядку.

⚠️

Сначала попробуй простые штуки. В 80% случаев проблема лечится так:

1. В кошельке Argent X / Braavos → Settings → Networks → Starknet Mainnet → Custom RPC. Введи: https://starknet-mainnet.g.alchemy.com/v2/demo

2. На сайте nostra.finance нажми Cmd+Shift+R (Mac) или Ctrl+Shift+R (Windows). Открой DevTools (F12) → вкладка Application → Clear Site Data.

3. Попробуй Repay заново. Если работает — закрывай этот гайд, проблема решена.

Что нужно приготовить

Проверь по каждому пункту, что у тебя это есть. Без этого двигаться не стоит.

Адреса контрактов — выбери свой

Нажми Copy рядом с нужным адресом. Всегда два адреса на актив: nDebt (куда гасим) + underlying (сам токен).

nDebt STRK
куда гасить долг STRK
0x1258eae3eae5002125bebf062d611a772e8aea3a1879b64a19f363ebd00947
STRK
underlying — сам токен STRK
0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d
nDebt ETH
куда гасить долг ETH
0x00ba3037d968790ac486f70acaa9a1cab10cf5843bb85c986624b4d0e5a82e74
ETH
underlying — сам токен ETH
0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7
nDebt USDC
куда гасить долг USDC
0x063d69ae657bd2f40337c39bf35a870ac27ddf91e6623c2f52529db4c1619a51
USDC.e
underlying — bridged USDC (Nostra использует этот!)
0x053c91253bc9682c04929ca02ed00b3e423f6710d2ee7e0d5ebb06f3ecf368a8
nDebt USDT
куда гасить долг USDT
0x024e9b0d6bc79e111e6872bb1ada2a874c25712cf08dfc5bcf0de008a7cca55f
Про USDC — осторожно! Nostra принимает USDC.e (bridged, адрес 0x053c…68a8), а НЕ нативный USDC (0x0330…). Если у тебя в кошельке только нативный USDC — сначала обменяй его на USDC.e через StarkGate portal (1:1, без комиссии).
01

Открой Voyager и найди свой nDebt-контракт

Открой в браузере voyager.online. В строке поиска вверху вставь адрес nDebt того актива, которым занимался (из таблицы выше). Нажми Enter.
Voyager главная страница
Voyager главная. Строка поиска — большая, по центру вверху, с иконкой лупы. Туда вставляем скопированный адрес.

Если используешь STRK для погашения — копируй адрес nDebt STRK: 0x1258…00947. Для USDC долга — nDebt USDC. И так далее.

Быстрый переход: можно прямо в адресной строке браузера вбить https://voyager.online/contract/<вставить_адрес> и сразу попадёшь на контракт.
02

Посмотри на страницу контракта — знакомимся с интерфейсом

Ты попал на страницу контракта. Прокрути вниз — увидишь горизонтальное меню с вкладками:

Контракт Voyager — вкладки
Вкладки контракта. Нас интересуют Read Contract (посмотреть долг) и Write Contract (сделать repay).
  • Contract Code — код контракта, не трогаем
  • Read Contract — чтение данных (посмотрим сколько должны)
  • Write Contract — изменение данных (здесь будем делать burn)
Если увидишь синий баннер «The contract ABI is not verified» — это нормально. Не волнуйся, всё работает, просто предупреждение.
03

Узнай точный размер долга

Кликни вкладку Read Contract. В списке функций слева найди balance_of (она #21 в списке). Кликни на неё. В поле account вставь свой адрес кошелька и нажми кнопку Query.
Read Contract — функция balance_of
Вкладка Read Contract. Слева список функций контракта, посередине — параметры выбранной функции, справа — результат.
balance_of с адресом
balance_of с заполненным account. После клика Query в правой части экрана появится число — это твой точный долг в raw units.

Что делать с полученным числом: это долг в маленьких единицах (wei). Чтобы получить «человеческое» число:

STRK / ETH / WBTC → разделить на 10^18 (18 нулей)
100000000000000000000 = 100 STRK
USDC / USDT → разделить на 10^6 (6 нулей)
100000000 = 100 USDC
Запиши это число! Оно понадобится в шаге 05 и 06. Возьми чуть с запасом: умножь на 1.05 (+5%) — проценты могут немножко подрасти за время пока ты делаешь approve.
04

Подключи кошелёк к Voyager

Переключись на вкладку Write Contract. Справа от строки поиска функций — кнопка Connect Wallet. Кликни.
Write Contract с кнопкой Connect Wallet
Вкладка Write Contract. Кнопка Connect Wallet в правом верхнем углу формы, фиолетового цвета. Пока не подключён — поля функций заблокированы.

Появится модальное окно со списком кошельков:

Выбор кошелька
Список кошельков. Тот, что установлен в браузере — будет сверху. Клик по нему.
Argent X переименован в «Ready Web wallet»! В списке НЕТ пункта «Argent». Если у тебя установлен Argent X — выбирай «Ready Web wallet» (самый первый пункт в списке). Это не ошибка, Argent сделал ребрендинг.
  • Argent X в браузере → выбирай Ready Web wallet
  • Braavos в браузере → выбирай пункт, где написано Braavos (если установлен — будет без слова «Install»)

После клика — подтверди подключение в самом расширении кошелька. Кнопка Connect Wallet на Voyager превратится в адрес твоего кошелька. Поля Write станут активными.

05

Approve — разреши nDebt-контракту списать твой токен

Не закрывая Voyager, открой новую вкладку → вставь в Voyager адрес underlying-токена (второй столбец из таблицы контрактов). Например, для погашения STRK-долга — адрес STRK: 0x0471…938d. Переключись на вкладку Write Contract. Найди функцию approve (#10 в списке). Заполни как ниже.
Контракт STRK underlying
Страница токена STRK. Обрати внимание на имя (StarkGate: STRK Token) — это подтверждает, что ты на правильном контракте.
Функция approve с заполненными полями
Функция approve с двумя полями. Заполняй по примеру ниже.

Как заполнять поля approve:

spender (кому разрешаем тратить)
адрес nDebt того актива, которым гасишь
# для STRK: 0x1258eae3eae5002125bebf062d611a772e8aea3a1879b64a19f363ebd00947
amount (сколько разрешаем тратить)
число из шага 03 × 1.05
# если долг был 100 STRK (100000000000000000000), пиши 105000000000000000000
Важно! Поле spender должно содержать адрес nDebt-контракта, а не CDP Manager и не адрес своего кошелька! Проверь дважды перед тем как нажимать Write.

После заполнения — нажми кнопку Write внизу формы. В кошельке появится окно подтверждения транзакции. Проверь что всё верно → подтверди. Дождись Accepted on L2 (обычно 15–60 секунд).

06

Burn — само погашение долга

Вернись на вкладку Voyager, открытую на nDebt-контракте (где делал проверку долга). Переключи на вкладку Write Contract. Найди функцию burn (#2 в списке). Заполни два поля и жми Write.
Функция burn
Функция burn. Два поля: burn_from (твой адрес кошелька) и amount (сколько гасим).
burn с заполненными полями
Пример заполненных полей burn. Адрес кошелька в burn_from, сумма долга в amount.

Как заполнять поля burn:

burn_from (с чьего счёта списать долг)
твой адрес кошелька
# тот самый, который используешь, Connect Wallet уже знает
amount (сколько долга гасим)
число из шага 03
# та же цифра, что в approve, но без +5% — ровно долг

Нажми Write → подтверди в кошельке. Подожди Accepted on L2.

Почему это работает, хоть UI Nostra сломан? Контракт при вызове burn сам пересчитывает актуальные проценты и списывает ровно ту сумму, которая нужна. Он не зависит от того, что показывал сломанный фронтенд.
07

Проверь что всё получилось

Вернись на вкладку Read Contract того же nDebt-контракта. Снова вызови balance_of со своим адресом.
  • Результат должен быть 0 — долг полностью погашен
  • Если цифра ненулевая, но маленькая (типа 12345) — это «пыль» от процентов, можно игнорировать или добить ещё одним burn
  • Если осталось значительно — делали частичное погашение, всё ок
Успешная транзакция
Так выглядит успешная транзакция burn. Статусы «Accepted on L2» и «Accepted on L1» — всё прошло. В разделе Tokens Transferred — видно сгоревшие dSTRK (debt-токен) и пришедший STRK.
08

Выведи залог (если нужно)

Вывод залога — это тоже burn, но на collateral-токене. Открой в своём кошельке список активов — найди токен с именем nSTRK, iSTRK, nETH и т.п. Это твой collateral-токен.

Как найти адрес:

  • Открой Argent X (Ready) или Braavos
  • Найди в списке токенов тот, что с префиксом n или i (например nSTRK)
  • Кликни на него → детали → скопируй адрес контракта

Открой этот контракт в Voyager → Write Contract → функция burn → заполни:

burn_from
твой адрес кошелька
amount
balance_of этого collateral-токена
# проверь через Read Contract → balance_of, сколько у тебя залога
Порядок имеет значение! Сначала repay (шаг 06), только потом withdraw. Если наоборот — транзакция упадёт с ошибкой INVALID_ACCOUNT_STATE (твой Health Factor не позволит вывести залог, пока есть долг).
Approve для withdraw не нужен — в отличие от repay, collateral-токен сжигается напрямую, без разрешения.

Что делать если что-то пошло не так

Кнопка Write неактивна, не могу нажать
Кошелёк не подключён. Проверь: в правом верхнем углу формы должен быть твой адрес, а не кнопка Connect Wallet. Если кнопка Connect Wallet исчезла, но поля всё равно disabled — обнови страницу (F5) и подключи заново.
Транзакция падает с «INSUFFICIENT_ALLOWANCE»
Approve был на сумму меньше текущего долга. Возвращайся к шагу 05 и сделай approve с большим запасом (умножь на 1.10 вместо 1.05) или на максимум. Попробуй burn ещё раз.
Транзакция падает с «EXCEEDS_BALANCE»
В поле amount указал больше чем твой реальный долг. Перечитай balance_of на nDebt (шаг 03) и вставь ровно это число. Долг мог немного вырасти за время подготовки — перепроверь прямо перед burn.
Транзакция на withdraw залога падает с «INVALID_ACCOUNT_STATE»
Пытаешься вывести залог до полного погашения долга. Сначала полностью закрой долг (шаг 06 и проверка в шаге 07, чтобы balance_of был 0), потом выводи залог.
В модалке Connect Wallet не вижу Argent
Argent теперь называется Ready Web wallet (ребрендинг). Выбирай его — это то же самое расширение.
Voyager тормозит или выдаёт ошибки
Смени RPC в кошельке: Argent X → Settings → Networks → Starknet Mainnet → Custom RPC → https://starknet-mainnet.g.alchemy.com/v2/demo. Обнови Voyager (F5).
Транзакция зависла в pending больше 10 минут
Starknet периодически нестабилен. Не отправляй повторно — обе могут пройти. Открой status.starknet.io — возможно сейчас сбой. Подожди 20–30 минут.
Не знаю свой адрес кошелька
Открой расширение Argent X / Ready или Braavos в браузере. Сверху в шапке рядом с именем аккаунта — небольшая иконка копирования. Нажми — адрес скопирован в буфер.

Доказательство что это работает

Процедура проверена на реальной успешной транзакции от 23.04.2026: approve STRK → burn на nDebt STRK. Газ — 0.29 STRK, подтверждена на L2 и L1.

voyager.online/tx/0x6d61dc4c…e54ea1e