Creating Multisig for Proton RegProd Permissions
The Proton blockchain is built on the core EOSIO framework but also has some additional modifications to the system contracts. One of these is limiting the permissions for accounts to do certain actions on-chain; particularly the regproducer action.
These regproducer permissions are managed the Proton Consortium and require a 3/5 approval from the Consortium members for the action to update an accounts permissions. For the technical details, see the contract proton.eosio table and the setperms actions:
- Testnet Permissions Table: https://testnet.protonscan.io/account/eosio.proton?loadContract=true&tab=Tables&account=eosio.proton&scope=eosio.proton&limit=100&table=permissions
- Testnet SetPerm Action: https://testnet.protonscan.io/account/eosio.proton?loadContract=true&tab=Actions&account=eosio.proton&scope=eosio.proton&limit=100&table=permissions&action=setperm
In order for the setperms action to be executed, it must actually be presented as a msig transaction for the Consortium members to approve with their respective accounts. Below I will show you how to propose the msig needed for the admin.proton@committee members to approve your accounts regproducer permissions:
- Log into testnet.protonscan.com with the account you want to propose the msig as (any account can propose msigs) and then put testnet.protonscan.com into MSIG mode
2. Construct action to propose (in this case, performing the setperm action for your account to update regprod=1). Direct link: https://testnet.protonscan.io/account/eosio.proton?loadContract=true&tab=Actions&account=eosio.proton&scope=eosio.proton&limit=100&action=setperm. *** NOTE *** Copying directly from this article will copy incorrect quotation marks. Be sure to replace them by them by typing them in the form!
- acc = your account
- perms = [{“key”:”regprod”,”value”:1}]
3. Construct msig authorizations to require (in this case, using the eosio.proton@vote permission; which requires the admin.proton@committee to execute)
- Authorization = eosio.proton@committee (separate eosio.proton & committee)
- Proposal Name = whatever you would like; max 12 characters
- Review requested approvals are the committee members and submit the msig
4. Review msig is proposed as expected and publish links to approve/execute to respective channels/parties as needed (standard link format: “testnet.protonscan.io/msig/<account>/<proposal>/”)
Links
- EOSIO Permissions Overview: https://developers.eos.io/welcome/v2.0/protocol-guides/accounts_and_permissions
- EOSIO Msigs Overview: https://developers.eos.io/manuals/eosjs/v22.1/how-to-guides/how-to-propose-a-multisig-transaction
- EOSUSA: https://eosusa.io
Be sure to vote for your favorite block producers on Proton so your voice as a token holder is represented! You’re votes are what controls the active producers for the chain (and ultimately the pay for those BPs!)