TonWeb interface is close as possible to the web3.js.
TonWeb has only 3 external dependencies (BN.js, tweetnacl, ethjs-unit) and is not too big (~200kb).
Used by tonwallet.me and ton-wallet plugin.
npm install tonweb
import TonWeb from "tonweb"
const tonweb = new TonWeb()
or
<script src="tonweb.js"></script>
const tonweb = new window.TonWeb();
npm install tonweb
const TonWeb = require('tonweb');
const tonweb = new TonWeb();
const tonweb = new TonWeb();
const wallet = tonweb.wallet.create({publicKey});
const address = await wallet.getAddress();
const nonBounceableAddress = address.toString(true, true, false);
const seqno = await wallet.methods.seqno().call();
await wallet.deploy(secretKey).send(); // deploy wallet to blockchain
const fee = await wallet.methods.transfer({
secretKey,
toAddress: 'EQDjVXa_oltdBP64Nc__p397xLCvGm2IcZ1ba7anSW0NAkeP',
amount: TonWeb.utils.toNano(0.01), // 0.01 TON
seqno: seqno,
payload: 'Hello',
sendMode: 3,
}).estimateFee();
const Cell = TonWeb.boc.Cell;
const cell = new Cell();
cell.bits.writeUint(0, 32);
cell.bits.writeAddress(address);
cell.bits.writeGrams(1);
console.log(cell.print()); // print cell data like Fift
const bocBytes = cell.toBoc();
const history = await tonweb.getTransactions(address);
const balance = await tonweb.getBalance(address);
tonweb.sendBoc(bocBytes);
Each part is documented separately:
tonweb - root class and methods
tonweb-contract-wallet - interaction with wallet's smart contracts.
tonweb-contract - abstract interface to interact with TON smart contracts.
tonweb-boc - serializations of Cell and BitString
tonweb-utils - work with TON Addresses, coin values, byte arrays, hex, hash functions.
Also we use JSDoc in code
npm install
npx webpack --mode=none
npm install -g tonweb
export NODE_PATH=$(npm root --quiet -g)
Then create your_script.js
const TonWeb = require('tonweb');
const tonweb = new TonWeb();
. . .
run script
node your_script.js