> For the complete documentation index, see [llms.txt](https://docs.baas.sh/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.baas.sh/baas-console/contracts/explorer.md).

# Explorer

Browse the values BaaS keeps for one deployment and every transaction it decodes, from the Explorer tab.

The **Explorer** tab shows what BaaS keeps for one deployment: its [mapped values](/baas-console/contracts/mappings.md), and every event it decoded. In this guide, you follow `MyToken` after its first transfers.

## Pick a deployment

Nothing is selected when you arrive. Click **Select a contract** to open the search box, then look up a contract, an address, a network, or a version. Everything below follows the deployment you choose, and you can change it at any time.

## Contract data

The **Contract data** card holds what BaaS stores for the deployment itself, with a badge counting the values it found. Click it to unfold, then read it as a **Table** or as **JSON**.

A plain value shows its data key and its value. A value kept per key, such as one supply per token id, lists its entries under a count, and tells you when none has arrived yet.

A value that carries a [unit](/baas-console/contracts/units.md) arrives formatted, and a badge switches it back to the raw integer.

In our example, `MyToken` shows `totalSupply`, `name`, and `symbol`. Balances are kept per wallet, so you read them from the [Explorer](/baas-console/users/explorer.md) section of a user page.

{% hint style="info" %}
**The whole payload is one click away.** The **JSON** view shows exactly what the API returns, and a copy button hands it to you.
{% endhint %}

## Transactions

The **Transactions** panel lists what BaaS decoded on this deployment, newest first and twenty to a page, with the older ones a page away. Each row is one event, so a transaction that emitted several of them fills several rows.

A row carries:

* the transaction hash that carried it, with a copy button and a link to the network's explorer when it has one,
* the event's name, under **Method**,
* how long ago it happened,
* the addresses it went from and to,
* a preview of the values your mappings pick out of it, the rest behind a count.

Clicking that last cell opens them all on their own. Where a mapping picks nothing, the cell shows a dash, and the row still opens. Until the first event arrives, the panel says so instead of leaving you an empty table.

### Filter the feed

Use the filters above the list to find specific events. The count next to the title shows how many events match.

* **Event**: select an event to show only its rows. When several events share a name, each overload appears with its full signature. The list updates right away.
* **Filters**: opens the rules form. Click **Add filter**, pick a field, an operator and a value. Use **Add group** to nest **All rules (AND)** and **Any rule (OR)** groups, then **Apply**.

The rules can read `args.<name>`, an argument of the selected event; `occurredAt`, when the event happened; `key`, a mapped key such as a token id; and `wallet`, an address that takes part as sender, recipient or related party. Fields, operators, values and limits are on the [Filters](/baas-console/filters.md) page.

For example, select **Transfer**, then add two rules under **All rules**: `args.from` **is one of** Alice's and Bob's addresses, and `args.value` **≥** `1000` with **Smart unit** on. This finds their transfers of at least **1,000 tokens**.

Each applied rule appears as a chip next to the **Filters** button, with the **AND** or **OR** connector between them. To remove one, click its cross. To remove every filter, click **Clear all**.

{% hint style="info" %}
**Note:** Selecting another event drops the rules on its arguments; the other rules stay. Selecting another deployment clears the filters. If no event matches, the panel says so and offers to clear them.
{% endhint %}

{% hint style="info" %}
**The same feed through the API.** `GET /contracts/deployments/{chainId}/{address}/events` returns these rows, newest first, and takes `event` and `where`, the rules as one JSON document. From the [SDK](/baas-sdk/blockchain/events.md), that is `baas.contract(name).address(addr).events({ event, where })`.
{% endhint %}

### The transaction detail

Click a row to open **Transaction detail**. It starts with the event's signature, the moment it happened, and the transaction hash in full, then lays out:

* **Accounts**, the addresses the event carries, under the role your mappings gave each one: **From**, **To**, and **Related**. It shows up as soon as one is named.
* **Values**, the parts of the event your mappings single out, under the names they give them.
* **Arguments**, every parameter the event carries, decoded against your ABI, each with its type.
* **On chain**, the coordinates of the log itself: block, network, indexes, contract, block hash, timestamp, topics, and data.

An amount that carries a unit reads formatted under **Values** and **Arguments**, with the same badge to switch it back to the raw integer. The **Values** cell of the row shows the formatted amount without the badge.

## Indexed networks

Your project runs on its own BaaS network, and the explorer reads that one. A deployment registered there fills the card and the feed above.

BaaS also supports public networks, such as Ethereum. A deployment on one of those stays registered and callable, and the explorer holds no data for it. The tab tells you so.

{% hint style="info" %}
**The feed starts at registration.** Anything your contract did before that stays on the chain, and never joins this list.
{% endhint %}

## Next

* [Mappings](/baas-console/contracts/mappings.md): decide which values BaaS keeps for you.
* [Units](/baas-console/contracts/units.md): see where the decimals of these amounts come from.
* [Read and write functions](/baas-console/contracts/read-and-write.md): call the deployment you are looking at.
