# Usage

{% hint style="danger" %}
The following information is deprecated and may limit its use. Please refer to the WalletConnect 2.0 tab for the latest version of NEOPIN wallet integration: [WalletConnect 2.0](/developers/walletconnect-2.0.md)
{% endhint %}

## Initiate Connection

Create a connector by putting the wallet connect bridge URL as 'bridge' props and attach an event to the connector.

```javascript
import NeopinConnect from "nptconnect-client";
import QRCodeModal from "nptconnect-qrcode-modal";


// Create a connector object.
const connector = new NeopinConnect({
  bridge: "https://bridge.walletconnect.org", // Required
  qrcodeModal: QRCodeModal 
});

// Session created after connection. > Open the QRCodeModal passed to the connector param.
if (!connector.connected) {
  connector.createSession();
}

const { accounts, chainId } = await connector.connect();
```

After a connection is established (asynchronous), events are registered in the connector.

```javascript
connector.on("session_update", (error, payload) => {
  if (error) {
    throw error;
  }

  // Get updated accounts and chainId
  const { accounts, chainId } = payload.params[0];
});

connector.on("disconnect", (error, payload) => {
  if (error) {
    throw error;
  }

  // Delete connector
});
```

## Get Account / Get ChainId

Accounts and chainID in the connector drop their values when they connect to the bridge server.

```javascript
...
const {accounts, chainId} = connector ;
// accounts is array
const address = accounts[0];
console.log(chainId)
...
```

## PeerMeta (Client Meta Data)&#x20;

You can customize PeerMeta (ClientMeta) data. \
The appID of PeerMeta data is issued when registering an affiliate, and the issued appID value must be used.

```javascript
const clientMeta = {
  description: string;
  url: string;
  icons: string[];
  name: string;
  appId?: string;
}


// When creating a connector object, pass it as clientMeta param
const connector = new NeopinConnect({
  bridge: "https://bridge.walletconnect.org", // Required
  qrcodeModal: QRCodeModal,
  clientMeta  // IClientMeta
});



// Type information of ClientMeta of nptconnect-types
export interface IClientMeta {
  description: string;
  url: string;
  icons: string[];
  name: string;
  appId?: string;
}
```

## Send Transaction (eth\_sendTransaction)

This is a method that creates and sends a transaction.\
This is a method that can be executed when there is a value in the accounts of the connector (when a connection is established).

```javascript
// to, nonce, gasPrice, gas, value, data are random data.
// Each must be modified to suit its purpose.

const tx = {
  from: "0xbc28Ea04101F03aA7a94C1379bc3AB32E65e62d3", // Required
  to: "0x89D24A7b4cCB1b6fAA2625Fe562bDd9A23260359", // Required (for non contract deployments)
  data: "0x", // Required
  chainId: "8217", // Required
  gasPrice: "0x02540be400", // Optional
  gasLimit: "0x9c40", // Optional
  value: "0x00", // Optional
  nonce: "0x0114", // Optional
};

// Send transaction
connector
  .sendTransaction(tx)
  .then(result => {
    // Returns transaction id (hash)
    console.log(result);
  })
  .catch(error => {
    // Error returned when rejected
    console.error(error);
  });
```

## Sign Transaction (eth\_signTransaction)

```javascript
// Draft transaction
const tx = {
  from: "0xbc28Ea04101F03aA7a94C1379bc3AB32E65e62d3", // Required
  to: "0x89D24A7b4cCB1b6fAA2625Fe562bDd9A23260359", // Required (for non contract deployments)
  data: "0x", // Required
  gasPrice: "0x02540be400", // Optional
  gasLimit: "0x9c40", // Optional
  value: "0x00", // Optional
  nonce: "0x0114", // Optional
};

// Sign transaction
connector
  .signTransaction(tx)
  .then(result => {
    // Returns signed transaction
    console.log(result);
  })
  .catch(error => {
    // Error returned when rejected
    console.error(error);
  });
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.neopin.io/developers/deprecated/deprecated-neopin-connect-1.0/dapp/web/usage.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
