# 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="https://1252323684-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOlyBmjWRNMw3jAapqxrM%2Fuploads%2FF3khVTmoq2uDVl7SVqsh%2Fimage.png?alt=media&#x26;token=4cb9e73c-9c7f-4434-ae00-a395e3f307a7" 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="https://1252323684-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOlyBmjWRNMw3jAapqxrM%2Fuploads%2Fq1jNZCvv5JoLXR2s0E7o%2Fimage.png?alt=media&#x26;token=70837183-d5f2-4a9f-9c1a-a7f499f096d5" 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"
  }
]
*/
```
