> For the complete documentation index, see [llms.txt](https://signum-network.gitbook.io/signumjs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://signum-network.gitbook.io/signumjs/getting-started/modules.md).

# 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 %}
