# Installation

Using our Unity SDK, you are able to interact with Altura services such as authenticating users using [Altura Guard](https://docs.altura.com/altura-documentation-1/getting-started/altura-guard), get Users information and items, get items and collection information and transfer or mint new items.

## Getting Started

### Requirements

* [**Unity Editor**](https://unity3d.com/unity/qa/lts-releases)

| AlturaSDK versions | Supported Unity versions | Supported Platforms     |
| ------------------ | ------------------------ | ----------------------- |
| 1.0.5              | 2020.3, 2021.3, 2022.1   | Windows, MacOS, Android |

### Installation

To install Altura Unity SDK, open Unity's Package Manager and click the '+' in the top left corner and select 'Add package from git URL' as shown below:

```http
https://github.com/alturanft/Unity-SDK.git
```

<figure><img src="https://46117299-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkXsf62gOd_7h7UDBt1%2Fuploads%2Fm6GgVlDmBeUjesvrJ1Mg%2FInstall.gif?alt=media&#x26;token=24f8d3f0-1d20-4344-9938-6857c9f1752e" alt="Installing Altura Unity SDK"><figcaption><p>Installing Altura Unity SDK</p></figcaption></figure>

After you added Altura SDK to Unity, additional packages needs to be installed to do this go to Altura NFT and then click on the 'Install Dependencies' as shown below:\ <br>

<figure><img src="https://46117299-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkXsf62gOd_7h7UDBt1%2Fuploads%2FqRXDh7m8ECJAkaKwi4s4%2Fdepen.gif?alt=media&#x26;token=718cd788-57d2-4006-b73f-926f604a2cef" alt="Installing Dependencies"><figcaption><p>Installing Dependencies</p></figcaption></figure>

\
You have successfully installed the Altura SDK, now the last step is to set up your API Key.

<figure><img src="https://46117299-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkXsf62gOd_7h7UDBt1%2Fuploads%2FP6sYHwr4Dp0q2cJ3J2qF%2FAPI.gif?alt=media&#x26;token=b66eb7ee-6058-461e-84f4-f44b66ede096" alt=""><figcaption></figcaption></figure>

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

### Importing

To use Altura SDK in your script, you need to import it like:

```csharp
using AlturaNFT;
```

### Features

#### Altura Object

Using **Altura object**, you are able to allow your users to **login easily with Altura Guard**, get fast and reliable **NFT**, **User** and **Collection data** also you are able to **transfer and mint items**!

<table><thead><tr><th width="272">Method</th><th>Description</th></tr></thead><tbody><tr><td><a href="methods/authenticate-user">AuthenticateUser</a></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><a href="methods/get-user">GetUser()</a></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><a href="methods/get-users">GetUsers()</a></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><a href="methods/get-item">GetItem()</a></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><a href="methods/get-items">GetItems()</a></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><a href="methods/get-collection">GetCollection()</a></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><a href="methods/get-collections">GetCollections()</a></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><a href="methods/transfer-erc1155">TransferItem()</a></td><td>Transfers a single NFT from your developer wallet to another user</td></tr><tr><td><a href="methods/bulk-transfer-erc1155">TransferItems()</a></td><td>Transfers several items of a particular collection from your developer wallet to a user</td></tr><tr><td><a href="methods/mint-additional-supply">MintAdditionalSupply()</a></td><td>Mints additional supply of an existent NFT</td></tr></tbody></table>

#### User Object

Using **user object**, you are able to get all **user's items**!

<table><thead><tr><th width="275">Method</th><th>Description</th></tr></thead><tbody><tr><td><a href="methods/get-users-items">GetUserItems()</a></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

Using **item object**, you are able to **get fully data of an item** such as all **Holders**, and **History** of the item. You are also able to **change properties and the primary image of the item**.

<table><thead><tr><th width="278">Method</th><th>Description</th></tr></thead><tbody><tr><td><a href="methods/get-an-item-holders">GetHolders()</a></td><td></td></tr><tr><td><a href="methods/get-an-items-history">GetHistory()</a></td><td></td></tr><tr><td><a href="methods/update-property">UpdateProperty()</a></td><td>Updates the value of an item's property</td></tr><tr><td><a href="methods/update-primary-image">UpdatePrimaryImage()</a></td><td>Adds a new image to an items otherImage's array</td></tr></tbody></table>

#### Collection Object

<table><thead><tr><th width="281">Method</th><th>Description</th></tr></thead><tbody><tr><td><a href="broken-reference">Update()</a></td><td></td></tr></tbody></table>
