Ошибка программы Custom Program Error 0x1 — один из самых распространенных кодов ошибок при работе с токенами SPL или dApps на Solana. Она появляется в всплывающих окнах кошельков (Phantom, Solflare, Backpack) и в логах Solscan при минте токенов, создании пулов, отзыве прав или переводах.
Хотя сообщение Program log: Error: custom program error: 0x1 выглядит непонятно, причина проста: Недостаточно средств (0x1 переводится как 0x1: InsufficientFunds в официальной спецификации программы SPL Token).
Понимание того, почему на кошельке не хватает средств даже при положительном балансе SOL, поможет вам исправить ошибку и успешно завершить транзакцию.
Технический смысл ошибки 0x1
В системной программе Solana и программе SPL Token код ошибки 0x1 возникает каждый раз, когда инструкция пытается списать средства с кошелька, на котором недостаточно нативного SOL для выполнения операции.
На Solana нативный SOL требуется для двух разных целей:
- Комиссия за обработку транзакции: Небольшая сетевая комиссия (обычно 0.000005 SOL), выплачиваемая валидаторам за обработку инструкций.
- Депозит за аренду аккаунтов (Rent Exemption): Обязательный одноразовый депозит (около 0.002–0.005 SOL за аккаунт) для инициализации новых аккаунтов (например, Associated Token Account, аккаунта метаданных или хранилищ пула) в памяти валидаторов.
Если на вашем кошельке 0.001 SOL, этого достаточно для комиссии за транзакцию, но транзакция завершается ошибкой 0x1, так как баланса не хватает на оплату аренды нового аккаунта.
Официальное описание кодов ошибок написано в Спецификации ошибок Solana.
Частые сценарии появления ошибки 0x1
Сценарий 1: Создание токена SPL или пула ликвидности
При выпуске токена или создании пула транзакция инициализирует сразу несколько новых аккаунтов (Mint Account, Metadata Account, OpenBook Market, аккаунты хранилищ). Если у вас недостаточно SOL для оплаты аренды всех аккаунтов, вся транзакция отменяется с ошибкой 0x1.
Сценарий 2: Перевод токенов на новый кошелек
Если у получателя еще нет созданного аккаунта токена (ATA) для отправляемого токена, транзакция должна сначала создать ATA. Если у вас нет ~0.002 SOL на оплату аренды аккаунта получателя, произойдет ошибка 0x1.
Сценарий 3: Отзыв прав или блокировка ликвидности
Даже если отзыв прав или блокировка LP-токенов — это обновление состояния, приоритетные комиссии и резервирование требуют минимального запаса SOL.
Пошаговое исправление ошибки Custom Program Error 0x1
Следуйте этим простым шагам для устранения ошибки 0x1:
Шаг 1: Проверьте баланс нативного SOL
Откройте кошелек. Проверьте баланс именно нативного SOL (не wrapped SOL и не SPL-токенов). Убедитесь, что проверяете основной баланс.
Шаг 2: Пополните баланс SOL
Пополните кошелек нативным SOL. Мы рекомендуем удерживать следующий минимальный запас SOL в зависимости от операции:
- Создание токена: Держите минимум 0.02 SOL–0.05 SOL на кошельке.
- Создание пула ликвидности: Держите минимум 0.5 SOL плюс сумму SOL для ликвидности.
- Отзыв прав: Держите минимум 0.01 SOL на кошельке.
- Обычный перевод токенов: Держите минимум 0.005 SOL на кошельке.
Шаг 3: Повторите транзакцию
После пополнения баланса обновите веб-страницу для получения свежего хэша блока (blockhash), снова подключите кошелек и выполните транзакцию.
Таблица решения проблем с ошибкой 0x1
| Выполняемая операция |
Причина ошибки 0x1 |
Необходимое действие |
| Минт токена |
Не хватает SOL на аренду аккаунта метаданных и минта |
Пополнить баланс на 0.02 SOL |
| Создание пула |
Не хватает SOL на хранилища и рынок DEX |
Пополнить SOL для комиссий и ликвидности |
| Перевод токенов |
Не хватает SOL на создание ATA получателя |
Добавить 0.005 SOL на кошелек |
| Отзыв прав |
Не хватает SOL на сетевые и приоритетные комиссии |
Добавить 0.01 SOL на баланс |
Поддержание небольшого запаса нативного SOL на кошельке предотвратит появление ошибок 0x1 и обеспечит стабильную работу с токенами в Solana.