> 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/users/explorer.md).

# Explorer

Browse the values BaaS keeps for one user, and every event they appear in.

Open a user from the [Users](/baas-console/users.md) list, and the **Explorer** section sits below their address and email. Pick a deployment to see the values BaaS keeps for this user, along with every event they appear in. In this guide, you follow `alice@example.com` and their `MyToken` balance.

## Pick a deployment

Pick a deployment the same way as in the Contracts [Explorer](/baas-console/contracts/explorer.md#pick-a-deployment). Rows where this user already has values are marked.

## Contract data

Two cards sit at the top, collapsed. Unfold one and read it as a **Table**, or as **JSON** for the exact payload and a copy button.

The first card, **Contract data**, holds the values BaaS keeps for the deployment itself, the same ones the Contracts [Explorer](/baas-console/contracts/explorer.md#contract-data) shows. In our example, that is the `totalSupply` of `MyToken`, while the `balance` below belongs to this user.

## User data

The second card, **User data**, holds this user's own values on this deployment, the ones your [mappings](/baas-console/contracts/mappings.md#the-four-shapes) read for a wallet. A value kept per wallet and key, such as one balance per project, lists its entries under a count.

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, `balance` reads `1.5`, with `1500000000000000000` one click away.

A [rollback](/baas-console/contracts/versions-and-rollback.md) takes these values with it.

{% hint style="info" %}
**An empty card is not an empty user.** Values are kept per deployment, so a user with nothing here may hold plenty on another. The search box marks which ones.
{% endhint %}

## Transactions

The **Transactions** panel lists every event of this deployment where your mappings name this user, newest first and twenty to a page. It carries the same columns as the Contracts [Explorer](/baas-console/contracts/explorer.md#transactions): **Transaction hash**, **Method**, **Age**, **From**, **To**, and **Values**. It adds one of its own, **Direction**, between the two addresses.

**Direction** shows the role your mappings give this wallet in the event:

* **OUT**, where a resource leaves it.
* **IN**, where a resource reaches it.
* **RELATED**, where the event names it without taking a side. Shown only when the wallet is in neither **OUT** nor **IN** of that event.

An event can put the wallet in more than one role, with a badge for each. In our example, the transfer that delivered the `1.5` reads **IN**.

{% hint style="info" %}
**Direction is a matter of viewpoint.** The same transfer reads **OUT** for the sender and **IN** for the recipient.
{% endhint %}

Click a row to open the transaction detail, laid out in the Contracts [Explorer](/baas-console/contracts/explorer.md#the-transaction-detail). Until this user appears in an event, the panel says so instead of leaving you an empty table.

The filters above the list are the same as in the Contracts [Explorer](/baas-console/contracts/explorer.md#filter-the-feed): **Event**, then the rules behind **Filters**. One field differs: `direction` replaces `wallet`, since this page already knows the wallet. A rule `direction` **=** `out`, `in` or `related` shows only the rows where the user plays that role. To find the other side of a transfer, add a rule on its address argument, such as `args.from` **=** the sender. Fields, operators and values are on the [Filters](/baas-console/filters.md) page.

To find received transfers of at least **10 tokens**, select **Transfer**, then add `direction` **=** `in` and `args.value` **≥** `10` under **All rules**, with **Smart unit** on.

{% hint style="info" %}
**The same feed through the API.** `GET /users/{userId}/contracts/{chainId}/{address}/events` returns these rows with their `directions`, and accepts `event` and `where`, plus `page` and `limit`. The wallet is fixed by `userId`; a `where` with `or` still stays within this user's history. From the [SDK](/baas-sdk/manage-user.md#filter-the-users-history), use `baas.user.events({ address, event, where })` for the signed-in user.
{% endhint %}

{% hint style="info" %}
**Events can predate the user.** A user's history can include events from before they signed up.
{% endhint %}

## Indexed networks

BaaS indexes your project's own network, the same rule the Contracts [Explorer](/baas-console/contracts/explorer.md#indexed-networks) follows. A deployment registered on a public network stays selectable, and this section holds no data for it. A notice takes the place of the cards and the feed, with a **Pick another deployment** button to move on.

## Next

* [Explorer](/baas-console/contracts/explorer.md): read the same deployment from the contract's side.
* [Mappings](/baas-console/contracts/mappings.md): declare the values that appear here.
* [Users](/baas-console/users.md): back to the section overview.
