# Subnet Creation
URL: /academy/permissioned-l1s/01-introduction/03-create-subnet

A quick review of creating a Subnet blockchain on Avalanche - the foundation for our permissioned L1.

import { Step, Steps } from 'fumadocs-ui/components/steps';

In the Avalanche Fundamentals course, you learned how to create your own Subnet blockchain from scratch. This section provides a speedrun review of those concepts, focusing on creating the Subnet foundation that we'll later convert to a permissioned L1 with Validator Manager contracts.

## Overview

Let's quickly review the Subnet creation process. This speedrun assumes you're already familiar with the concepts and just need a refresher before we dive into advanced permissioned validator management.

<Steps>
  <Step>
    ### Connect & Fund Core Wallet

    **Quick Steps:**

    1. [Download Core Wallet](https://core.app/) if not already installed
    2. Connect your wallet and set to Tesnet mode (upper-right toggle button)
    3. Use the faucet on the Toolbox below to claim testnet AVAX
    4. Use the P-Chain faucet directly to claim AVAX on the P-Chain

    <ToolboxMdxWrapper walletMode="c-chain" />
  </Step>

  <Step>
    ### Create Subnet and Blockchain Records

    Create the P-Chain records for your Subnet by issuing two transactions:

    1. `CreateSubnetTx` - Creates a Subnet identified by the transaction hash
    2. `CreateChainTx` - Adds a blockchain to the Subnet

    <ToolboxMdxWrapper walletMode="c-chain">
      <CreateChain />
    </ToolboxMdxWrapper>

    **Key Parameters:**

    * **Subnet Owner**: Your P-Chain address (will lose privileges when we convert to L1 later)
    * **Chain Name**: Your blockchain's name
    * **VM ID**: The Virtual Machine type (usually Subnet-EVM)
    * **Genesis Data**: Initial blockchain configuration
  </Step>

  <Step>
    ### Set Up Validator Node

    Launch a node to track your Subnet using Docker. This node will become a validator for your Subnet, and later will be managed by the Validator Manager contract when we convert to L1.

    <ToolboxMdxWrapper walletMode="testnet-mainnet">
      <AvalancheGoDocker />
    </ToolboxMdxWrapper>

    <Callout type="info">
      **Note on Complexity with Localhost**

      Running validator nodes on localhost can be complex due to networking constraints, port forwarding requirements, and reliability issues. One of the main challenges is securely opening the required ports for node communication while maintaining security.

      For this course use, we strongly recommend using:

      * **Self-Hosted Node Tool**: Our upcoming self-hosted solution for running nodes securely
      * **Cloud Providers**: AWS, Google Cloud, Azure, or Digital Ocean for full control

      For detailed setup instructions, see the [Avalanche Fundamentals course](/academy/avalanche-fundamentals).
    </Callout>
  </Step>

  <Step>
    ### Test Your Subnet

    Deploy a test ERC-20 token to verify your Subnet is functioning correctly.

    <ToolboxMdxWrapper walletMode="l1">
      <DeployExampleERC20 />
    </ToolboxMdxWrapper>
  </Step>

  <Step>
    ### Cleanup (Optional)

    Stop and remove your node when done testing:

    ```bash
    # Stop the node
    docker stop avago

    # Remove the container (keeps state)
    docker rm avago

    # To completely remove state and credentials
    rm -rf ~/.avalanchego
    ```
  </Step>
</Steps>

## Key Takeaways

* **P-Chain Registry**: All validators and blockchains are registered on the P-Chain
* **Subnet Foundation**: Your Subnet provides the blockchain infrastructure that we'll enhance
* **Traditional Validation**: Currently using Avalanche's standard Subnet validation model
* **Ready for Evolution**: Your Subnet is now ready to be converted to a sovereign L1

## What's Next: From Subnet to Permissioned L1

In the following chapters, we'll transform your Subnet into a sophisticated permissioned L1:

1. **Deploy Validator Manager Contracts**: Learn how to deploy and configure smart contracts that will control validator access
2. **Convert to L1**: Transform your Subnet into a sovereign L1 with the Validator Manager as the authority
3. **Implement Proof of Authority**: Configure permissioned validator management with role-based access control
4. **Advanced Features**: Add custom governance, tokenomics, and cross-chain communication

The Subnet you just created is the foundation - now we'll add the advanced permissioning and governance features that make it truly powerful for enterprise and regulated use cases.

Remember, this was just a speedrun review. For detailed explanations and troubleshooting, refer back to the full [Avalanche Fundamentals course](/academy/avalanche-fundamentals).
