> For the complete documentation index, see [llms.txt](https://api-docs.nf.domains/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://api-docs.nf.domains/reference/on-chain-reference/name-and-address-lookup.md).

# Name & Address Lookup

The following Go code and example command-line application demonstrates how to efficiently  resolve the smart-signature account address for a **name**, or an **address** on-chain.

See <https://go.dev/learn/> if you want a quick start with go.  Other implementations will be provided, but this code should be fairly understandable and easily translated to other languages.

{% hint style="warning" %}
**See** [**https://github.com/TxnLab/nfd-cli-examples**](https://github.com/TxnLab/nfd-cli-examples) **for a simple CLI program that provides, name, reverse-address lookup (verified, linked addresses), 'owned by' lookup (3.4+), as well as decoding/displaying of all the metadata within an NFD.**

**This program supports looking up / reading V2+ NFDs as well as V1.**
{% endhint %}

{% tabs %}
{% tab title="Name Lookup" %}
To lookup the smart-signature account address for nfdomains.algo, you could use the following example command-line application and run:

`go run ./main.go -name nfdomains.algo`

Which (for mainnet) will output:

Found as V2 name, ASA ID:763844429, APP ID:763844423\
...

This can be verified against the API, by using the nameSig REST API, a GET request to <https://api.nf.domains/nfd/nameSig/nfdomains.algo> which should return the exact same address.
{% endtab %}

{% tab title="Address Lookup" %}
To be able to look up the NFD app ids for a particular address, run:

`go run ./main.go -addr` RSV2YCHXA7MWGFTX3WYI7TVGAS5W5XH5M7ZQVXPPRQ7DNTNW36OW2TRR6I

Which will output:

Found 1 NFDs linked as V2 address\
\[...]

The reverse address verification API for the same:\
<https://api.nf.domains/nfd/revAddressSig/RSV2YCHXA7MWGFTX3WYI7TVGAS5W5XH5M7ZQVXPPRQ7DNTNW36OW2TRR6I>

{% endtab %}

{% tab title="NFDs owned By" %}
To be able to look up the NFD app ids owned by a particular address, run:

`go run ./main.go -addr` RSV2YCHXA7MWGFTX3WYI7TVGAS5W5XH5M7ZQVXPPRQ7DNTNW36OW2TRR6I -owns

This will display all 3.x NFDs owned by a particular address.  V1/V2 NFDs are not fetchable using this solution.  The NFD API will need called instead (or you will need to index NFDs yourself).
{% endtab %}
{% endtabs %}
