The Beanstalk Community Multisig (BCM) custodies ownership of the Beanstalk contract. The BCM has the exclusive ability upgrade Beanstalk. In the future, it is expected that BIPs will reimplement permissionless governance and revoke these abilities from the BCM.
Per the Verifying and Signing Transactions section of the BCM Process, all BCM Signers are expected to know how to verify diamondCut
data and confirm they have verified transactions by uploading signed messages to Arweave.
See BCM Process and BCM Dashboard for more information.
Table of Contents
Docs
BIP | Proposal |
---|---|
December 31, 2022 | |
December 31, 2022 | |
January 31, 2023 | |
April 26, 2023 | |
April 26, 2023 | |
July 3, 2023 | |
August 23, 2023 | |
October 13, 2023 | |
January 31, 2024 | |
February 18, 2024 | |
February 18, 2024 | |
May 1, 2024 | |
May 1, 2024 | |
May 14, 2024 | |
May 14, 2024 | |
May 22, 2024 | |
July 19, 2024 | |
July 29, 2024 | |
October 1, 2024 |
Getting Started
If you arenβt familiar with EIP-2535 Diamonds and the corresponding data structures for the inputs to a diamondCut
call (facet cuts, the init address, etc.) that upgrades an Ethereum Diamond, check out these resources before continuing:
In order to set your environment up in preparation for following the Runbook to test a BIP, follow this guide:
Docs:
- Verification Guides: How To Guides
- BIP Runbooks: Procedures to follow to verify a BIP, along with verified message signatures from BCM Signers for that BIP.
How To Verify a BIP
Using the information in the BIP Runbooks, verifying a BIP transaction should involve at least steps 1-7:
- Execute the
diamondCut
and verify that the correct facets and selectors have been added, changed or removed. - Verify that each facet that is added/changed has the same source code as the pull request.
- Verify that each facet that is added/changed has verified code on Etherscan.
- Confirm that the facet addresses in the
diamondCut
match the addresses listed in the Contract Changes section of the written Snapshot proposal. - Verify that the
_init
address has verified code on Etherscan. - If the
_init
address is theInitMint
address, verify that the correct number of Beans are minted to the correct address based on the Beans Minted section of the written Snapshot proposal. - If the
_init
address is neither theInitMint
address nor the null address, verify that the contract has the same source code as the pull request. - Review the pull request code changes.
- Review any audit reports.