GasFree4you
Основы крипты·8 минут

Как завести свой кошелёк: от обычного способа до экзотического

Приложение, аппаратный кошелёк или Python на компьютере без интернета? Создаём кошелёк для TRON и разбираемся, кому достаются ключи.

Кошелёк начинается с ключей

Монеты находятся в блокчейне. Кошелёк помогает просматривать баланс и подписывать операции ключами. Публичный адрес можно передать отправителю; приватный ключ открывает доступ к управлению средствами и должен оставаться секретным.

Seed-фраза — резервная копия, из которой совместимый кошелёк восстанавливает ключи. Это не пароль от приложения: пароль защищает локальный доступ, а фраза позволяет восстановить кошелёк на другом устройстве. В Python-примере ниже фразы не будет — только один приватный ключ и его адрес.

Обычный способ: приложение на телефоне

Для повседневных переводов удобен горячий кошелёк: его ключи находятся на телефоне или компьютере, который выходит в интернет. Приложение не обязано быть постоянно онлайн, чтобы считаться горячим. Примеры для TRON — TronLink и Trust Wallet.

Установка обычно бесплатна, отдельное устройство не требуется. Но комиссии сети остаются, а фишинг и вредоносное ПО могут поставить средства под угрозу.

  1. Откройте официальный сайт разработчика и перейдите оттуда в магазин приложений. Проверьте издателя.
  2. Выберите создание нового кошелька, а не импорт чужой фразы. Задайте надёжный пароль или код доступа.
  3. В стандартном варианте с seed-фразой запишите слова по порядку на бумаге или металле. Пройдите проверку резервной копии в приложении.
  4. Откройте получение TRX или USDT именно в сети TRON (TRC20). Скопируйте свой адрес и проверьте выбранную сеть у отправителя.
  5. Начните с небольшой тестовой суммы. Перед исходящим переводом проверьте активацию аккаунта и ресурсы для комиссии.

Подробнее в документации: TronLink, Trust Wallet · TRON.

Аппаратный кошелёк: ключи в отдельном устройстве

Холодное хранение означает, что ключи не попадают в онлайн-среду. Аппаратный кошелёк создаёт и использует их внутри отдельного устройства: компьютер передаёт данные операции, а подтверждение происходит на устройстве. Само подключение по USB не превращает такой кошелёк в горячий.

Ledger поддерживает TRON и TRC20. У Trezor поддержка зависит от модели: актуальная инструкция перечисляет Safe 7, Safe 5, Safe 3 и Model T. Перед покупкой проверьте конкретную модель, сеть и нужный токен.

Плюс — изоляция ключей от обычного компьютера. Минусы — стоимость устройства и дополнительные шаги подтверждения. Аппаратный кошелёк не спасёт от утечки резервной копии или вредоносной операции, которую вы сами одобрили.

  1. Купите устройство у производителя или авторизованного продавца и выполните проверку подлинности по инструкции производителя.
  2. При настройке создайте новый кошелёк. Не используйте заранее заполненную карточку со словами. Сохраните резервную копию, которую создаст устройство.
  3. Добавьте аккаунт TRON через официальное приложение, сверьте адрес получения на экране устройства и сделайте небольшой тестовый перевод.

Подробнее в документации: Ledger · TRC20, Trezor · TRON / TRC20.

Кастодиальный или свой: кто распоряжается ключами

Горячий или холодный — про хранение ключей. Кастодиальный или некастодиальный — про контроль над ними. Это разные классификации.

У кастодиального сервиса ключами управляет компания. Вы регистрируете аккаунт, проходите необходимые проверки, включаете 2FA и получаете адрес пополнения. Восстановление доступа может быть проще, но вывод зависит от правил сервиса и может быть приостановлен.

В некастодиальном кошельке ключами управляете вы. Установка приложения не равна открытию счёта у компании, а поддержка не сможет заменить потерянную резервную копию. Такой вариант даёт самостоятельность и требует бережного обращения с ключами.

Для изучения собственного адреса и работы с ресурсами TRON в этой статье мы используем некастодиальный вариант.

Экзотический способ: Python без интернета

Чтобы вычислить пару ключ–адрес, подключение к блокчейну не нужно. Ниже — локальный пример на TronPy 0.6.1: он не обращается к API и не отправляет транзакции. Это демонстрация механики, а не готовая система холодного хранения.

Подготовьте доверенную офлайн-машину и Python. На отдельном компьютере с такой же ОС, архитектурой и версией Python скачайте TronPy и зависимости из проверенного источника. Перенесите каталог wheelhouse и файл примера на офлайн-машину, проверьте происхождение пакетов и их контрольные суммы. До генерации отключите сеть и общий буфер обмена; не используйте облачный терминал или запись экрана.

