# TON Wallet

To start using TON, you need to have a wallet. It's an app that will hold your Toncoins and help you to interact with other apps inside the network.

To use TON Wallet with expand.network [<mark style="color:blue;">**SDK**</mark>](https://github.com/expand-network/sdk-nodejs.git), follow these steps:-

### **Step 1:** Installation

&#x20;User needs to install the expand.network SDK using the following command:&#x20;

```git
npm i expand-network
```

### **Step 2: Wallet Initialisation**

```javascript
const { WalletTON } = require('expand-network');
const wallet = new WalletTON({privateKey: privatekey});
```

### **Step 3: Prepare Transaction**

```javascript
// Preparing the transaction from expand.network
const preparedTx = {
      from: "SENDER_WALLET_ADDRESS",
      to: "RECEIVER_WALLET_ADDRESS",
      value: "1000000",
      chainId: '1100',
      message:"Hi from expand.network"
  }
```

### **Step 4: Sign Transaction**

```javascript
// Sign the transaction locally using sdk client
const signedTx = await wallet.signTransaction(preparedTx);
console.log(signedTx);
```

### **Step 5: Send Transaction**

```javascript
// Send the signed transaction
const tx = await wallet.sendTransaction(signedTx);
console.log(tx);
```

### Sample code for native token transfer using Ton Wallet:&#x20;

```javascript
const { WalletTON } = require('expand-network');

async function main() {
const privatekey = await WalletTON.getPrivateKey("User_privatekey");
console.log(privatekey);
const wallet = new WalletTON({privateKey: privatekey});    
  const preparedTx = {
      from: "SENDER_WALLET_ADDRESS",
      to: "RECEIVER_WALLET_ADDRESS",
      value: "1000000",
      chainId: '1100',
      message:"Hi from expand.network"
  }
  const signedTx = await wallet.signTransaction(preparedTx);
  console.log(signedTx);
  const tx = await wallet.sendTransaction(signedTx);
  console.log("Transaction Pending....", tx);
}
main();
```
