# Key Management

This article is a guide about key management strategy on client side of your Decentralised Application on Loop Network

### Setup Web3 <a href="#setup-web3" id="setup-web3"></a>

`web3.js` is a javascript library that allows our client-side application to talk to the blockchain. We configure web3 to communicate via Metamask.

`web3.js` doc is [here](https://web3js.readthedocs.io/en/v1.2.2/getting-started.html#adding-web3-js)

### Connect to LOOP network <a href="#connect-to-loop-network" id="connect-to-loop-network"></a>

```
    // mainnet 
     const web3 = new Web3('https://api.mainnetloop.com');
    // testnet
    const web3 = new Web3('https://api.testnetloop.com');
```

### Set up account <a href="#set-up-account" id="set-up-account"></a>

If the installation and instantiation of web3 was successful, the following should successfully return a random account:

```
    const account = web3.eth.accounts.create();
```

### Recover account <a href="#recover-account" id="recover-account"></a>

If you have backup the private key of your account, you can use it to restore your account.

```
    const account = web3.eth.accounts.privateKeyToAccount("$private-key")
```

### Full Example <a href="#full-example" id="full-example"></a>

```
const Web3 = require('web3');
async function main() {

    const web3 = new Web3('https://https://api.mainnetloop.com');
    const loader = setupLoader({ provider: web3 }).web3;

    const account = web3.eth.accounts.create();
    console.log(account);
}
```
