Skip to main content

WARNING: some commands may be upgraded or changed

Functionality and examples

Easy installation with a single command for non developers

sh -c "$(curl -sSfL https://raw.githubusercontent.com/tonfactory/temp_wton_install/master/install)"

Installation with pip3

$ pip3 install wton
$ wton init

WARNING: for better user experience use virtual environment (python3 -m venv venv & source venv/bin/activate)

wton encrypts all your wallets info in a keystore file using your password. Create an encrypted keystore and select it as a current keystore.

$ wton keystore new myKeystore
Password []:

$ wton config wton.keystore_name myKeystore

Create any type of a TON wallet

$ wton wallet create \
	PocketMoney \
	--workchain 0 \
	--version v4r2 \
	--comment “My main wallet” \
	--save-to-whitelist myPocketMoney

Add your contacts to a whitelist

$ wton whitelist add myBestFriend EQBP5aEPlmFNr4eS3DJw2ydC4X_hOumwZoqCcJgHVSQHjZWW

Transfer money from the wallet to a whitelist contact

$ wton transfer PockeyMoney myBestFriend 10 --message “Happy birthday!”

Features

Switch between mainnet and testnet

$ wton config --network mainnet

Keystore, wallet, whitelist commands support CRUD (create, read, update, delete). Some examples

$ wton wallet get oldWallet
Raw address: 0:4fe5a10f96614daf8792dc3270db2742e17fe13ae9b0668a827098075524078d
Nonbounceable address: UQBP5aEPlmFNr4eS3DJw2ydC4X_hOumwZoqCcJgHVSQHjchT
Bounceable address: EQBP5aEPlmFNr4eS3DJw2ydC4X_hOumwZoqCcJgHVSQHjZWW
Version: v4r2
Workchain: 0
Comment: None

$ wton wallet delete oldWallet
Are you sure you want to delete oldWallet wallet? [y/N]: y

$ wton whitelist edit myBestFriend --name myFriend

Backup and restore your keystores

$ wton keystore backup ./myKeystore.backup
Password []: 
Backup stores keys in UNENCRYPTED FORM. Are you sure want to export unencrypted keys to disk? [y/N]: y

$ wton keystore restore myRestoredKeystore ./myKeystore.backup
Password []:

Export your wallet mnemonic words and import them in any official TON wallet

$ wton wallet reveal PocketMoney
Password []: 
cliff spin hawk artefact language volume subway surround nuclear lawn weird arrest mule cube impact crash abandon slender turn basic sentence actor you fix

Import wallet from mnemonic phrase

$ wton wallet import-from-mnemonics restoredWallet v4r2 0 "cliff spin hawk artefact language volume subway surround nuclear lawn weird arrest mule cube impact crash abandon slender turn basic sentence actor you fix"

Export your wallet to .addr and .pk files

$ wton wallet to-addr-pk PocketMoney ./destinationDir/
Password []:

List all wallets and whitelist contacts with verbose information. Also, you can redirect output into a .md file to see a nice table.

$ wton wallet list --verbose
|   Name   | Version | WC |                     Address                      |       Comment        |  State   |    Balance    |
|:--------:|:-------:|:--:|:------------------------------------------------:|:--------------------:|:--------:|:-------------:|
|  PockeyMoney  |   v4r2  | 0  | EQBP5aEPlmFNr4eS3DJw2ydC4X_hOumwZoqCcJgHVSQHjZWW | None |  Active  | 1.095236369 |
|  Another wallet  |   v3r2  | 0  | EQCS9ZmXTu-VlDLIsjcQMpMjF0PSdA_aTD6MqCHlaLUoTARS |         None         |  Active  |  1.095236369  |

$ wton whitelist list -v  > myContacts.md

For daily usage you may prefer our wton-interactive version

$ wton-interactive
[✓] Pick command: Keystores
[✓] Pick command: Open keystore
[✓] Choose keystore to use: good.keystore
[?] Pick command: List wallets
 > List wallets
   Transfer
   Create wallet
   Init wallet
   Get wallet
   Edit wallet
   Delete wallet
   Reveal wallet mnemonics
   Import from mnemonics
   Wallet to .addr and .pk
   Backup keystore
   Back

Development

