The Open Network cross-platform smart contract command line interface.
Easy to deploy and interact with TON smart contracts.
⚠ If you want to support new tests engine - you need to use special binaries from SpyCheese repo. More information could be found in docs.
Toncli support Windows / macOS (m1 / intel) / Linux, installation guide can be found: INSTALLATION.md
New to toncli
?
Try: Quick start guide
All other documentation lists in docs/
Interested in contributing? Feel free to create issues and pull requests.
We are trying to process all tasks through issues. You can take own one 🥳
Feature | Status |
---|---|
fift / func / lite-server usage |
✅ |
Easy bootstrap project samples wallet |
✅ |
Deploy-wallet for auto send TON to contracts and tests | ✅ |
Compile func to build/ from func/ with files.yaml |
✅ |
Auto send TON to init contract address | ✅ |
Deploy to mainnet / testnet / ownnet | ✅ |
Project interact after deploy: easily send messages, run getmethods, run fift parsers on getmethods output | ✅ |
Load from hard project structure (example: src/projects/wallet ) |
✅ |
Run remote contracts locally (get cells from chain and run locally to get error / debug / etc.) | ✅ |
Get contract address by toncli addrs |
✅ |
Docs for contract creation for beginners | ✅ |
Project tests with runvmcode |
✅ |
Windows & Linux support | ✅ |
Unit tests engine | ✅ |
Gas auto calculation for store & deploy | ❌ |
Add more project samples with advanced usage | ❌ |
Project debug | ❌ |
Library support | ❌ |
Init Message support (with signature) | ❌ |
All commands could be fined in docs/advanced/commands.md
Config folder will create on first deploy, all fift / func libs will copy to it, also deploy wallet contract will be created
- Check network (testnet, mainnet) configuration locally (in config user folder)
- If no config found - download from URL in config.ini
- Check deploy wallet locally (in config user folder)
- If it's first time - simple wallet will be created in config folder
- Message with wallet address and tips will be displayed (user need to send some TON coin on it)
- If there is no TON in deploy contract - script will exit and notify user to update deployer balance
- Will run tests on
fift/data.fif
/fift/message.fif
(if exist) /fift/lib.fif
(if exist) before creating deploy message- This will check all files are correct
- Also, you can run custom logic - for example create keys in build/
- Will calculate address of contract and display it to user
- Will send money from deploy wallet
- Will deploy your contract
- External message will be created
- Boc will generated
- Will invoke sendfile in lite-client (TODO: use native python lib, not lite-client)
git clone git@github.com:disintar/toncli.git
cd toncli && pip install -e .
If you wish to update toncli locally you can use pip install -e path/to/toncli/rootfolder/
command anytime after you make changes to the toncli source code.
Please, use toncli update_libs
The easy migration method - remove fift-libs
, func-libs
from ~/.config/toncli
or delete whole
directory ~/.config/toncli
Feel free to ask questions and help in official telegram chats: Russian / English