# Explorer

The **Armchain Explorer** is a web-based tool for browsing blocks, transactions, addresses, and smart contracts. It works like Etherscan but is tailored for Armchain's post-quantum transactions.

## Public Explorer

**URL**: <https://www.armchain.org/explorer>

## Features

### Transaction Browsing

* View all transactions with decoded input data and event logs
* Filter by address, block, or contract
* See transaction status, gas usage, and fees
* **Type 3 PQC transactions**: Displays ML-DSA44 signature information

### Block Explorer

* Browse blocks with full transaction lists
* View block details: gas used, timestamp, validator
* Real-time block updates via WebSocket

### Address Pages

* View ARM balance and token balances
* Transaction history (sent and received)
* Internal transactions (from contract calls)
* Token transfers (ERC-20, ERC-721, ERC-1155)
* Analytics and charts

### Smart Contract Interaction

* **Read Contract**: Call view/pure functions directly from the browser
* **Write Contract**: Execute state-changing functions (requires wallet connection)
* **Contract Verification**: Submit source code for public verification
* **ABI Interface**: Auto-generated UI from contract ABI

### Contract Verification

To verify your smart contract on the explorer:

1. Navigate to your contract address
2. Click the **"Verify & Publish"** tab
3. Select your compiler version and settings
4. Submit your Solidity source code
5. The explorer will attempt to compile and match the bytecode

Supported verification methods:

* **Single file**: Flat Solidity file
* **Standard JSON input**: Hardhat/Foundry standard JSON output
* **Multi-file**: Multiple Solidity files with imports

### Event Log Decoding

The explorer automatically decodes event logs when the contract is verified:

* Shows decoded event names and parameters
* Indexed parameters are searchable
* Links to related addresses and tokens

### Analytics

* Network statistics (TPS, gas usage, block times)
* Address analytics (balance history, transaction volume)
* Token analytics (transfers, holders, supply)
* Charts and visualizations

## Explorer API

The explorer provides a REST API for programmatic access:

**Base URL**: `https://www.armchain.org/explorer/api`

### Get Account Balance

```bash
curl "https://www.armchain.org/explorer/api?module=account&action=balance&address=0xADDRESS"
```

### Get Transaction List

```bash
curl "https://www.armchain.org/explorer/api?module=account&action=txlist&address=0xADDRESS&page=1&offset=10"
```

### Get Contract ABI

```bash
curl "https://www.armchain.org/explorer/api?module=contract&action=getabi&address=0xCONTRACT"
```

### Get Contract Source Code

```bash
curl "https://www.armchain.org/explorer/api?module=contract&action=getsourcecode&address=0xCONTRACT"
```

## Real-Time Updates

The explorer uses WebSocket connections (Soketi/Pusher) for real-time updates:

* New blocks appear instantly
* Transaction confirmations update in real-time
* No page refresh needed

## Self-Hosting

The Armchain Explorer can be self-hosted for private networks. Contact the team for setup details.

### Requirements

* Node.js 18+
* PostgreSQL database
* Redis (for caching and queues)
* Soketi or Pusher (for real-time updates)

## Further Reading

* [Network Configuration](/get-started/network-configuration.md) for Explorer URLs and API endpoints
* [Smart Contracts](/developers/overview.md) for writing and verifying contracts
* [JSON-RPC API](/api-reference/json-rpc.md) for direct node API access


---

# 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.armchain.org/tools/explorer.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.
