

Install Web
npm install tonweb or yarn add tonweb
import TonWeb from "tonweb";
const tonweb = new TonWeb();
or
<script src="tonweb.js"></script>
const tonweb = new window.TonWeb();
Install NodeJS
npm install tonweb or yarn add tonweb
const TonWeb = require('tonweb');
const tonweb = new TonWeb();
Overview example
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();
const fee = await wallet.methods.transfer({
secretKey,
toAddress: 'EQDjVXa_oltdBP64Nc__p397xLCvGm2IcZ1ba7anSW0NAkeP',
amount: TonWeb.utils.toNano(0.01),
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());
const bocBytes = cell.toBoc();
const history = await tonweb.getTransactions(address);
const balance = await tonweb.getBalance(address);
tonweb.sendBoc(bocBytes);
API
By default, mainnet toncenter.com API is used. Please note that without the API key there will be a request rate limit.
You can start your own TON HTTP API instance as it is open source.
Use mainnet TonCenter API with high ratelimit API key:
const tonweb = new TonWeb(new TonWeb.HttpProvider('https://toncenter.com/api/v2/jsonRPC', {apiKey: 'YOUR_MAINNET_TONCENTER_API_KEY'}));
Use testnet TonCenter API with high ratelimit API key:
const tonweb = new TonWeb(new TonWeb.HttpProvider('https://testnet.toncenter.com/api/v2/jsonRPC', {apiKey: 'YOUR_TESTNET_TONCENTER_API_KEY'}));
Documentation
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
Roadmap
Build
npm install
npm run build
Use as alternative to Fift for building binary messages to smart-contracts
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