Что такое SPL-токен: токены в сети Solana

SPL-токен — токен в блокчейне Solana, выпущенный через стандартную программу Token Program; так устроены USDT и USDC в Solana.

В отличие от Ethereum, где каждый токен — отдельный смарт-контракт со своим кодом, в Solana все стандартные токены обслуживает одна общая программа — Token Program (а также её расширенная версия Token-2022). Конкретный токен определяется адресом его mint — «монетного двора», который хранит параметры токена: количество знаков после запятой и право выпуска.

Главная особенность Solana — токен-аккаунты. Баланс SPL-токена хранится не на основном адресе кошелька, а в отдельном аккаунте, привязанном к паре «владелец + mint». Обычно это ассоциированный токен-аккаунт (ATA), адрес которого вычисляется детерминированно. Если у получателя ещё нет такого аккаунта, отправитель создаёт его при переводе и вносит небольшой депозит в SOL, чтобы аккаунт не облагался арендой. Кошельки делают это автоматически, но стоимость перевода «на новый адрес» из-за этого выше.

Комиссии в Solana низкие и платятся в SOL. Как и в других сетях, без нативной монеты отправить токен не получится. Подтверждение в Solana проходит быстро, а у транзакций есть уровни подтверждения — processed, confirmed и finalized; для зачисления платежа надёжнее опираться на finalized.

Ошибки при приёме SPL-токенов: продавец указывает адрес токен-аккаунта вместо адреса владельца (или наоборот), проверяет токен по названию, а не по адресу mint, или не учитывает, что поддельных токенов с тикером USDC в Solana немало. Правильная схема — выдавать клиенту адрес кошелька-владельца и проверять mint входящего токена.

Moonvex принимает в Solana монету SOL и токены USDT и USDC. Каждый платёж получает свой адрес, а зачисление происходит после подтверждения двумя независимыми провайдерами узлов.

Частые вопросы

Нужен ли SOL, чтобы отправить USDT в Solana?

Да. Комиссия сети и депозит за создание токен-аккаунта получателя оплачиваются в SOL.

Что такое ассоциированный токен-аккаунт?

Это стандартный аккаунт, в котором хранится баланс конкретного токена для конкретного владельца. Его адрес вычисляется из адреса кошелька и адреса mint, поэтому кошельки находят его автоматически.

Какой адрес давать клиенту — кошелька или токен-аккаунта?

Обычно адрес кошелька-владельца: кошелёк клиента сам найдёт или создаст нужный токен-аккаунт. Платёжный сервис при этом проверяет поступление на соответствующий токен-аккаунт.

Где это пригодится

Связанные термины

Начните принимать оплату сегодня

Аккаунт и первый проект за минуту, без абонентской платы.

Создать аккаунт