# æternity's JavaScript SDK

[![main action](https://github.com/aeternity/aepp-sdk-js/actions/workflows/main.yml/badge.svg)](https://github.com/aeternity/aepp-sdk-js/actions/workflows/main.yml)[![codecov](https://codecov.io/gh/aeternity/aepp-sdk-js/branch/develop/graph/badge.svg?token=wON6gOciRP)](https://codecov.io/gh/aeternity/aepp-sdk-js)[![docs](https://github.com/aeternity/aepp-sdk-js/actions/workflows/docs.yml/badge.svg)](https://github.com/aeternity/aepp-sdk-js/actions/workflows/docs.yml)[![npm](https://img.shields.io/npm/v/@aeternity/aepp-sdk.svg)](https://www.npmjs.com/package/@aeternity/aepp-sdk)[![npm](https://img.shields.io/npm/l/@aeternity/aepp-sdk.svg)](https://www.npmjs.com/package/@aeternity/aepp-sdk)

JavaScript SDK for the revolutionary [æternity](https://aeternity.com) blockchain, targeting the[æternity node](https://github.com/aeternity/aeternity) implementation. The aepp-sdk is [hosted on GitHub](https://github.com/aeternity/aepp-sdk-js).

## Guides & Examples

Introduction

* [Installation](/developer-documentation/aepp-sdk-js/docs.md)
* [Quick Start](/developer-documentation/aepp-sdk-js/docs/quick-start.md)

Usage guides:

* [AENS](/developer-documentation/aepp-sdk-js/docs/guides/aens.md) (æternity naming system)
* [Contracts](/developer-documentation/aepp-sdk-js/docs/guides/contracts.md)
* [Contract Events](/developer-documentation/aepp-sdk-js/docs/guides/contract-events.md)
* [Oracles](/developer-documentation/aepp-sdk-js/docs/guides/oracles.md)
* [PayingForTx](/developer-documentation/aepp-sdk-js/docs/guides/paying-for-tx.md) (Meta-Transactions)
* [Batch Transactions](/developer-documentation/aepp-sdk-js/docs/guides/batch-requests.md)
* [Error Handling](/developer-documentation/aepp-sdk-js/docs/guides/error-handling.md)
* [Low vs High level API](/developer-documentation/aepp-sdk-js/docs/guides/low-vs-high-usage.md)
* [Typed data hashing and signing](/developer-documentation/aepp-sdk-js/docs/guides/typed-data.md)
* [Usage with TypeScript](/developer-documentation/aepp-sdk-js/docs/guides/typescript.md)
* [JWT usage](/developer-documentation/aepp-sdk-js/docs/guides/jwt.md)
* [Transaction options](/developer-documentation/aepp-sdk-js/docs/transaction-options.md)
* [Range of possible address length](/developer-documentation/aepp-sdk-js/docs/guides/address-length.md)
* Wallet Interaction
  * [Connect an æpp to a wallet](/developer-documentation/aepp-sdk-js/docs/guides/connect-aepp-to-wallet.md)
  * [How to build a wallet](/developer-documentation/aepp-sdk-js/docs/guides/build-wallet.md)
  * [Ledger Hardware Wallet](/developer-documentation/aepp-sdk-js/docs/guides/ledger-wallet.md)
  * [Aeternity snap for MetaMask](/developer-documentation/aepp-sdk-js/docs/guides/metamask-snap.md)

There are also [examples](/developer-documentation/aepp-sdk-js/examples.md) that you can directly use and play with.

### [API Reference](https://sdk.aeternity.io/v14.1.0/api/)

## CLI - Command Line Interface

To quickly test *all* of æternity's blockchain features from your terminal, you can install and use the [CLI](https://github.com/aeternity/aepp-cli-js) by running:

1. `npm i -g @aeternity/aepp-cli` to globally install the CLI
2. `aecli --help` to get a list of possible commands

## Contributing

For advanced use, to get a deeper understanding of the SDK or to contribute to its development, it is advised to read the [Contributing Guidelines](/developer-documentation/aepp-sdk-js/docs/contrib.md) section.

## Changelog

We keep our [Changelog](/developer-documentation/aepp-sdk-js/docs/changelog.md) up to date.


---

# 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.aeternity.com/developer-documentation/aepp-sdk-js.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.
