Objective
By the end of this guide, you will:- Create a Preprocessed Wallet V2 instance from scratch
- Deploy the wallet on-chain
- Send single and batch transfers
Prerequisites
- Node.js 18+ or TypeScript environment
@ton/ton,@ton/core,@ton/cryptopackages installed- Preprocessed Wallet V2 wrapper and compiled contract code
Step 1: Set up dependencies
Install required packages:Step 2: Generate or load a mnemonic
A mnemonic is your wallet’s master secret. It derives the private key used to sign all transactions.Generate a new mnemonic
Load an existing mnemonic
Step 3: Derive the keypair
Convert the mnemonic to an Ed25519 keypair:Step 4: Create the wallet instance
Create a Preprocessed Wallet V2 contract instance:Step 5: Get the wallet address
Calculate the wallet’s address:CODE and publicKey. The same parameters always produce the same address.
Account status: nonexist
The calculated address exists only as a deterministic value. No account exists on the blockchain yet — no balance, no code, no data.
Step 6: Fund the wallet
Required before deployment: Send TON to your wallet address (from Step 5) to prepare it for deployment. External messages (which deploy the wallet) require gas to execute. By funding the address, you transition the account fromnonexist to uninit status and provide the balance needed for deployment. See Account statuses for details on how account states work.
Send TON using a faucet (testnet) or from another wallet (mainnet). After funding, the account transitions to uninit status — it has a balance and can accept external messages, but no code or data yet.