What is a Subnet?
A Subnet, or Subnetwork, is a dynamic set of validators working together to achieve consensus on the state of a set of blockchains. Each blockchain is validated by exactly one Subnet, however, a Subnet can validate more than one blockchain. A node may be a member of arbitrarily many Subnets. It manages its own membership and it may require that its constituent validators have certain properties. Subnets are independent and don’t share execution thread, storage, or networking with other Subnets or the Primary Network, effectively allowing the network to scale up easily while enabling lower latency, higher transactions per second (TPS), and lower transaction costs. They also share the benefits provided by the Avalanche Protocol such as low cost and time to finality.
Visual representation of how subnets reside in the Avalanche network https://medium.com/@arikan/a-comparison-of-heterogeneous-blockchain-networks-4bf7ff2fe279
How much does it cost to start a Subnet?
To create the Subnet, it costs 1 AVAX. Initial fees are available here on the following page so you can determine the costs of starting your specific Subnet.
What is the minimum amount of validators a Subnet requires?
A minimum of 5 validators is suggested. You can run a subnet with less (even one), but that is not recommended since your subnet will halt easily if one or more validators go offline. As a general rule, you should have as many validators as possible.
Do I need to create my own validators?
It depends if you have the resources to create your own validators. If not, you can incentivize existing validators to validate your Subnet.
Do validators also validate the primary network?
Yes, validators will validate both the Subnet and the primary network (X,P, and C chain). It is up to the node operator to ensure the optimal health of the node. Note: Validators can also validate more than 1 Subnet on top of the Primary Network.
Why should validators validate Subnets?
This allows operators to be early adopters in new projects by validating them, thus reaping potential tokens and rewards from the Subnet itself but also the growth of that Subnet ecosystem. It also keeps a flow of new Subnets and projects coming to the network in which you can participate from the ground up. Also, subnets need to incentivize the validators to join, so validators are expected to have direct benefits for providing their service to the subnet.
Does Subnet traffic affect the main network traffic?
No. Subnets have their own state and execution thread. So it does not share the processing, TPS, or networking with the Primary Network. Thus enabling lower latency, higher transactions per second (TPS), and lower transaction costs.
Can a Subnet be private?
Yes, it is up to your team to decide. To achieve full privacy (as in nobody can see the contents of the transactions being made), you will need to deploy a VM that enables such operations.
Can Subnets set their own gas prices?
Yes, your Subnet can be designed to do so.
How do we pay for transactions on our Subnet?
For the Subnet-EVM, transactions are paid for by the native token of the platform. You can define initial balances on your chain by setting its genesis to give whatever addresses you want an initial starting balance.
Only 1 token can be used for the network fee, and this cannot be split between multiple tokens.
Can we ask existing validators to meet certain requirements?
Yes, you can have your own specific requirements such as hardware or geographical, etc.
Can we stake on a Subnet?
Currently, staking is only available on the Primary Network. Any staking/rewards mechanism on the subnet must be handled by the subnet itself. Subnet Validation Rewards in on the roadmap.
Can we use any token on our Subnet?
Yes, you can choose to use any token as your native token.
What VMs can you use to build your Subnet?
You can use EVM or any other VM of your choosing. Currently, besides the EVM and AvalancheVM, we also have SpacesVm (key/value storage), BlobVM (binary storage), TimestampVM (a minimum viable VM), and others are in development.
How do Subnets drive the value of AVAX?
Subnets require validators, and each validator must have a minimum of 2000 AVAX. In addition, more Subnets will create network effects on the Avalanche ecosystem. Also if other Subnets use AVAX as their native token, that will also drive the value of the AVAX token.
Where can I find information about existing Subnets?
Avalanche provides a Subnet explorer to view statistics, and here are a few subnet examples:
Swimmer Network: https://testnet-explorer.swimmer.network/
Is there currently a bridge from a Subnet to the Avalanche network?
This is currently under development. In the meantime, you can build your own bridge or use a 3rd party solution to communicate with C-chain and other Subnets. You can find a tutorial here.
Can a Subnet have its own Subnet?
No, but a Subnet can have multiple blockchains within it.
What about cross-chain transactions?
There is currently no built-in support for intra-Subnet cross-chain transactions. Support for cross-Subnet transactions is on the roadmap for later in 2022.
Can we make transactions free of charge on our Subnet?
While it is possible to allow transactions free of charge on your Subnet, this poses a serious Denial of Service risk. If users can freely and anonymously spam your chain with transactions it may cause legitimate users to run into high congestion and have a bad overall experience when interacting with your Subnet. For this reason, we recommend that you use non-zero fees in order to provide some spam prevention on your chain. If you use Subnet-EVM, there is already a dynamic fee algorithm so that the fees will be increased/decreased during periods of high/low network activity. If you feel strongly that you do not want users to pay for fees, it will require a well-thought-out alternative to prevent DoS attacks on your chain. While many have been proposed by various partners, we have found all of these proposed solutions have serious potential DoS vectors.
How is the native token of my Subnet minted?
Since you can define your own VM, you can define whatever minting logic you want! You have complete control to create per block minting logic or otherwise to manipulate the EVM state however you see fit by creating a fork of Subnet-EVM. The simplest way to define some form of minting logic will be to set the Coinbase address that the Subnet-EVM will use such that all of the fees will be sent directly to that address allowing you to re-distribute these funds as you see fit.
You can define any minting logic that you want, you just have to dive into the Subnet-EVM to make the necessary modifications. If you have any ideas, we are happy to discuss and potentially even add first-class support for it within the Subnet-EVM repo if it’s something that many others might find useful as well. You can also make your subnet native token be a variable cap token, and then you are able to mint the token whenever you want and how much you want.
Can I create a Subnet for my specific use case?
The answer is usually yes. Custom Virtual Machines are non-opinionated. This brings great flexibility to Subnets. There are a few interfaces and structures that a VM needs to implement for consensus requirements. Other than these, a Virtual Machine can be fully customized to provide any custom business logic.