> For the complete documentation index, see [llms.txt](https://docs.autonomi.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.autonomi.com/developers/core-concepts/keys-addresses-and-datamaps.md).

# Keys, Addresses, and DataMaps

Autonomi keeps upload payment, public retrieval, and private retrieval separate.

## Why it matters

If you are building on Autonomi, you need to understand three different things:

* wallet keys pay for uploads
* public addresses retrieve public data
* `DataMap` retrieves private data

Treating those as one all-purpose developer key makes the rest of the system harder to understand.

## What you handle

| Material           | When you get it                                                | What you do with it                                    |
| ------------------ | -------------------------------------------------------------- | ------------------------------------------------------ |
| Wallet private key | You provide it                                                 | Pay for uploads                                        |
| Public address     | Returned after a public upload or public DataMap store         | Share or store it, then use it to retrieve public data |
| `DataMap`          | Returned after a private upload or saved locally by some tools | Store it safely, then use it to retrieve private data  |

## Wallet private key

The wallet private key is used for paid writes.

Depending on the tool you use, that appears as:

* `AUTONOMI_WALLET_KEY` for `antd`
* `SECRET_KEY` for `ant`
* an attached `Wallet` in `ant-core`

This key is about payment, not about private-data decryption.

## Public address

A public address is what you use to retrieve data that has been published on the network.

When you upload public data or store a public DataMap, the tooling returns an address that other readers can use later. If the content changes, the address changes too, because the storage model is content-addressed and immutable.

## DataMap

A `DataMap` is the private retrieval material that ties uploaded content back to its encrypted chunks.

For private data:

* the chunks are still stored on the network
* the `DataMap` is returned to you instead of being stored publicly
* if you lose that `DataMap`, you lose the practical ability to retrieve the private content

That means `DataMap` handling is a data-access concern, not a payment concern.

## Practical example

The simplest way to think about the split is:

* use a wallet key when you need to upload data
* use a public address when you want to retrieve public data
* use a `DataMap` when you want to retrieve private data

## Upstream sources

* [ant-sdk](https://github.com/WithAutonomi/ant-sdk)
* [ant-client](https://github.com/WithAutonomi/ant-client)
* [self\_encryption](https://github.com/WithAutonomi/self_encryption)

## Related pages

* [Data Types](/developers/core-concepts/data-types.md)
* [Self-Encryption](/developers/core-concepts/self-encryption.md)
* [Prepare a Wallet for Uploads](/developers/guides/prepare-a-wallet-for-uploads.md)
* [Build Read-Only Features](/developers/guides/build-read-only-features.md)
