Hats Protocol Docs
hatsprotocol.xyzGithub
  • ๐Ÿ‘‹Welcome to Hats Protocol
  • ๐ŸงขGetting Started with Hats
  • โญQuick Start
  • Using The Hats App
    • ๐Ÿค Essentials For Hat Wearers
    • ๐ŸŽฉCreating My First Hat
    • ๐Ÿง™Admins: Creating, Issuing, and Revising Hats
    • ๐Ÿ‘ฅWhat Hats Do I Need?
    • ๐ŸŒณDrafting, Exporting, and Deploying Tree Changes
    • ๐Ÿ—๏ธSetting a Hat's Basic Properties
    • ๐ŸฅณAdding Wearers
    • ๐Ÿ”Connecting Hats w/ Permissions & Authorities
      • Types of Hat-Powered Authorities
      • Connecting Hats to Token Gates
        • Hats Protocol Contract Addresses
        • Finding a Hat's Token ID
      • Documenting Hat Powers & Responsibilities
    • ๐ŸŒŸRevocation & Eligibility: Requirements for Wearers
    • โšกDeactivating & Reactivating Hats
    • โœ…Making Hats Claimable
    • ๐Ÿ”—Linking Trees Together
    • โ›“๏ธHats Protocol Supported Chains
    • โ“Glossary & FAQ
  • Hats Integrations
    • ๐Ÿ”Permissions & Authorities
      • Coordinape
      • Council Voting Vault
      • Charmverse
      • Discord
        • Collab.Land --> Discord
        • Guild.xyz --> Discord
      • Farcaster Casting Rights
      • Fileverse
      • Google Workspace
      • Hats Account
      • Role-Based Compensation
      • Safe Multisig Signing Authority
      • Telegram
        • Collab.Land --> Telegram
        • Guild.xyz --> Telegram
      • Snapshot: Voting, Weight & Proposal Creation
      • Wonderverse
    • ๐ŸŒŸEligibility & Accountability Criteria
      • Agreement Eligibility
      • Allow-List Eligibility
      • CoLinks Eligibility
      • ERC20 Eligibility
      • ERC721 Eligibility
      • ERC1155 Eligibility
      • Hat-Wearing Eligibility
      • Hats Election Eligibility
      • JokeRace Eligibility
      • Pass-Through (Hat-Based) Eligibility
      • Staking Eligibility
      • Subscription or Membership Fee (Unlock Protocol)
      • Gitcoin Passport Eligibility
    • โšกActivation & Deactivation Criteria
      • Seasonal/ Time-Expiry Toggle
      • Pass-Through (Hat-Based) Toggle
    • ๐Ÿ‘ทHatter Modules
      • Multi Claims Hatter
      • DAOhaus Moloch v3 Membership & Share Allocation
  • For Developers
    • ๐Ÿ‘ทHats Protocol, for Developers
      • Hat Properties
      • Wearing a Hat
      • Hat Admins & Hatter Contracts
      • Hats Trees
      • Hat IDs
      • Linking Hats Trees
      • Eligibility Modules
      • Toggle Modules
      • Hat Mutability and Editing
      • Creating Hats
      • Minting Hats
      • Transfering Hats
      • Renouncing Hats
      • Batch Actions
      • Hat Image URIs
      • ERC1155 Compatibility
      • โ›“๏ธSupported Chains
    • ๐Ÿค–v1 Protocol Spec
      • Hats.sol
      • HatsEvents.sol
      • HatsErrors.sol
      • HatsIdUtilities.sol
      • Interfaces
        • IHats.sol
        • IHatsIdUtilities.sol
        • IHatsEligibility.sol
        • IHatsToggle.sol
    • ๐Ÿ–ฅ๏ธv1 SDK
      • Core
        • Getting Started
        • Onchain Reads
        • Onchain Writes
        • Multicall
        • Claiming Hats
        • Utilities
      • Subgraph
        • Getting Started
        • Fetching Hats
        • Fetching Wearers
        • Fetching Trees
        • Misc
        • Types
      • Hat Details
        • Getting Started
        • Usage
    • ๐Ÿ”ญv1 Subgraphs
    • ๐ŸงฉHats Modules
      • ๐Ÿ”ŒModules SDK
        • Getting Started
        • Get Available Modules
        • Create New Instance/s
        • Composing Modules
        • Interact With Instances
        • Utilities
        • Types
      • โš’๏ธBuilding Hats Modules
        • Inside a Hats Module
          • Immutable Arguments
          • Module Setup
          • Versioning
        • Creating New Modules
        • How Module Instances Are Deployed
        • Modules Registry
        • About Module Chains
    • ๐Ÿ”Hats Signer Gate v2
    • ๐Ÿ‘’Hats Signer Gate SDK
      • Getting Started
      • Creating New Instances
      • Hats Signer Gate
      • Multi Hats Signer Gate
      • HSG & MHSG Handlers
    • ๐Ÿ’ผHats Account SDK
      • 1 of N Hats Account
        • Getting Started
        • Creating New Instances
        • Executing From An Instance
        • Constants
        • Types
    • ๐ŸŒHats Security Audits
  • Legal
    • Terms
      • Terms of Service
      • Acceptable Use
      • Privacy Policy
      • Cookie Policy
      • Attribution
