How stable are the subnet ranges for canister IDs?

The state tree of the Internet Computer holds information about its topology, including the set of canister IDs assigned to each subnet. How frequently do these assignments change? If canister subnet migrations were to be introduced in the future, how might that impact the stability of subnet-to-canister ID ranges?

Currently, a canister cannot determine another canister’s subnet on the Internet Computer without making an HTTP outcall to the IC API. Knowing the subnet canister ranges provides a useful workaround to avoid asynchronous calls.

If canister subnet migrations are implemented, will it still be possible to identify a canister’s current subnet solely based on its ID, without requiring an asynchronous call from outside the Internet Computer? If this is not feasible, could an endpoint be added to the management canister or a field in canister_status to indicate the subnet on which a canister is currently located?

So far we had a single canister change subnets ever. You can read more about it here.

Obviously that would mean that canister id ranges can change. Depending on the implementation that would be more or less often

It is already exposed on chain: The registry has an endpoint that will tell you which subnet a certain canister ID belongs to (no matter if the canister actually exists or not)

1 Like

Some related information is in this thread How stable are subnet ranges for canister ids?