# Convert hex address to clusters name

Before you begin, install & setup the cluster imports at the top of your code.

### Install the SDK

```bash
npm install @clustersxyz/sdk viem
```

### Setup your imports

```javascript
import { Clusters } from "@clustersxyz/sdk";
const clusters = new Clusters();
```

***

### **A single address**

This single address call is great for getting the name of a user's connected wallet or the name of an address on a profile page.

<figure><img src="/files/4T3lDJR26bipUzFIr72B" alt=""><figcaption></figcaption></figure>

```javascript
// This will return { clusterName: "clusters", walletName: "main" }
const { clusterName, walletName } = await clusters.getName('0x5755d1dcea21caa687339c305d143e6e78f96adf');
```

2. **Profile Information**

You can use the following helper functions to help display the info you need. We offer 2 functions:

* A synchronous function to get the profile image url of a cluster name&#x20;
* A function to navigate the user to their official clusters profile page on clusters.xyz

You can use the following helper functions to help display the info you need

```javascript
import { getImageUrl, getProfileUrl } from "@clustersxyz/sdk";

// https://cdn.clusters.xyz/profile/clusters
const profileImage = getImageUrl(clusterName);

// https://clusters.xyz/clusters
const profileUrl = getProfileUrl(clusterName);
```

Clusters are a multi-wallet username. Sometimes you will want to display the other wallets a cluster has. By passing in the cluster name, you'll be able to retrieve an array of wallets along with their type.

When people create a cluster, they can add multiple addresses to it. If you want to be able to display this information, you can call the following function.

```javascript
const cluster = await clusters.getClusterByName('clusters');

/*
{
  "id": "0xa8d12b92b91fe0db3651ff2d45c1f47b1bb343054e9cd1e556c73f2330269224",
  "createdBy": "0x5cff9c1362a71247da33887be2a44ac36a8724bb",
  "createdAt": "2024-02-14 21:39:05+00",
  "wallets": [
    {
      "address": "0x5cff9c1362a71247da33887be2a44ac36a8724bb",
      "name": "main",
      "isVerified": true,
      "isPrivate": false,
      "isBackedUp": false,
      "updatedAt": "2024-02-09 15:21:22+00",
      "updatedBy": "0x5cff9c1362a71247da33887be2a44ac36a8724bb",
      "createdAt": "2024-02-09 15:21:22+00"
    }
  ],
  "isTestnet": false
}
*/
```

***

### **Multiple addresses in one call**

This is useful if you have 2 or more addresses on a page that you want to retrieve a cluster name for. You can get all the information you need in one call.

<figure><img src="/files/d3BFmynK7hu4RfmaWwR2" alt=""><figcaption></figcaption></figure>

1. **Resolve multiple names**

```javascript
import { Clusters } from "@clustersxyz/sdk";
const clusters = new Clusters();

const clusterName = await clusters.getNames([
    '0x5755d1dcea21caa687339c305d143e6e78f96adf', 
    '0xccdead94e8cf17de32044d9701c4f5668ad0bef9'
]);

/*
[
  {
    "address": "0x5755d1dcea21caa687339c305d143e6e78f96adf",
    "name": "clusters/main"
  },
  {
    "address": "0xccdead94e8cf17de32044d9701c4f5668ad0bef9",
    "name": "layerzero/main"
  }
]
*/
```


---

# 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.clusters.xyz/integration-guides/convert-hex-address-to-clusters-name.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.