Режим --demo использует заведомо публичный ключ со значением 1, чтобы вывод можно было повторить. Без этого флага библиотека создаёт случайный ключ средствами операционной системы.

Подготовка на машине с интернетом

python3 -m pip download --only-binary=:all: --dest wheelhouse tronpy==0.6.1

Код: tron_wallet.py

"""Local TRON key generation. Educational example, not an audited wallet."""
import argparse

from tronpy.keys import PrivateKey


def main():
    parser = argparse.ArgumentParser(description=__doc__)
    parser.add_argument("--demo", action="store_true",
                        help="Use a PUBLIC example key. Never send funds to it.")
    args = parser.parse_args()

    if args.demo:
        key = PrivateKey(bytes.fromhex("00" * 31 + "01"))
        print("DEMO ONLY - PUBLIC KEY MATERIAL - DO NOT SEND FUNDS")
    else:
        key = PrivateKey.random()
        print("SECRET - keep this output offline and private")

    print("Private key:", key.hex())
    print("TRON address:", key.public_key.to_base58check_address())


if __name__ == "__main__":
    main()
Скачать Python-пример ↓

Установка и запуск на офлайн-машине

python3 -m venv .venv
.venv/bin/python -m pip install --no-index --find-links=wheelhouse tronpy==0.6.1
.venv/bin/python tron_wallet.py --demo

macOS / Linux: .venv/bin/python
Windows: .venv\Scripts\python.exe

Вывод при запуске с --demo

DEMO ONLY - PUBLIC KEY MATERIAL - DO NOT SEND FUNDS
Private key: 0000000000000000000000000000000000000000000000000000000000000001
TRON address: TMVQGm1qAQYVdetCeGRRkTWYYrLXuHK2HC

Новый случайный ключ, без --demo

.venv/bin/python tron_wallet.py

При обычном запуске результат будет другим. Не фотографируйте и не публикуйте вывод, не сохраняйте его в облачные логи. Для этого одноадресного примера резервировать нужно приватный ключ: seed-фраза не создаётся.

Отключённый интернет не исправляет заражённую ОС, подменённые библиотеки или слабую случайность. Если потом импортировать ключ в онлайн-приложение, он перестанет быть изолированным. Настоящее офлайн-хранение требует также безопасной подписи и переноса подписанной транзакции; этот пример их не реализует.

Подробнее в документации: TronPy · Keys and Addresses.

Адрес создан. Аккаунт в сети — ещё нет

Генерация ключей бесплатна и происходит локально. Активация нового аккаунта TRON — отдельная операция в сети, например перевод TRX на новый адрес с существующего аккаунта. До активации обычный поиск аккаунта в обозревателе может его не показывать.

Не рассчитывайте, что получение USDT само по себе активирует аккаунт. Перед использованием проверьте его статус. Для отправки USDT нужны ресурсы сети; при их нехватке могут расходоваться TRX. Условия и комиссии проверяйте перед операцией, а публичный адрес не путайте с секретным ключом.

Подробнее в документации: TRON · Accounts and keys, TRON · Resource model.

Памятка: пять правил перед первым переводом

  1. Никому не раскрывайте seed-фразу и приватный ключ — в том числе «поддержке», «менеджеру» и знакомым. Не вводите их на сайтах для «проверки» или «активации» кошелька.
  2. Для резервной копии выбирайте бумагу или металл и защищённое место. Не делайте скриншоты, не отправляйте слова себе в мессенджер и не храните их в обычных заметках или облаке. Берегите копию от потери, огня и посторонних.
  3. Включите 2FA на биржах и в кастодиальных сервисах: приложение-аутентификатор или аппаратный ключ, если поддерживается. 2FA не защитит некастодиальный кошелёк, если злоумышленник уже получил его ключи.
  4. Для значимых сбережений рассмотрите аппаратный кошелёк, а для повседневных операций держите отдельный небольшой баланс. Универсального порога в рублях нет: ориентируйтесь на последствия потери для себя.
  5. Проверяйте сеть, сумму и весь адрес получателя символ за символом после вставки, а на аппаратном кошельке — ещё и на его экране. Не копируйте адрес из подозрительной истории переводов. Для нового получателя сначала отправьте небольшую тестовую сумму.

Подробнее в документации: Ledger · Security tips.

Нужно ли сообщать seed-фразу GasFree4you?

Нет. Для получения средств или ресурсов сети используется публичный адрес. Seed-фраза и приватный ключ для этого не нужны: их нельзя вводить в формы заказа или отправлять поддержке.

← Все материалы