# Modules

SignumJS is maintained in a [monorepo](https://en.wikipedia.org/wiki/Monorepo) and splitted in several modules.&#x20;

![The available modules and their dependencies in relation to @signumjs/core](/files/FyhuJAjEg0HzU8KvKtUa)

* [@signumjs/core](https://signum-network.github.io/signumjs/modules/core.html) The main module providing an extense API for blockchain interaction
* [@signumjs/contracts](https://signum-network.github.io/signumjs/modules/contracts.html) The module especifically relevant for *smart contracts*
* [@signumjs/crypto](https://signum-network.github.io/signumjs/modules/crypto.html) The cryptographic functions
* [@signumjs/util](https://signum-network.github.io/signumjs/modules/util.html) This is the tool belt around SignumJS providing most useful functions, e.g. conversions
* [@signumjs/http](https://signum-network.github.io/signumjs/modules/http.html) A thin Http wrapper, with consistent response types, and exception handling. It wraps the famous [axios](https://axios-http.com/) library.
* [@signumjs/monitor](https://signum-network.github.io/signumjs/modules/monitor.html) A module providing a class to execute recurring async operations with de/serialization feature, good for listening to blockchain transactions. This is still experimental and the only one that is not used by `@signumjs/core`.

## Install packages

The installation of the packages always follows the same pattern

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

```bash
npm i @signumjs/core
npm i @signumjs/contracts
npm i @signumjs/crypto
npm i @signumjs/util
npm i @signumjs/http
npm i @signumjs/monitor
```

{% endtab %}

{% tab title="yarn" %}

```bash
yarn add @signumjs/core
yarn add @signumjs/contracts
yarn add @signumjs/crypto
yarn add @signumjs/util
yarn add @signumjs/http
yarn add @signumjs/monitor
```

{% endtab %}

{% tab title="<script/>" %}

```html
<script src='https://cdn.jsdelivr.net/npm/@signumjs/core/dist/signumjs.min.js'></script>
<script src='https://cdn.jsdelivr.net/npm/@signumjs/contracts/dist/signumjs.contracts.min.js'></script>
<script src='https://cdn.jsdelivr.net/npm/@signumjs/crypto/dist/signumjs.crypto.min.js'></script>
<script src='https://cdn.jsdelivr.net/npm/@signumjs/http/dist/signumjs.http.min.js'></script>
<script src='https://cdn.jsdelivr.net/npm/@signumjs/util/dist/signumjs.util.min.js'></script>
<script src='https://cdn.jsdelivr.net/npm/@signumjs/monitor/dist/signumjs.monitor.min.js'></script>
```

{% endtab %}
{% endtabs %}


---

# 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://signum-network.gitbook.io/signumjs/getting-started/modules.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.
