# | Punk Domains Docs > Welcome to Punk Domains documentation! - [Welcome](https://docs.punk.domains/index.md): Welcome - [About Punk Domains](https://docs.punk.domains/about.md): Punk Domains allows you to register a domain name attached to your account address. - [Domains for DAOs](https://docs.punk.domains/domains-for-daos.md): Every top-level domain (like .smol, .spartan, .klima) within the Punk Domains protocol can be owned by a different entity. Which makes it perfect for DAOs and communities. - [Types of domains](https://docs.punk.domains/domain-types.md): Punk Domains is a modular domain protocol, which means it can support different types of domains with different features and business models. - [How to integrate Punk Domains](https://docs.punk.domains/how-to-integrate.md): If you'd like to integrate Punk Domains into your web3 app, chances are the only smart contract you'll need to interact with is the Resolver contract. - [100% On-Chain](https://docs.punk.domains/onchain.md): A very important feature of Punk Domains is that it's a 100% on-chain protocol. - [Modular Architecture](https://docs.punk.domains/modular-architecture.md): Punk Domains protocol was built with modularity in mind, which makes it very flexible and allows for different parts of the module to be owned by different owners (for example, TLDs or even factories can be owned by a different owners). - [How to contribute to Punk Domains](https://docs.punk.domains/contribute.md): As you already know, Punk Domains is a web3 domains protocol that can issue domain extensions for DAOs and other web3 communities. - [FAQ](https://docs.punk.domains/faq.md): A top-level domain is what some people call a domain extension. In the traditional world the most common TLDs are: - [Roadmap](https://docs.punk.domains/roadmap.md): Here you can see the Punk Domains roadmap. Note that this is a live document that is constantly updating. ## Tutorials - [How to integrate .flr names](https://docs.punk.domains/tutorials/how-to-integrate-flr-domains.md): .flr smart contract: 0xBDACF94dDCAB51c39c2dD50BffEe60Bb8021949a ## Contracts ### Standard - [Standard TLD factory contract](https://docs.punk.domains/contracts/standard/tld-factory.md): TLD Factory is owned by Punk Domains governance. This contract is responsible for issuing new TLDs and keeping a list of all TLDs created through it, and their respective addresses. - [Standard TLD contract](https://docs.punk.domains/contracts/standard/tld-contract.md): TLD contracts are generated dynamically by a Factory contract based on a pre-defined template. ### Flexi - [Flexi TLD factory contract](https://docs.punk.domains/contracts/flexi/flexi-tld-factory.md): Flexi TLD Factory is a contract responsible for issuing new TLDs and keeping a list of all TLDs created through it, and their respective addresses. - [Flexi TLD contract](https://docs.punk.domains/contracts/flexi/flexi-tld-template.md): TLD contracts are generated dynamically by a Factory contract based on a pre-defined template. ### Soulbound - [Soulbound TLD factory contract](https://docs.punk.domains/contracts/soulbound/soulbound-tld-factory.md): Soulbound TLD Factory is identical to the Flexi TLD Factory, except the embedded TLD template is slighly different (it does not allow token transfers). - [Soulbound TLD contract](https://docs.punk.domains/contracts/soulbound/soulbound-tld-template.md): The Soulbound TLD contract is almost identical to the Flexi TLD contract, except that it does not allow domain transfers beyong minting and burning. Soulbound TLD is another name for a non-transferable TLD. - [Forbidden and already-used TLDs contract](https://docs.punk.domains/contracts/forbidden-tlds.md): The Punk Domains architecture allows for multiple TLD factories (each with a different business model). In order to avoid colisions (two factories must not issue the same TLD), a separate contract is needed which keeps track of already-used and forbidden TLD names. - [Custom data](https://docs.punk.domains/contracts/custom-data.md): Custom data is not a separate contract. It's a string field within the Domains struct in the TLD contract: - [Resolver contract](https://docs.punk.domains/contracts/resolver.md): Each TLD has in-built resolver (getDomainHolder) and reverse-resolver (defaultNames) functions. But in order to simplify resolving domains, there's also the PunkResolver contract, which can resolve all punk TLDs. ## Addresses - [Factory addresses](https://docs.punk.domains/addresses/contract-addresses.md): Below are listed addresses for the first Punk Domains TLD factory which allows for one-time TLD and domain purchases. - [TLD addresses](https://docs.punk.domains/addresses/tld-addresses.md): Note that only TLDs that have buying domains enabled are visible on the Punk Domains front page. - [ForbiddenTLDs contract addresses](https://docs.punk.domains/addresses/forbidden-tlds-addresses.md): PunkForbiddenTlds is a contract that stores the names of TLDs that already exist, either within Punk Domains, or with other domain name services such as ENS and Unstoppable Domains. - [Resolver contract addresses](https://docs.punk.domains/addresses/resolver-addresses.md): Resolver is a contract which resolves all punk domains on a given chain. Each chain has its own Resolver contract. ## Other - [Browser extension](https://docs.punk.domains/other/browser-extension.md): All browsers that are built on top of Chromium (Chrome, Brave, Edge, Opera etc.) can install the official Punk Domains extension from the Chrome Web Store: Click here to download. - [Punk Domains Version 2 (migration completed)](https://docs.punk.domains/other/v2-migration.md): Punk Domains has migrated to version 2. If you've minted domains in V1, you'll automatically get new ones. Old ones will be marked as deprecated, so just ignore them.