> For the complete documentation index, see [llms.txt](https://docs.hatsprotocol.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hatsprotocol.xyz/for-developers/hats-protocol-for-developers.md).

# Hats Protocol, for Developers

Put on your hardhats and lets get into the nitty gritty of Hats Protocol!

## What are Hats?

**Hats are roles**. In Hats Protocol, roles are rich, substantive, objectives with multiple dimensions:

* Responsibility
* Authorities/Rights/Powers
* Accountability
* Clarity & context
* Compensation & incentives

These roles, modeled as hats, are embodied onchain in Hats.sol storage, and represented as non-transferable [ERC1155-similar](/for-developers/hats-protocol-for-developers/erc1155-compatibility.md) tokens.

Every hat is connected to at least one other hat in a structure that we call a [Hats tree](/for-developers/hats-protocol-for-developers/hats-trees.md).

The bulk of the protocol logic is devoted to defining how hats are created, issued, revoked, and managed. It also creates several integration points and hooks for developers to extend and customize the behavior of particular hats.

## Hats Protocol Functionality

See each of the following subpages for more details:

{% content-ref url="/pages/2WCJQLZVHDP9cgmeWBUs" %}
[Hat Properties](/for-developers/hats-protocol-for-developers/hat-properties.md)
{% endcontent-ref %}

{% content-ref url="/pages/w3xXWC0H8LFxFTZSx5rp" %}
[Wearing a Hat](/for-developers/hats-protocol-for-developers/wearing-a-hat.md)
{% endcontent-ref %}

{% content-ref url="/pages/ccHiZ6h0hOJgpSVeyo7f" %}
[Hat Admins & Hatter Contracts](/for-developers/hats-protocol-for-developers/hat-admins-and-hatter-contracts.md)
{% endcontent-ref %}

{% content-ref url="/pages/fFujMiQlPwW0M4HOsQ3m" %}
[Hats Trees](/for-developers/hats-protocol-for-developers/hats-trees.md)
{% endcontent-ref %}

{% content-ref url="/pages/EJVhmtVk9whKcZyoFRF4" %}
[Hat IDs](/for-developers/hats-protocol-for-developers/hat-ids.md)
{% endcontent-ref %}

{% content-ref url="/pages/pxs7PdiUrJO2UgKvswqw" %}
[Eligibility Modules](/for-developers/hats-protocol-for-developers/eligibility-modules.md)
{% endcontent-ref %}

{% content-ref url="/pages/EBwW0A90enHyonJOY6k6" %}
[Toggle Modules](/for-developers/hats-protocol-for-developers/toggle-modules.md)
{% endcontent-ref %}

{% content-ref url="/pages/EBwW0A90enHyonJOY6k6" %}
[Toggle Modules](/for-developers/hats-protocol-for-developers/toggle-modules.md)
{% endcontent-ref %}

{% content-ref url="/pages/YLnHOyCh9uHLjks7sVBj" %}
[Hat Mutability and Editing](/for-developers/hats-protocol-for-developers/hat-mutability-and-editing.md)
{% endcontent-ref %}

{% content-ref url="/pages/IHYdcUIsXdQsrIWNEwV1" %}
[Creating Hats](/for-developers/hats-protocol-for-developers/creating-hats.md)
{% endcontent-ref %}

{% content-ref url="/pages/rxZTr2oXF9FRMyaj74Dv" %}
[Minting Hats](/for-developers/hats-protocol-for-developers/minting-hats.md)
{% endcontent-ref %}

{% content-ref url="/pages/AALDcOcQfZsbjFfB6HR7" %}
[Transfering Hats](/for-developers/hats-protocol-for-developers/transfering-hats.md)
{% endcontent-ref %}

{% content-ref url="/pages/CeQtxX8x7QmCGScaVk4a" %}
[Renouncing Hats](/for-developers/hats-protocol-for-developers/renouncing-hats.md)
{% endcontent-ref %}

{% content-ref url="/pages/YjdGZZfos2tWpJbMzgKE" %}
[Linking Hats Trees](/for-developers/hats-protocol-for-developers/linking-hats-trees.md)
{% endcontent-ref %}

{% content-ref url="/pages/VTq9hdziUJCRt1YoLFfM" %}
[Batch Actions](/for-developers/hats-protocol-for-developers/batch-actions.md)
{% endcontent-ref %}

{% content-ref url="/pages/xTm5ymhsn2GlWDHJcLy5" %}
[Hat Image URIs](/for-developers/hats-protocol-for-developers/hat-image-uris.md)
{% endcontent-ref %}

{% content-ref url="/pages/bNYmY7eKfF84QWDWyeJS" %}
[ERC1155 Compatibility](/for-developers/hats-protocol-for-developers/erc1155-compatibility.md)
{% endcontent-ref %}
