# Setup

### Cloning the base repository

First, you will need to clone the base `ownables-sdk` [repository](https://github.com/ltonetwork/ownable-demo) and save it under your preferred location.

```shell-session
$ git clone git@github.com:ltonetwork/ownable-sdk.git
$ cd ownable-sdk
```

Open it in your preferred editor and proceed to the next section.

### Starting the demo wallet

First, navigate to the wallet directory and install the dependencies:

```shell-session
$ cd www/
$ npm i
```

We can now start the wallet:

```shell-session
$ npm run start
```

Once that is done, navigate to <http://localhost:8080/> and you should see an empty wallet that is ready to import OWNABLES packages.

<figure><img src="/files/iLjvjM4qUtXad9Ij5uec" alt=""><figcaption><p>Empty wallet</p></figcaption></figure>

### Building the Ownable

Now that the wallet is running, we need some Ownable packages that we can import.

There are a few handy commands for that.

The `ownables:build` script, which takes a `--package` parameter that specifies which OWNABLE should be packaged. The potion OWNABLE is built by running:

```shell-session
$ npm run ownables:build --package=potion
```

Running this will produce a zip file containing the Ownable under `ownables` folder.

Now we can go back to our wallet and click the :heavy\_plus\_sign: icon at the bottom right. This will open an action menu in which we can choose to import a new Ownable from a file and select the zipped package from the previous step.

After importing the potion Ownable package, there will be another option in the action menu named **potion**, clicking on which will issue the Ownable.

<figure><img src="/files/gS8Q0ZIqwY21gQsGCGzR" alt=""><figcaption><p>Wallet with an Ownable</p></figcaption></figure>

*Success!* The issued Ownable will be visible in your wallet.

#### Building all Ownables

In case you want to build all Ownables in your project at once, run:

```shell-session
$ npm run ownables:build-all
```

It will simply run the previous script in every directory under `/ownables` .

{% hint style="info" %}
To get more insight on how to build your own custom Ownable read about the [Ownable Architecture](/ownables/ownables-architecture/smart-contract.md).
{% endhint %}


---

# 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.ltonetwork.com/ownables/ownables-sdk/setup.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.
