# Subnet

## What Is a Subnet?

A **Subnet** is a sovereign network which defines its own rules regarding its membership and token economics. It is composed of a dynamic subset of Avalanche validators working together to achieve consensus on the state of one or more blockchains. Each blockchain is validated by exactly one Subnet, while a Subnet can validate many blockchains.

Avalanche's [Primary Network](https://docs.avax.network/learn/avalanche/avalanche-platform) is a special Subnet running three blockchains:

* The Platform Chain [(P-Chain)](https://docs.avax.network/learn/avalanche/avalanche-platform#p-chain)
* The Contract Chain [(C-Chain)](https://docs.avax.network/learn/avalanche/avalanche-platform#c-chain)
* The Exchange Chain [(X-Chain)](https://docs.avax.network/learn/avalanche/avalanche-platform#x-chain)

<figure><img src="https://227004896-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FY0lZOOwi8lb7Yy2oMySH%2Fuploads%2FauPi58Qwjl6zCGen15gI%2Fimage.png?alt=media&#x26;token=4e21c126-e6f5-4ca1-a6ed-83313d442774" alt=""><figcaption></figcaption></figure>

Node operators that validate a Subnet with multiple chains do not need to run multiple machines for validation. For example, the Primary Network is a Subnet with three coexisting chains, all of which can be validated by a single node, or a single machine.

### Advantages[​](https://docs.avax.network/learn/avalanche/subnets-overview#advantages) <a href="#advantages" id="advantages"></a>

#### Independent Networks[​](https://docs.avax.network/learn/avalanche/subnets-overview#independent-networks) <a href="#independent-networks" id="independent-networks"></a>

* Subnets use virtual machines to specify their own execution logic, determine their own fee regime, maintain their own state, facilitate their own networking, and provide their own security.
* Each Subnet's performance is isolated from other Subnets in the ecosystem, so increased usage on one Subnet won't affect another.
* Subnets can have their own token economics with their own native tokens, fee markets, and incentives determined by the Subnet deployer.
* One Subnet can host multiple blockchains with customized [virtual machines](https://docs.avax.network/learn/avalanche/virtual-machines).

#### Native Interoperability[​](https://docs.avax.network/learn/avalanche/subnets-overview#native-interoperability) <a href="#native-interoperability" id="native-interoperability"></a>

* Avalanche Warp Messaging enables native cross-Subnet communication and allows Virtual Machine (VM) developers to implement arbitrary communication protocols between any two Subnets.

#### Accommodate Application-Specific Requirements[​](https://docs.avax.network/learn/avalanche/subnets-overview#accommodate-application-specific-requirements) <a href="#accommodate-application-specific-requirements" id="accommodate-application-specific-requirements"></a>

_Different blockchain-based applications may require validators to have certain properties such as large amounts of RAM or CPU power._

* A Subnet could require that validators meet certain [hardware requirements](https://docs.avax.network/nodes/run/node-manually#hardware-and-os-requirements) so that the application doesn’t suffer from low performance due to slow validators.

#### Launch a Network Designed With Compliance In Mind[​](https://docs.avax.network/learn/avalanche/subnets-overview#launch-a-network-designed-with-compliance-in-mind) <a href="#launch-a-network-designed-with-compliance-in-mind" id="launch-a-network-designed-with-compliance-in-mind"></a>

_Avalanche’s Subnet architecture makes regulatory compliance manageable. As mentioned above, a Subnet may require validators to meet a set of requirements._

Some examples of requirements the creators of a Subnet may choose include:

* Validators must be located in a given country.
* Validators must pass KYC/AML checks.
* Validators must hold a certain license.

#### Control The Privacy of On-Chain Data[​](https://docs.avax.network/learn/avalanche/subnets-overview#control-the-privacy-of-on-chain-data) <a href="#control-the-privacy-of-on-chain-data" id="control-the-privacy-of-on-chain-data"></a>

_Subnets are ideal for organizations interested in keeping their information private._

* Institutions conscious of their stakeholders' privacy can create a private Subnet where the contents of the blockchains would be visible only to a set of pre-approved validators. Define this at creation with a [single parameter](https://docs.avax.network/nodes/configure/subnet-configs#private-subnet).

#### Validator Sovereignty[​](https://docs.avax.network/learn/avalanche/subnets-overview#validator-sovereignty) <a href="#validator-sovereignty" id="validator-sovereignty"></a>

_In a heterogeneous network of blockchains, some validators will not want to validate certain blockchains because they simply have no interest in those blockchains._

* The Subnet model enables validators to concern themselves only with blockchain networks they choose to participate in. This greatly reduces the computational burden on validators.

### Develop Your Own Subnet[​](https://docs.avax.network/learn/avalanche/subnets-overview#develop-your-own-subnet) <a href="#develop-your-own-subnet" id="develop-your-own-subnet"></a>

Subnets on Avalanche are deployed by default with [Subnet-EVM](https://github.com/ava-labs/subnet-evm#subnet-evm), a fork of go-ethereum. It implements the Ethereum Virtual Machine and supports Solidity smart contracts as well as most other Ethereum client functionality.

To get started, check out the tutorials in our [Subnets](https://docs.avax.network/build/subnet/hello-subnet) section
