# Installation

Using our JS/TS SDK, you can interact with Altura's services, such as authenticating users using [Altura Guard](https://docs.altura.com/altura-documentation-1/getting-started/altura-guard), fetching user and NFT data, and transferring, minting, and updating NFTs.

## Getting Started

### Requirements

* [**Node.js**](https://nodejs.org/en/download/)

### Installation

{% tabs %}
{% tab title="npm" %}

```shell
npm install --save @altura/altura-js
```

{% endtab %}

{% tab title="yarn" %}

```shell
yarn add @altura/altura-js
```

{% endtab %}
{% endtabs %}

\
**That's it!** You have successfully installed the Altura SDK.

### Importing

To use the Altura SDK in your code, you need to import as follows.

```javascript
const { Altura } = require("@altura/altura-js")

const altura = new Altura(API_KEY); // your API Key
```

{% hint style="info" %}
[Learn how to get your API key](https://docs.altura.com/altura-documentation-1/rest-api/get-your-api-key)
{% endhint %}

### Features

#### Altura Object

<table><thead><tr><th width="272">Method</th><th>Description</th></tr></thead><tbody><tr><td>AuthenticateUser()</td><td>Use this method to authenticate user with Altura Guard. <br><br><em>On success, <code>true</code> is returned.</em></td></tr><tr><td>GetUser()</td><td>Use this method to get user information such as Name, Bio, social etc. etc. <br><br><em>On success, the data is returned as JSON.</em></td></tr><tr><td>GetUsers()</td><td>Use this method to get information of multiple users at same time such as Name, Bio, social etc. etc. <br><br><em>On success, the data is returned as JSON.</em></td></tr><tr><td>GetItem()</td><td>Use this method to get item metadata. <br><br><em>On success, the data is returned as JSON.</em></td></tr><tr><td>GetItems()</td><td>Use this method to get metadata of multiple Items at same time. <br><br><em>On success, the data is returned as JSON.</em></td></tr><tr><td>GetCollection()</td><td>Use this method to get Collection information. <br><br><em>On success, the data is returned as JSON.</em></td></tr><tr><td>GetCollections()</td><td>Use this method to get information of multiple Collections at same time. <br><br><em>On success, the data is returned as JSON.</em></td></tr><tr><td>TransferItem()</td><td>Transfers a single NFT from your developer wallet to another user</td></tr><tr><td>TransferItems()</td><td>Transfers several items of a particular collection from your developer wallet to a user</td></tr><tr><td>MintAdditionalSupply()</td><td>Mints additional supply of an existent NFT</td></tr></tbody></table>

#### User Object

<table><thead><tr><th width="275">Method</th><th>Description</th></tr></thead><tbody><tr><td>GetUserItems()</td><td>Use this method to get items of specific user.<br><br><em>On success, the data is returned as JSON.</em></td></tr></tbody></table>

#### Item Object

<table><thead><tr><th width="278">Method</th><th>Description</th></tr></thead><tbody><tr><td>GetHolders()</td><td>Returns an item's holders and their balances</td></tr><tr><td>GetHistory()</td><td>Returns the Transaction history of an item</td></tr><tr><td>UpdateProperty()</td><td>Updates the value of an item's property</td></tr><tr><td>UpdatePrimaryImage()</td><td>Updates an item's primary image</td></tr></tbody></table>
