2

I have seen "sovereign" accounts used in multiple places in the Polkadot ecosystem yet I cannot find a formal definition of what a "sovereign" account is.

What is a "sovereign" account in Polkadot/Substrate?

1 Answer 1

4

In general terms, according to the Cambridge dictionary "sovereign" is defined as:

having the highest power or being completely independent

In regards to Polkadot/Substrate, Moonbeam has a nice definition:

Sovereign account — an account each chain in the ecosystem has, one for the relay chain and the other for other parachains. It is calculated as the blake2 hash of a specific word and parachain ID concatenated (blake2(para+ParachainID) for the sovereign account in the relay chain, and blake2(sibl+ParachainID) for the sovereign account in other parachains), truncating the hash to the correct length. The account is owned by root and can only be used through SUDO (if available) or democracy (technical committee or referenda). The sovereign account typically signs XCM messages in other chains in the ecosystem

Sovereign accounts are also defined in the XCM Format:

An account controlled by a particular Consensus System, within some other Consensus System. There may be many such accounts or just one. If many, then this assumes and identifies a unique primary account.

Yet a pallet can also have a "sovereign" account. For example, the treasury pallet uses a PalletId to generate a sovereign account:

/// The treasury's pallet id, used for deriving its sovereign account ID.
#[pallet::constant]
type PalletId: Get<PalletId>;

This treasury's sovereign account is the account in which the treasury's pot of funds is held.

There is also a good post on how to calculate sovereign account IDs here.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.