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
  • IHats
  • Functions
  1. For Developers
  2. v1 Protocol Spec
  3. Interfaces

IHats.sol

PreviousInterfacesNextIHatsIdUtilities.sol

Last updated 1 year ago

IHats

Inherits: IHatsIdUtilities, HatsErrors, HatsEvents

Functions

mintTopHat

function mintTopHat(address _target, string memory _details, string memory _imageURI)
    external
    returns (uint256 topHatId);

createHat

function createHat(
    uint256 _admin,
    string calldata _details,
    uint32 _maxSupply,
    address _eligibility,
    address _toggle,
    bool _mutable,
    string calldata _imageURI
) external returns (uint256 newHatId);

batchCreateHats

function batchCreateHats(
    uint256[] calldata _admins,
    string[] calldata _details,
    uint32[] calldata _maxSupplies,
    address[] memory _eligibilityModules,
    address[] memory _toggleModules,
    bool[] calldata _mutables,
    string[] calldata _imageURIs
) external returns (bool success);

getNextId

function getNextId(uint256 _admin) external view returns (uint256 nextId);

mintHat

function mintHat(uint256 _hatId, address _wearer) external returns (bool success);

batchMintHats

function batchMintHats(uint256[] calldata _hatIds, address[] calldata _wearers) external returns (bool success);

setHatStatus

function setHatStatus(uint256 _hatId, bool _newStatus) external returns (bool toggled);

checkHatStatus

function checkHatStatus(uint256 _hatId) external returns (bool toggled);

setHatWearerStatus

function setHatWearerStatus(uint256 _hatId, address _wearer, bool _eligible, bool _standing)
    external
    returns (bool updated);

checkHatWearerStatus

function checkHatWearerStatus(uint256 _hatId, address _wearer) external returns (bool updated);

renounceHat

function renounceHat(uint256 _hatId) external;

transferHat

function transferHat(uint256 _hatId, address _from, address _to) external;

makeHatImmutable

function makeHatImmutable(uint256 _hatId) external;

changeHatDetails

function changeHatDetails(uint256 _hatId, string memory _newDetails) external;

changeHatEligibility

function changeHatEligibility(uint256 _hatId, address _newEligibility) external;

changeHatToggle

function changeHatToggle(uint256 _hatId, address _newToggle) external;

changeHatImageURI

function changeHatImageURI(uint256 _hatId, string memory _newImageURI) external;

changeHatMaxSupply

function changeHatMaxSupply(uint256 _hatId, uint32 _newMaxSupply) external;

requestLinkTopHatToTree

function requestLinkTopHatToTree(uint32 _topHatId, uint256 _newAdminHat) external;

approveLinkTopHatToTree

function approveLinkTopHatToTree(
    uint32 _topHatId,
    uint256 _newAdminHat,
    address _eligibility,
    address _toggle,
    string calldata _details,
    string calldata _imageURI
) external;

unlinkTopHatFromTree

function unlinkTopHatFromTree(uint32 _topHatId, address _wearer) external;

relinkTopHatWithinTree

function relinkTopHatWithinTree(
    uint32 _topHatDomain,
    uint256 _newAdminHat,
    address _eligibility,
    address _toggle,
    string calldata _details,
    string calldata _imageURI
) external;

viewHat

function viewHat(uint256 _hatId)
    external
    view
    returns (
        string memory details,
        uint32 maxSupply,
        uint32 supply,
        address eligibility,
        address toggle,
        string memory imageURI,
        uint16 lastHatId,
        bool mutable_,
        bool active
    );

isWearerOfHat

function isWearerOfHat(address _user, uint256 _hatId) external view returns (bool isWearer);

isAdminOfHat

function isAdminOfHat(address _user, uint256 _hatId) external view returns (bool isAdmin);

isInGoodStanding

function isInGoodStanding(address _wearer, uint256 _hatId) external view returns (bool standing);

isEligible

function isEligible(address _wearer, uint256 _hatId) external view returns (bool eligible);

getHatEligibilityModule

function getHatEligibilityModule(uint256 _hatId) external view returns (address eligibility);

getHatToggleModule

function getHatToggleModule(uint256 _hatId) external view returns (address toggle);

getHatMaxSupply

function getHatMaxSupply(uint256 _hatId) external view returns (uint32 maxSupply);

hatSupply

function hatSupply(uint256 _hatId) external view returns (uint32 supply);

getImageURIForHat

function getImageURIForHat(uint256 _hatId) external view returns (string memory _uri);

balanceOf

function balanceOf(address wearer, uint256 hatId) external view returns (uint256 balance);

balanceOfBatch

function balanceOfBatch(address[] calldata _wearers, uint256[] calldata _hatIds)
    external
    view
    returns (uint256[] memory);

uri

function uri(uint256 id) external view returns (string memory _uri);
๐Ÿค–
Git Source