
Монеты и токены: зачем нужен ETH, чтобы отправить USDC
Это один из самых частых сюрпризов в криптовалютах. У вас есть USDC на 500 $ в Ethereum, вы пытаетесь их отправить, а кошелёк сообщает, что средств недостаточно. Недостаточно чего? Ответ кроется в разнице между монетой и токеном — и как только вы её поймёте, многое в поведении кошельков внезапно станет логичным.
Монеты — собственные деньги блокчейна
У каждого блокчейна есть нативный актив, встроенный в его правила. У Bitcoin есть BTC, у Ethereum — ETH, у Solana — SOL, у Polygon — POL. Это монеты: их учёт ведёт сама сеть, и именно их сеть принимает в качестве оплаты за обработку транзакций.
Когда вы отправляете монету, блокчейн перемещает её напрямую. Никакого контракта посередине нет — только собственный учёт протокола.
Токены живут внутри контрактов
Токен устроен иначе. В Ethereum и подобных сетях токен вроде USDC, USDT или токена управления — это смарт-контракт, который ведёт собственный реестр: список адресов и то, сколько токенов принадлежит каждому из них. В Solana токены следуют стандарту SPL, а балансы хранятся в отдельных токен-аккаунтах.
Ваш «баланс USDC» на самом деле — это запись в контракте USDC о том, что определённая сумма принадлежит вашему адресу. Отправить USDC — значит попросить этот контракт обновить реестр, то есть перенести число из вашей записи в чужую.
Поэтому один и тот же токен может существовать в нескольких сетях как совершенно отдельные сущности. USDC в Ethereum и USDC в Polygon — это разные контракты с разными реестрами. Одни версии выпускаются нативно, другие представляют собой обёрнутые или перенесённые через мост представления актива, который хранится в другом месте.
Газ всегда оплачивается в монете
Вот откуда берётся сюрприз. Попросить контракт токена переместить ваш баланс — это всё равно транзакция в блокчейне, а блокчейн берёт комиссию за каждую транзакцию — газ. Эта комиссия оплачивается в нативной монете, а не в токене, который вы отправляете.
Значит, чтобы отправить USDC в Ethereum, на одном и том же адресе вам нужны две вещи:
- USDC, которые вы хотите отправить, и
- немного ETH для оплаты транзакции.
Без ETH ваши USDC застрянут — не пропадут, просто их нельзя будет переместить, пока вы не пополните баланс. Это правило действует везде: токенам в Polygon для газа нужен POL, в BNB Chain — BNB, в Avalanche — AVAX, а в Base — ETH.
Дополнительная особенность Solana
По сути Solana работает так же — комиссии оплачиваются в SOL, — но с одним дополнением. Для каждого токена, которым вы владеете, нужен свой токен-аккаунт, а его создание требует небольшого депозита в SOL, называемого рентой. Когда кто-то присылает вам токен, которого у вас раньше не было, для него нужно создать токен-аккаунт. В статье Как работают токен-аккаунты и рента всё объяснено подробно; если коротко, держите под рукой немного SOL, чтобы хранить и перемещать и SPL-токены.
Какие ошибки это объясняет
Когда разница между монетой и токеном ясна, несколько классических проблем становятся понятными:
- «Недостаточно средств» при полном балансе токенов. У вас закончилась нативная монета для оплаты газа.
- Токены, отправленные не в ту сеть. USDC, отправленные в одной сети, не появятся в другой, даже на том же адресе, потому что это другой контракт в другом реестре.
- Отправка последних монет. Если полностью опустошить баланс ETH, все токены на этом адресе нельзя будет переместить, пока вы его не пополните.
- «Бесплатные» токены, которые не получается продать. Для перемещения непрошеного токена может потребоваться газ — и он может быть устроен так, что попытка обойдётся вам дороже, чем он стоит.
Как это работает в SSP
SSP показывает монеты и токены по каждой сети, внутри кошелька соответствующей сети. В EVM-сетях ваш аккаунт SSP — это смарт-аккаунт под управлением вашего мультиподписного кошелька 2 из 2, а газ за отправку токена оплачивается нативной монетой того же хранилища, поэтому держите рядом с токенами немного ETH (или POL, BNB, AVAX). Когда вы отправляете токен, SSP Key показывает перевод токена, декодированный из транзакции, — получателя и сумму токена, а не просто «сырой» вызов контракта.
В Solana релей SSP заранее оплачивает сетевую комиссию, а хранилище возмещает её в SOL в рамках той же отправки, так что немного SOL в хранилище всё равно понадобится.
Честное резюме
Монеты — это собственные деньги блокчейна; токены — это балансы внутри контрактов, работающих в блокчейне. Каждая транзакция оплачивается в монете, включая транзакции, перемещающие токены.
Держите небольшой запас нативной монеты в каждой сети, где у вас есть токены, проверяйте, в какой сети находится токен, прежде чем отправлять или получать его, — и вы избежите самых распространённых в криптовалютах моментов «куда делись мои деньги?».


