Convert Subnet to L1

Transform your Subnet into a sovereign L1 with Validator Manager contract integration

Now that you understand where to deploy your Validator Manager Contract (VMC), and you created a Subnet with at least one validator node, it's time to convert your Subnet into a sovereign L1.

This process establishes the VMC as the authority for validator management on your blockchain and is irreversible, once converted to L1, you cannot revert to Subnet status.

Conversion Process

The conversion from Subnet to L1 is a one-time, irreversible process that:

  • Establishes Sovereignty: Your blockchain becomes independent with its own validator set
  • Transfers Authority: Validator management shifts from P-Chain to your VMC

Key Parameters

  1. Subnet ID: The unique identifier of your Subnet (from the CreateSubnetTx transaction hash)

  2. Validator Manager Blockchain ID: The blockchain where your VMC will be deployed (Your L1, C-Chain, Another L1)

  3. Validator Manager Address: The address of the validator manager contract (or proxy) that will manage the L1's validator set. Chains created with Developer Console have a pre-deployed proxy at 0xfacade0000000000000000000000000000000000.

  4. Initial Validators: The validators that will form your L1's initial validator set. Add the validator we just spun up in the Create a Subnet section.

Logo

Convert Subnet to L1

This will convert your Subnet to an L1.

Validator Manager

With the conversion of the Subnet to an L1, the validator set of the L1 will be managed by a validator manager contract. This contract can implement Proof-of-Authority, Proof-of-Stake or any custom logic to determine the validator set. The contract can be deployed on a blockchain of the L1, the C-Chain or any other blockchain in the Avalanche network.

The ID of the blockchain where the validator manager contract is deployed. This can be a chain of the L1 itself, the C-Chain or any other blockchain in the Avalanche network.

Suggestions:
C-Chain (2q9e4r6Mu3U68nU1fYjgbR6JvwrRx36CohpAX5UQxse55x1Q5)
The C-Chain of the Mainnet is the EVM chain of the Primary Network.

The address of the validator manager contract (or a proxy pointing for it) on the blockchain. This contract will manage the validator set of the L1. A chain created with the Toolbox will have a pre-deployed proxy contract at the address 0xfacade0000000000000000000000000000000000. After the conversion you can point this proxy to a reference implementation of the validator manager contract or a custom version of it.

An OpenZeppelin TransparentUpgradeableProxy contract is pre-deployed at the address 0xfacade.... This proxy can be pointed to a reference implementation or customized version of the validator manager contract. Tools for the deployment of the reference implementations of validator manager contracts are available in the L1 Toolbox for after the conversion.

Initial Validators

Specify the initial validator set for the L1 below. You need to add at least one validator. If converting a pre-existing Subnet with validators, you must establish a completely new validator set for the L1 conversion. The existing Subnet validators cannot be transferred. For each new validator, you need to specify NodeID, the consensus weight, the initial balance and an address or a multi-sig that can deactivate the validator and that receives its remaining balance. The sum of the initial balances of the validators needs to be paid when issuing this transaction.

Add Validator

Click the copy button to copy the command and run it in your node's terminal to get the node credentials.

curl -X POST --data '{"jsonrpc":"2.0","id":1,"method":"info.getNodeID"}' -H "content-type:application/json;" 127.0.0.1:9650/ext/info

Paste the JSON response below:

You just converted your Subnet to an L1 - Congratulations! The following sections will guide you through deploying and configuring your Validator Manager Contract.

Appendix: Conversion Flow

Is this guide helpful?

Report Issue

On this page