Build on Flow | Learn FCL - 7. How to Query Flow Account by Address
Tags: javascript, tutorial, fcl, onflow
Published: 2022-06-14 16:36:37

## Overview

In the [previous post](https://dev.to/onflow/build-on-flow-learn-fcl-6-how-to-query-latest-block-in-the-chain-8gh), we covered how to collect information about blocks on the chain. Today we will cover how you can query information about a specific account using the `account` function.

The two most common use cases, and what you’ll be learning today are:

- get the current FLOW balance of the account
- get a list of contracts deployed on the account

### Step 1 - Installation

Add `"@onflow/fcl": "1.0.0"` as your dependency

### Step 2 - Setup

Just like the last time, we will import necessary methods and setup FCL:

```jsx
// Import methods from FCL
import { account, query, config } from "@onflow/fcl";

// Specify the API endpoint - this time we will use Mainnet
const api = "https://rest-mainnet.onflow.org";

// Configure FCL to use mainnet as the access node
config().put("accessNode.api", api);
```

### Step 3 - Copy Resolver

It’s always great to apply previously acquired knowledge and practice. So let’s bring back the resolver function from [lesson 4](https://dev.to/onflow/build-on-flow-learn-fcl-4-how-to-resolve-find-identity-name-to-an-address-2po0) so we can use it in our example:

```jsx
const resolveName = async (name) => {
	const cadence = `
    import FIND from 0x097bafa4e0b48eef

    pub fun main(name: String): Address?{
      return FIND.lookupAddress(name)
    }
  `;

  const args = (arg, t) => [arg(name, t.String)];
  return await query({ cadence, args });
};
```

### Step 4 - Fetch Account

Let’s try to resolve the `flovatar` identity name and explore what it has for us to see 😊

We will use our IIFE block as always:

```jsx
// We will use IIFE to execute our code right away
(async () => {
  console.clear();

  const address = await resolveName("flovatar")

	// it's possible that name will be resolved to "null"
  // so let's add some basic protection here 
	if (address){
    const accountInfo = await account(address);
    console.log({ accountInfo });
	}
})();
```

After the dust settles, you should see the following in the console:

```jsx
{
	address: "921ea449dffec68a",
	balance: 13052726819120,
	code: "",
	contracts: Object,
	keys: Array(2),
}
```

Those 5 fields are respectively: 

- `address` **-** address of the account (notice missing `0x` prefix if you would want to use it in the future
- `balance` - amount of FLOW tokens in UFix64 format. Divide by `Math.pow(10,8)` to get float value out of it
- `code` - this is deprecated value, which was previously used to store code of the contract deployed on account. Before it was possible to store only single contract per account.
- `contracts` - object representing deployed contracts. Keys are name of the contract and values are Cadence code of respected contract
- `keys` - array of keys attached to the account

You can find more information about them on Flow Docs Site - [https://docs.onflow.org/fcl/reference/api/#blockobject](https://docs.onflow.org/fcl/reference/api/#blockobject)

## Other Ways to Explore Account

There are ways to explore specific account:

- **Flow View Source** - [https://flow-view-source.com/mainnet/account/0x5916e847260714b6](https://flow-view-source.com/mainnet/account/0x5916e847260714b6) - is a community project by OG of FCL - James Hunter - [https://github.com/orodio](https://github.com/orodio)
- **FlowScan** - [https://flowscan.org/account/0x5916e847260714b6](https://flowscan.org/account/0x5916e847260714b6) - Flowscan page will show more information about account transactions and transfers, since they are processing the blocks to accumulate that information.

Until next time 👋

## Resources

- **Full Source Code** - [https://codesandbox.io/s/dev-to-fcl-07-get-account-j9rxkm?file=/src/index.js](https://codesandbox.io/s/dev-to-fcl-07-get-account-j9rxkm?file=/src/index.js)

Other resources you might find useful:

- **Flow Docs Site** - [https://docs.onflow.org/](https://docs.onflow.org/) - More detailed information about Flow blockchain and how to interact with it
- **Flow Portal** - [https://flow.com/](https://flow.com/) - your entry point to Flow
- **FCL JS** - [https://github.com/onflow/fcl-js](https://github.com/onflow/fcl-js) - Source code and ability to contribute to the FCL JS library
- **Cadence** - [https://docs.onflow.org/cadence/](https://docs.onflow.org/cadence/) - Introduction to Cadence
- **Codesandbox** - [https://codesandbox.io](https://codesandbox.io/) - An amazing in-browser IDE enabling quick prototyping