Arweave Uploads
Arweave Uploads

Arweave Uploads

icon
The following information about the required proposal processes becomes true if BIP-34 passes.

Check out the following guide for setting up an Arweave wallet, creating an Etherscan verified signature and uploading your first file to Arweave:

📜
Guides

Proposers

In order to facilitate a permissionless proposal process before on-chain governance is reimplemented in Beanstalk, proposers must upload verified message signatures to Arweave. Anyone can use these to verify that the Proposer Wallet has at least 0.1% of total Stalk at the beginning of the Voting Period (and at least 0.1% of total Voting Stalk at the end of the Voting Period).

BIP Proposer Wallet Format

The proposer of a BIP must include an Arweave upload of a JSON file in the Proposer section of the written proposal that confirms the Proposer Wallet of the BIP.

The JSON file should use the following format.

Example:

{
	"address": "[address]",
	"signed_message": "Confirming that this address is the Proposer Wallet for BIP-[x] with commit hash [hash].",
	"signature_hash": "[signature hash]", 
	// Optional if Etherscan is down
	"etherscan_link": "[verified Etherscan signature link]"
	// An array where each element has transaction data to execute
	"transaction_data": [
		{
			// The order for the BCM to execute the function calls	
			"call_order": 0,
			// The owner function to be called by the BCM,
			// followed by each input parameter
			"function": "[function name]",
			"[input parameter 1]": "input parameter 1 value",
			...
			"[input parameter n]": "input parameter n value"
		},
		...
		{
			"call_order": n,
			"function": "[function name]",
			"[input parameter 1]": "input parameter 1 value",
			...
			"[input parameter n]": "input parameter n value"
		},
	]
}

BOP Proposer Wallet Format

The proposer of a BOP must include an Arweave upload of a JSON file in the Proposer section of the written proposal that confirms the Proposer Wallet of the BOP.

The JSON file should use the following format.

Example:

{
	"address": "[address]",	
	"signed_message": "Confirming that this address is the Proposer Wallet for BOP-[x].",
	"signature_hash": "[signature hash]",	
	// Optional if Etherscan is down
	"etherscan_link": "[verified Etherscan signature link]"
}

BCM Signers

BCM Signers must upload verified message signatures to Arweave confirming that they've verified a given multisig transaction according to the processes approved by the DAO. This limits blind signing and encourages each Signer to independently verify that a proposed transaction is accurately represented. Anyone can verify that a Signer verified a proposed transaction during the Voting Period.

BIP Verification Approval Format

Every BCM Signer is expected to know how to verify diamondCut data and confirm they have verified transactions by uploading signed messages to Arweave.

The JSON file should use the following format.

Example:

{
	"address": "[address]",
	"signed_message": "Confirming that I have reviewed BIP-[X] with BCM transaction nonce [Y], Safe transaction hash [tx hash], commit hash [hash], GitHub PR [URL] and Snapshot proposal [URL].",
	"signature_hash": "[signature hash]",
	// Optional if Etherscan is down
	"etherscan_link": "[verified Etherscan signature link]"
}

EBIP Verification Approval Format

Every BCM Signer is expected to know how to verify diamondCut data and confirm they have verified transactions by uploading signed messages to Arweave. A verified message signature is not required in cases where functions are only being removed from Beanstalk.

The JSON file should use the following format.

Example:

{
	"address": "[address]",
	"signed_message": "Confirming that I have reviewed EBIP-[X] with BCM transaction nonce [Y], Safe transaction hash [tx hash], commit hash [hash], GitHub PR [URL] and Arweave proposal [URL].",
	"signature_hash": "[signature hash]",
	// Optional if Etherscan is down
	"etherscan_link": "[verified Etherscan signature link]"
}

{

BIR Verification Approval Format

Every BCM Signer is expected to know how to verify diamondCut data and confirm they have verified transactions by uploading signed messages to Arweave.

The JSON file should use the following format.

Example:

{
	"address": "[address]",
	"signed_message": "Confirming that I have reviewed BIR-[X] with BCM transaction nonce [Y], Safe transaction hash [tx hash] and Snapshot proposal [URL].",
	"signature_hash": "[signature hash]",
	// Optional if Etherscan is down
	"etherscan_link": "[verified Etherscan signature link]"
}

Verification Rejection Format

The BCM will not submit a transaction that was misrepresented in the Snapshot proposal.

In the case that any Signer during the verification process determines that a Snapshot proposal does not accurately represent the transaction, that Signer will sign a message indicating as such with context on the issue.

The JSON file should use the following format.

Example:

{
	"address": "[address]",
	"signed_message": "Confirming that I have reviewed BCM transaction nonce [x] and determined that the transaction has the following issue: [issue]",
	"signature_hash": "[signature hash]",
	// Optional if Etherscan is down
	"etherscan_link": "[verified Etherscan signature link]"
}