# eckoWALLET API

#### \`Detecting eckoWALLET

To verify if the browser is running eckoWALLET use `window.kadena:`

```
/**
       * Check if is X-Wallet installed
       */
       const isXWalletInstalled = () => {
        const { kadena } = window;
        return Boolean(kadena && kadena.isKadena);
      };
 
      const initialize = async () => {
        if (isXWalletInstalled()) {
        // You will start here
        }
      };
      window.addEventListener('load', initialize);
```

#### Connecting to eckoWALLET

Connecting to eckoWALLET effectively means to access the user's Kadena account(s).

```
kadena.request({
  method: 'kda_connect',
  networkId: NETWORK_ID,
});
```

With this code, a pending promise for `kadena.request()` was created. `NETWORKID` could be `mainnet01` or `testnet04` for example.

#### Check Connection status

To check the connection status you can send a `kda_checkStatus` request:

```
kadena.request({
  method: 'kda_checkStatus',
  networkId: NETWORKID,
});
```

If the selected account on eckoWALLET is connected with current DAPP, the response will be

```
{
    "result": {
      "status": "success",
      "message": "Connected successfully",
      "account": {
        "account":
       "k:2e6a4789e51156cf6hf1c377bc8157fcds6d20698b83f30ad2f1828a8b74940e",
        "publicKey":
 "2e6a4789e51156cf6hf1c377bc8157fcds6d20698b83f30ad2f1828a8b74940e"
      }
    },
    "target": "kda.dapps",
    "action": "res_checkStatus"
  }
```

If not, the response will be:

```
 {
    "result": {
      "status": "fail",
      "message": "Not connected"
    },
    "target": "kda.dapps",
    "action": "res_checkStatus"
  }

```

#### Get network info

To get eckoWALLET network info you can use kadena.request function with kda\_getNetwork method.

```
kadena.request({
  method: 'kda_getNetwork',
});
```

You will receive the network info from eckoWALLET:

```
{
    "explorer": "https://explorer.chainweb.com/mainnet",
    "id": "0",
    "isDefault": true,
    "name": "Mainnet",
    "networkId": "mainnet01",
    "url": "https://api.chainweb.com"
  }

```

#### Get account information

&#x20;To retrieve the current account data from eckoWALLET just send a request with `kda_requestAccount` method.

```
kadena.request({
  method: 'kda_requestAccount',
  networkId,
});
```

You will receive a response like this:

```
 {
    "status": "success",
    "message": "Get account information successfully",
    "wallet": {
      "account": 
        "k:2e6a4789e51156cf6hf1c377bc8157fcds6d20698b83f30ad2f1828a8b74940e",
      "publicKey": 
         "2e6a4789e51156cf6hf1c377bc8157fcds6d20698b83f30ad2f1828a8b74940e",
      "connectedSites": [
        "swap.kaddex.com"
      ],
      "balance": 10.431761673543
    }
  }
```

#### Disconnect from eckoWALLET

If you want to disconnect your DAPP from eckoWALLET, simply send a disconnect request

```
kadena.request({
        method: 'kda_disconnect',
        networkId: 'mainnet01 ',
 
      });

```

#### Send Tokens to another account

Example request If users want to send Kadena tokens to another account&#x20;

```
         kadena.request({
      method: 'kda_sendKadena',
      data: {
            networkId: 'mainnet01',
            account: '{{ accountName }}',
            sourceChainId: '0',
            chainId: '2',
            amount: 10.23,
            },
      });
```

#### Sign command

If you want to sign custom command, you have to use `kda_requestSign` request method.

```
kadena.request({
        method: 'kda_requestSign',
        data: {
          networkId,
          signingCmd,
        },
      });

```

(eckoWALLET will open a confirmation window for the user).

#### EckoWALLET events&#x20;

This sections details the events emitted via that eckoWALLET API. There are many events triggered by eckoWALLET, you can listen for events such as the above ones:

#### Account changed&#x20;

Triggered when user switches account

```
kadena.on('res_accountChange', (event) => {
        console.log(event);
      });

```

The `res_accountChange` event payload is

```
{
     result: { status: "success", message: "Account changed" },
     target: "kda.dapps",
     action: "res_accountChange",
 };

```

#### Status changed&#x20;

Triggered on `kda_checkStatus` event dispatch

```
kadena.on('res_checkStatus', (event) => {
        console.log(event);
      });

```


---

# 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.ecko.finance/eckodao/eckowallet/eckowallet-api.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.
