Each parachain
has a crowdloan account
when they conduct crowdloans
for the purpose of winning a slot auction. How are these crowdloan accounts generated and does the parachain
have the private keys to access the accounts on their crowdloan accounts
? So can they submit extrinsics via the crowdloan account?
1 Answer
Each parachain project has a crowdloan account id for its funds pot that is created using the fund_account_id
function of the Crowdloan pallet where its account id is generated using the parachain id using the into_sub_account
function. When a crowdloan campaign is created for a parachain slot a Funds
storage item is created to track the fund configuration, and a child-trie is used to store account IDs and the amount they contributed to the fund pot.
The parachain project does not have access to the private key of their crowdloan account id.
If the parachain project contributed to its own crowdloan using an account that it created then it would likely have the private key or password encrypted wallet to access the funds of that account.
If the crowdloan wasn't run on a decentralised network where the Sudo pallet functionality was not removed and the parachain project had the private key to the root Sudo account then they could use the Balances pallet to access contributor account funds using the force_transfer
extrinsic function or setBalance
.
Since they don't have the private key or password encrypted wallet associated with the crowdloan account id of its funds pot they wouldn't be able to submit extrinsics using that account.