Powered by GitBook
On this page
  • Different Kinds of Roles
  • The Top Hat
  • Workstream, Team, and Group Roles
  • Individual Roles
  • Discrete Authorities
  • General Recommendations
  1. Using The Hats App

What Hats Do I Need?

PreviousAdmins: Creating, Issuing, and Revising HatsNextDrafting, Exporting, and Deploying Tree Changes

Last updated 1 year ago

Hats are roles, and roles are rich objects that compose a lot of things together, including: responsibilities, authorities, and accountabilities.

What roles might you want to represent as hats? As you consider all the hats you may want to deploy, it may be helpful to consider the following kinds of roles we commonly see embodied onchain as hats.

Different Kinds of Roles

Hats can represent roles at different levels of granularity. It can be helpful to start broad and get increasingly granular, listing each hat as you go.

The Top Hat

The broadest authority of your Hats tree is represented by the Top Hat. This is the first hat you will create; you can think of it as the superadmin of the entire Hats tree. Top Hats should be worn by the highest-level governance surface of your organization. That said, when you're just getting started it's usually OK to first mint the Top Hat to an address you control and then transfer the Top Hat to the organization's address later.

Workstream, Team, and Group Roles

Next, consider the roles held collectively by a group, such as Councils, Workstreams, Guilds, and other organizational units. Any address can wear a hat, so multisigs and pods can and often should be represented by hats as well.

Individual Roles

What roles exist in your organization that will be held by individual people? Roles can be broad and held by many people, as in a Community Member Hat or Guild Member Hat, or narrow and specific, as in a Workstream Facilitator Hat or Recognized Delegate Hat. Roles may also be ongoing, or bound to a specific project or deliverable.

Discrete Authorities

Consider any granular authorities that should be represented by a hat to enable capture-resistant delegation and revocation of specific credentials. See the section below for examples of the types of authorities that can be enabled by Hats.

Your Hats tree is meant to evolve with your organization, so don't feel pressure to get it perfect from the start. For example, roles can continue to be added, removed, and changed over time (as long as they are ). The wearers of a given hat may change over time as well, as a given hat can be worn first by a single individual and later transferred to a group (e.g., a multisig or pod), or vice versa.

General Recommendations

Here are some general recommendations for an organization's tree structure:

The Autonomous Admin role can also enable an individual EOA to temporarily set up and manage the Hats tree for a period of time, usually during a bootstrap period.

The wearer is the entity that represents the organization's highest-level governance surface.

Right below the Top Hat, create an "Autonomous Admin" role, from which the rest of the tree will flow. This role can be granted to smart contracts that will automate certain operations, e.g. making other roles in the tree , and more. Creating this dedicated role will future-proof your tree for handling automation/operational needs.

wear Level 2 hats (just below the Autonomous Admin).

Hats and Hats are located at the lower-levels of the tree.

๐Ÿ‘ฅ
claimable by eligible accounts
Top Hat
Workstreams, Teams, or Groups
Individual Role
Discrete Authority
Hat-Gated Authorities
mutable