Skip to main content





To set up your config using tons-interactive interface just go to Config menu from the main menu of the application.


To use your YubiKey device with yubikey type keystores, first set it up. Go to Config > Yubikey menu and follow the instructions. Then create (or restore from unencrypted backup) new yubikey type keystore.


Every time tons reads settings in the way where a next config alters previous one

  1. global: ~/.config/tons/
  2. local: ./.tons/Note: to init tons locally run 'tons init' command
  3. env: export TONS_CONFIG_PATH=~/your/own/path/.tons/

All config.yaml parameters

tons.workdirdirectory where whitelist and keystores are stored
tons.keystore_namename of the keystore a person wants to use in tons
tons.providerprovider to access the TON blockchain
tons.default_wallet_versionthe version that will be used by default during tons wallet create cmd
tons.warn_if_outdatedevery start checks whether there is a new version of tons application
tons.sort_whitelistshow sorted list of whitelist contacts
tons.sort_keystoreshow sorted list of wallet in keystore
provider.dapp.api_keyapi key for the dapp (can be retrieved in the tontech bot)
provider.dapp.testnet_api_keyapi key for the dapp (can be retrieved in the tontech testnet bot)
provider.dapp.networkTON network to use (mainnet/testnet)
dns.max_expiring_inmonths until dns record will be expired. It is used in "DNS > Refresh all" cmd
dns.refresh_send_amountamount to send to refresh dns ownership
dns.refresh_not_yet_owned_send_amountamount to send to refresh dns ownership of the not taken dns record
jetton.gas_amountfees amount in TON coins to send during jetton transfers

List parameters of all configs (global/local/env)

$ tons config --list
~/local/path/.tons/config.yaml tons.keystore_name=dev.keystore
~/.config/.tons/config.yaml tons.keystore_name=global.keystore

List all values of final altered config

$ tons config --current-setup

Change the network

tons config --network testnet

Set value of a parameter

tons config --global tons.keystore_name myKeystore2

Unset value of a parameter

tons config --local tons.keystore_name --unset

Get value of a parameter

$ tons config tons.keystore_name


The best way to set up your device is by using tons-interactive > Config > YubiKey.

But you can also run ykman package.

For example, to generate a private key in the required slot run:

$ ykman piv keys generate 0x87 - -m ${YOUR_MANAGEMENT_KEY} -P ${YOUR_PIN} --pin-policy ONCE --touch-policy ALWAYS -a RSA2048

IMPORTANT: slot id 0x87, pin-policy ONCE and key type RSA2048 are required.