A person can deploy smart-contracts using wton. There are three options: send-boc, send-internal, send-external.

send-internal

$ wton dev send-internal ./scripts/deploy.py deploy_through_internal MY_WALLET_NAME 0.1 --wait
# ./scripts/deploy.py example. 
# Function must receive WalletContract and  return (str, Optional[Cell], Optional[Cell]) values.

from typing import Optional

from tonsdk.contract.wallet import WalletContract
from tonsdk.boc import Cell
from tonsdk.contract.token.ft import JettonMinter


def deploy_through_internal(wallet: WalletContract) -> (str, Optional[Cell], Optional[Cell]):
    minter = JettonMinter(admin_address=wallet.address,
                          jetton_content_uri="URL",
                          jetton_wallet_code_hex='CODE')

    return minter.address.to_string(), minter.create_state_init()["state_init"], None

send-external

$ wton dev send-external ./scripts/deploy.py deploy_through_external --wait
# ./scripts/deploy.py example. 
# Function must receive nothing and return (str, Cell) values.
from tonsdk.contract.wallet import WalletContract, WalletVersionEnum, Wallets
from tonsdk.boc import Cell


def deploy_through_external() -> (str, Cell):
        wallet_workchain = 0
        wallet_version = WalletVersionEnum.v3r2
        wallet_mnemonics = "YOUR 24 ... WORDS".split(" ")

        _mnemonics, _pub_k, _priv_k, wallet = Wallets.from_mnemonics(
            wallet_mnemonics, wallet_version, wallet_workchain)
        return wallet.address.to_string(), wallet.create_init_external_message()["message"]

Note: to deploy a wallet one can use '$ wton wallet WALLET_NAME init'

send-boc

$ wton dev send-boc ./generated-through-fif.boc --wait

Integrations

Example of automatic salary payment, you may use cron to run pay_salary.sh

$ cat employee.info
employee1 EQDvtizebIVTGYASXgjYX5sHfkGLW8aFTa7wfYCyARIpARB0 10
employee2 EQA-Ri7Oftdjq--NJmuJrFJ1YqxYk6t2K3xIFKw3syhIUgUe 20
employee3 EQCNLRRZkvoqAW6zwYyy_BVwOBcMnwqvyrSpm8WnACdzXuu3 15.5

$ cat pay_salary.sh
cd ~/team_workspace/ton/
source venv/bin/activate
wton config --local wton.keystore_name yandex

input="./employees.info"
while IFS= read -r line
do
    stringarray=($line)
    name=${stringarray[0]}
    addr=${stringarray[1]}
    salary=${stringarray[2]}

    wton wallet transfer SalaryWallet $name $salary --wait
done < "$input"

Release files for wton 0.0.22

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wton 0.0.22
File Size Uploaded
wton-0.0.22.tar.gz 62.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for wton 0.0.22
File Interpreter ABI Platform
wton-0.0.22-py3-none-any.whl Python 3 none any Details

Total release size: 142.7 kB

Release files / wton-0.0.22.tar.gz

Download URL wton-0.0.22.tar.gz
Size 62.2 kB
Tags Source
SHA-256 checksum
How to use checksums
5acff9fdf6bfb80b81c45db61f39f492d0a1290ca43b05c79465f64f31574ca8
BLAKE2b-256 checksum
How to use checksums
a8c2aa171a73f425ea94b4bd74a9eff99106054d96835df8ff1cfc3df16b0680
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.9.11

Release files / wton-0.0.22-py3-none-any.whl

Download URL wton-0.0.22-py3-none-any.whl
Size 80.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
152e8a2cb35ae4fe7c71bd91fd864770c40ce4ae139c8e5f4df017acafd820bb
BLAKE2b-256 checksum
How to use checksums
b961779d7daf04c29183f4d3b999df4fd453a68a0b88422e42e0670f5e61bda7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.9.11

Release history Release notifications | RSS feed

This release

0.0.22 This release

2 release files

0.0.21

2 release files

0.0.20

2 release files

0.0.19

2 release files

0.0.18

2 release files

0.0.17

2 release files

0.0.16

2 release files

0.0.15

2 release files

0.0.14

2 release files

0.0.13

2 release files

0.0.12

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page