> For the complete documentation index, see [llms.txt](https://docs.endless.link/endless/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.endless.link/endless/devbuild/technical-documentation/account-address-format.md).

# Account Address Format

The Endless blockchain account addresses use Base58 encoding and have the following characteristics:

1. The length of most regular account addresses is between 43 and 44 characters.
2. You can quickly differentiate between accounts by checking the first and last few characters of the address.
3. Vanity addresses are supported.

{% hint style="info" %}
Account addresses are composed of multiple characters. To ensure the address matches your expectations, checking only the beginning and ending characters is insufficient.
{% endhint %}

For example, 5SHvmLEaSr76dsKy4XLR5vMht14PRuLzJFx6svJzqorP is an Endless account address.

Currently, addresses in Base58 encoding format are fully supported in both the command line and the block explorer.

Below is an example of how account transactions are displayed on the [block explorer](https://scan.endless.link/blocks):

On the backend, Endless addresses are stored as 32-byte arrays. In some cases, you may see this format in the command line or the browser. For instance, the Endless chain has two system account addresses, represented in hexadecimal format:

* `0x0000000000000000000000000000000000000001`, which can be simplified to 0x1. Its role is as the system account, responsible for executing system contracts.
* `0x0000000000000000000000000000000000000004`, which can be simplified to 0x4. Its role is as the system token account, responsible for managing "Tokens" and "NFTs."

To convert between Base58 format and byte format, you can use the following methods:

* Online Tools: Search for keywords such as "base58 encoder decoder"
* Python Code (requires the `base58` library):

  ```python
  import base58

  def encode_base58(data: bytes) -> str:
      """Encode bytes into a Base58 string"""
      return base58.b58encode(data).decode()

  def decode_base58(data: str) -> bytes:
      """Decode a Base58 string into bytes"""
      return base58.b58decode(data)
  ```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.endless.link/endless/devbuild/technical-documentation/account-address-format.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
