# aescan

[æScan](https://aescan.io) is a blockchain explorer, analytics platform, and decentralized smart contract\
navigation platform based on æternity.

### Table of contents

* [Introduction](#Introduction)
* [Getting started](#Getting-started)
* [Deployment stages](#Deployment-stages)
* [Browser compatibility](#Browser-compatibility)
* [Contribution](#Contribution)
* [Stay in touch](#Stay-in-touch)
* [Resources](#Resources)

### Introduction

With æScan you can easily navigate between different features and live statistics of æternity blockchain: keyblocks,\
microblocks, accounts, transactions, smart contracts, names and tokens.

Blockchain data is retrieved from [æternity middleware](https://github.com/aeternity/ae_mdw)\
and [æternity node](https://github.com/aeternity/aeternity).

Nuxt 3, Vue.js, Vite and Pinia provide the foundation for the project, enabling us to create a seamless and intuitive\
user experience with Server Side Rendering enabled.

### Getting started

First, download and install [Node.js](https://nodejs.org/en/download). Version 20\
or higher is required.

Clone æScan repository

```
git clone https://github.com/aeternity/aescan.git
```

Install required dependencies with yarn

```
yarn install
```

Copy content of `.env.example` file to `.env`

Run æScan in development mode with hot reload

```
yarn dev
```

A local instance of æScan will be available at <http://localhost:8080>.

#### Other commands

Build and minify for production

```
yarn build
```

Lint js and css files

```
yarn lint
```

#### Build docker image

Docker is used to run æScan in different deployment stages.

To build a docker image of æScan [Docker](https://www.docker.com) is required.

```
yarn install
docker build -t aescan .
docker run -p 80:80 aescan
```

### Deployment Stages

Three different deployment stages are available to test or use æScan:

| Stage name  | Mainnet URL                                         | Testnet URL                                                 | Description                                                                                                                                           |
| ----------- | --------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| Production  | <https://aescan.io>                                 | <https://testnet.aescan.io>                                 | Production environment deployed manually from the main branch by creating a release branch and merging an automatically created Release Pull Request. |
| Development | <https://aescan.dev.service.aepps.com>              | <https://aescan-testnet.dev.service.aepps.com>              | Development environment deployed automatically after every push to the develop branch.                                                                |
| PR preview  | <https://pr-\\[PR-id]-aescan.stg.service.aepps.com> | <https://pr-\\[PR-id]-aescan-testnet.stg.service.aepps.com> | Pull Request preview deployed automatically after every commit to an open pull request.                                                               |

### Browser compatibility

Supports [evergreen](https://nuxt.com/blog/v3#the-browser-and-nodejs-support) browsers only.

The core browser set targets the 2 most recent major versions of Chrome, Firefox, and Edge on a monthly basis and Safari\
on a yearly basis.

### Testing

This project uses [Cypress](https://cypress.io/) for e2e testing. Tests can be executed using the\
command `yarn e2e:open`.

### Contribution

We welcome contributions to our repository! If you have an idea for a new feature or a fix for a bug, please feel free\
to open an issue and/or a pull request. We encourage you to read the full [Contribution Guidelines](/developer-documentation/aescan/contributing.md)\
to learn more about the project structure, good practices and rules to follow.

### Stay in touch

Join [æternity forum](https://forum.aeternity.com) and participate in discussions. Share your ideas, ask questions, and\
get involved!

Stay up-to-date on the latest developments in the æternity ecosystem by following us on social media.

* [Forum](https://forum.aeternity.com/)
  * [X](https://x.com/aeternity)
* [Youtube](https://www.youtube.com/@aeternityblockchain)
* [Reddit](https://www.reddit.com/r/Aeternity/)
* [Linkedin](https://www.linkedin.com/company/aeternity)
* [Telegram](https://telegram.me/aeternity)

### Resources

Want to learn more about æternity and how it's revolutionizing the world of blockchain technology? Check out our\
website, Github repositories and blog for more information.

* [æternity homepage](https://www.aeternity.com)
* [æternity blog](https://blog.aeternity.com)
* [æternity middleware](https://github.com/aeternity/ae_mdw)
* [æternity node](https://github.com/aeternity/aeternity)
* [æternity node API](https://api-docs.aeternity.io)


---

# 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/aescan.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.
