gh0stlygh0sts.com

What Is a Subnet Allowlist and How Does It Control Validator Access?

An avalanche-chain/avalanche-subnet-consensus-mechanism/">Avalanche subnet allowlist is a permission mechanism that defines which validators are permitted to validate a specific subnet. It is the primary tool for controlling validator access, ensuring that only authorized nodes can participate in validating transactions and producing blocks on that subnet. Without an allowlist, any validator in the Avalanche Primary Network could theoretically join a subnet, which may be undesirable for subnets that require trusted operators or compliance with specific rules.

How an allowlist works

When you create a subnet on Avalanche, you specify an initial set of validators. The subnet's owner or controller can then manage the allowlist by adding or removing validator node IDs over time. Only validators whose node IDs appear on the allowlist are allowed to validate the subnet. This is enforced at the protocol level during subnet validation operations: the primary network's P-Chain (Platform Chain) checks the allowlist before accepting a validation request.

The allowlist is stored on the P-Chain as part of the subnet's metadata. Changes to the allowlist require a transaction submitted to the P-Chain, typically signed by the subnet's control key(s). This design means the allowlist is transparent and immutable once committed to the blockchain.

Why use an allowlist?

Subnet allowlists serve several practical purposes:

How to Manage a Subnet Allowlist

Managing an allowlist involves submitting transactions to the P-Chain using tools like the Avalanche CLI, the AvalancheJS library, or a wallet that supports subnet management. The general steps are:

  1. Obtain control of the subnet: You must hold the private key(s) associated with the subnet's control keys. Multisig control is common.
  2. Identify the validator's NodeID: Each validator on Avalanche has a unique NodeID, typically displayed when they start their node. You will need this ID.
  3. Submit the add or remove transaction:
  4. Use the addValidator command (or equivalent API call) to add a validator to the subnet's allowlist. This transaction specifies the subnet ID, the NodeID, and the validation period (start and end time).
  5. Use the removeSubnetValidator command to remove a validator. The validator will stop validating after the transaction is finalized.
  6. Wait for finality: The P-Chain confirms the transaction, and the change propagates to all nodes. The affected validator will either begin or cease validation based on the update.

Allowlist vs. permissionless subnets

Not all subnets use an allowlist. Permissionless subnets allow any Primary Network validator to join without restriction. The choice depends on the subnet's purpose:

Feature Allowlisted Subnet Permissionless Subnet
Validator selection Owner-controlled Open to all validators
Trust model High, curated Lower, trustless
Entry barrier Requires approval None
Use case Enterprise, regulated, or custom Public, decentralized apps

Common Misconceptions

Practical Considerations

In summary, a subnet allowlist is a straightforward but powerful mechanism for controlling validator access on Avalanche. It gives subnet owners fine-grained control over who validates their chain, enabling trust, compliance, and performance optimization. Understanding how it works is essential for anyone deploying or managing a subnet that requires curated validation.

Not financial advice. gh0stlygh0sts.com publishes market data and general information about digital assets. Crypto assets are volatile and you can lose everything you put in. Nothing here is a recommendation to buy, sell or hold, and we make no price predictions.

Prices are sourced from third parties and may be delayed or wrong. Verify anything you intend to act on against a primary source.

Back to avalanche