GasFree4you
Crypto basics·8 min read

How to create your own wallet: from everyday to unconventional

A mobile app, a hardware wallet, or Python on an offline computer? Create a TRON wallet and understand who controls the keys.

A wallet starts with keys

Coins exist on the blockchain. A wallet helps you view balances and sign transactions with your keys. You can share your public address with a sender; your private key authorizes control of funds and must stay secret.

A recovery phrase, also called a seed phrase, is a backup from which a compatible wallet can restore keys. It is different from the app password: the password protects local access, while the phrase can restore the wallet on another device. Our Python example creates no phrase, just one private key and its address.

The everyday route: a phone app

A hot wallet is convenient for regular transfers: its keys live on a phone or computer that goes online. The app does not have to stay connected all the time to count as hot. TRON examples include TronLink and Trust Wallet.

Installation is usually free and needs no extra device. Network fees still apply, and phishing or malware can put the funds at risk.

  1. Visit the developer’s official website and follow its app-store link. Check the publisher.
  2. Choose to create a new wallet, rather than import someone else’s phrase. Set a strong password or access code.
  3. For the standard recovery-phrase option, write the words in order on paper or metal. Complete the app’s backup check.
  4. Open Receive for TRX or USDT specifically on TRON (TRC20). Copy your address and check that the sender selects the same network.
  5. Start with a small test amount. Before sending funds out, check account activation and the resources needed for fees.

Read the documentation: TronLink, Trust Wallet · TRON.

A hardware wallet: keys on a separate device

Cold storage keeps keys out of an online environment. A hardware wallet generates and uses them inside a separate device: the computer passes transaction data to it, and you confirm on the device. A USB connection alone does not make it a hot wallet.

Ledger supports TRON and TRC20. Trezor support depends on the model: its current guide lists Safe 7, Safe 5, Safe 3, and Model T. Before buying, check the exact model, network, and token you need.

The advantage is key isolation from your everyday computer. The trade-offs are the device cost and additional confirmation steps. Hardware cannot save you from a leaked backup or a malicious transaction you approve yourself.

  1. Buy from the manufacturer or an authorized reseller and follow the manufacturer’s authenticity checks.
  2. Create a new wallet during setup. Do not use a pre-filled recovery card. Safely back up the recovery information generated by the device.
  3. Add a TRON account through the official app, verify the receiving address on the device’s screen, and make a small test transfer.

Read the documentation: Ledger · TRC20, Trezor · TRON / TRC20.

Custodial or self-custody: who controls the keys?

Hot versus cold describes key storage. Custodial versus self-custody describes key control. These are separate distinctions.

With a custodial service, the company manages the keys. You register an account, complete required checks, enable 2FA, and obtain a deposit address. Recovering access may be easier, but withdrawals depend on the service’s rules and may be suspended.

With a self-custody wallet, you manage the keys. Installing the app is not the same as opening an account with a company, and support cannot replace a lost backup. This gives you independence and responsibility for the keys.

To explore your own address and TRON network resources, this article uses the self-custody approach.

The unconventional route: offline Python

Computing a key and address does not require a blockchain connection. The local example below uses TronPy 0.6.1: it makes no API requests and sends no transactions. It demonstrates the mechanics; it is not a complete cold-storage system.

Prepare a trusted offline computer with Python. On a separate online computer with the same OS, architecture, and Python version, download TronPy and its dependencies from a trusted source. Transfer the wheelhouse folder and example file to the offline computer, checking package provenance and checksums. Before generation, disconnect networking and shared clipboards; avoid cloud terminals and screen recording.

The --demo option uses the deliberately public private key with value 1, making the output reproducible. Without that option, the library generates a random key using the operating system’s randomness.

Prepare on the online computer

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

Code: 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()
Download the Python example ↓

Install and run on the offline computer

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

Output when run with --demo

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

A new random key, without --demo

.venv/bin/python tron_wallet.py

A normal run produces a different result. Do not photograph or publish the output or save it to cloud logs. Back up the private key for this single-address example: it does not create a recovery phrase.

Disconnecting the internet cannot fix an infected OS, tampered libraries, or poor randomness. Importing the key into an online app later ends its isolation. Real offline storage also needs a safe signing process and a way to transfer the signed transaction; this example implements neither.

Read the documentation: TronPy · Keys and Addresses.

An address exists before an on-chain account does

Key generation is free and local. Activating a new TRON account is a separate on-chain action, for example a TRX transfer to the new address from an existing account. Before activation, a regular account search in a block explorer may not show it.

Do not assume that receiving USDT alone activates the account. Check its status before use. Sending USDT requires network resources; insufficient resources may lead to TRX being spent. Check current conditions and fees before transferring, and keep the public address distinct from the secret key.

Read the documentation: TRON · Accounts and keys, TRON · Resource model.

Five rules before your first transfer

  1. Never share your recovery phrase or private key, including with ‘support’, a ‘manager’, or a friend. Do not enter them on websites offering to ‘verify’ or ‘activate’ a wallet.
  2. Use paper or metal for the backup and keep it somewhere secure. Avoid screenshots, messages to yourself, ordinary notes apps, and cloud storage. Protect the backup from loss, fire, and other people.
  3. Enable 2FA on exchanges and custodial services: use an authenticator app or a hardware security key where supported. 2FA cannot protect a self-custody wallet once an attacker has its keys.
  4. Consider a hardware wallet for meaningful savings and keep a separate small balance for everyday use. There is no universal monetary threshold: consider what a loss would mean to you.
  5. After pasting, check the network, amount, and the entire recipient address character by character; with hardware, verify them on its screen too. Do not copy addresses from suspicious transaction history. Send a small test amount to a new recipient first.

Read the documentation: Ledger · Security tips.

Does GasFree4you need my recovery phrase?

No. Receiving funds or network resources uses your public address. Your recovery phrase and private key are not needed: never enter them in order forms or send them to support.

← All articles