# \[BIP-303\] Grant Polygon zkEVM Permissions

**URL:** <https://forum.balancer.fi/t/bip-303-grant-polygon-zkevm-permissions/4807>\
**Category:** General Proposal\
**Created:** [May 23, 2023, 5:42pm UTC](https://forum.balancer.fi/t/bip-303-grant-polygon-zkevm-permissions/4807 "2023-05-23T17:42:00Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![solarcurve](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.balancer.fi/solarcurve/32/1487_2.png) [@solarcurve](https://forum.balancer.fi/u/solarcurve)\
**Post date:** [May 23, 2023, 5:42pm UTC](https://forum.balancer.fi/t/bip-303-grant-polygon-zkevm-permissions/4807/1 "2023-05-23T17:42:00Z")

</div>

## [Payload PR - BIP-303](https://github.com/BalancerMaxis/multisig-ops/pull/201)

## Background

The goal of this BIP is to grant all necessary permissions on Polygon zkEVM for the network to be fully functional and up to par with Balancer’s other networks. This is accomplished through four parts:

303 (zkevm.json) grants all necessary permissions for Balancer’s infrastructure to operate  
303A sets protocol fee on swaps and yield to 50%  
303B enables the child chain gauges to operate  
303C enables the authorizer wrapper

## English Specification

The transaction details were generated by [this script](https://github.com/BalancerMaxis/multisig-ops/blob/main/action-scripts/gen_add_permissions_payload.py) with inputs and outputs in [this directory](https://github.com/BalancerMaxis/multisig-ops/tree/staging/BIPs/BIP-303)

The following files can be found both linked below and in the payload PR linked above:

| Filename | Description of Contents |
| --- | --- |
| [inputs.json](https://github.com/BalancerMaxis/multisig-ops/blob/staging/BIPs/BIP-303/inputs.json) | The inputs to the script mapping functions and deployments to target addresses that can execute them. |
| [results\_address\_sorted.md](https://github.com/BalancerMaxis/multisig-ops/blob/staging/BIPs/BIP-303/results_address_sorted.md) | The resulting changes printed in a table sorted by target chain and target address. (to easily understand permisisons granted) |
| [results\_deployment\_sorted.md](https://github.com/BalancerMaxis/multisig-ops/blob/staging/BIPs/BIP-303/results_deployment_sorted.md) | The resulting changes printed in a table sorted by target chain and target deployment. (for verification against action ids) |
| [function\_descriptions.md](https://github.com/BalancerMaxis/multisig-ops/blob/staging/BIPs/BIP-303/function_descriptions.md) | A table that describes what each function that is being granted privileged access to allows. |
| [`chainname`.json](https://github.com/BalancerMaxis/multisig-ops/tree/staging/BIPs/BIP-303/) | For each change with changes, a transaction builder json named after said chain exists to apply the changes described in the tables. |

_More information about the various Balancer Multisigs and their functions can be found in the [multisig-ops repo](https://github.com/BalancerMaxis/multisig-ops/blob/staging/multisigs.md)_

# Specification

As described in the payload json, the authorizer will be called to grant the roles as described.

The change can be reviewed by the below by comparing the [results\_deployment\_sorted.md](https://github.com/BalancerMaxis/multisig-ops/tree/staging/BIPs/BIP-183/results_deployment_sorted.md) file to the source of truth, which should match the order found in the source of truth for actionIds on the [balancer-deployments](https://github.com/balancer/balancer-deployments/tree/master/action-ids).

For record, the contents of [results\_address\_sorted.md](https://github.com/BalancerMaxis/multisig-ops/tree/staging/BIPs/BIP-303/results_address_sorted.md) are printed here:

| deployment | chain | function | role | caller | caller\_address |
| --- | --- | --- | --- | --- | --- |
| 20210418-vault | zkevm | setFlashLoanFeePercentage(uint256) | 0xbe2a180d5cc5d803a8eec4cea569989fc1c593d7eeadd1f262f360a68b0e842e | 20220725-protocol-fee-percentages-provider/ProtocolFeePercentagesProvider | 0x1802953277FD955f9a254B80Aa0582f193cF1d77 |
| 20210418-vault | zkevm | setSwapFeePercentage(uint256) | 0xb28b769768735d011b267f781c3be90bce51d5059ba015bc7a28b3e882fb2083 | 20220725-protocol-fee-percentages-provider/ProtocolFeePercentagesProvider | 0x1802953277FD955f9a254B80Aa0582f193cF1d77 |
| 20210418-vault | zkevm | withdrawCollectedFees(address,uint256,address) | 0xb2b6e48fa160a7c887d9d7a68b6a9bb9d47d4953d33e07f3a39e175d75e97796 | 20220517-protocol-fee-withdrawer/ProtocolFeesWithdrawer | 0x230a59F4d9ADc147480f03B0D3fFfeCd56c3289a |
| 20220725-protocol-fee-percentages-provider | zkevm | setFeeTypePercentage(uint256,uint256) | 0xbeb10dd1f094c0751dc69e30b35c3f37cee8a9303f6e7380c83d31adcba39ea8 | multisigs/dao | 0x2f237e7643a3bF6Ef265dd6FCBcd26a7Cc38dbAa |
| 20210418-vault | zkevm | batchSwap(uint8,(bytes32,uint256,uint256,uint256,bytes),address,(address,bool,address,bool),int256,uint256) | 0x1282ab709b2b70070f829c46bc36f76b32ad4989fecb2fcb09a1b3ce00bbfc30 | 20230314-batch-relayer-v5/BalancerRelayer | 0x4678731DC41142A902a114aC5B2F77b63f4a259D |
| 20210418-vault | zkevm | exitPool(bytes32,address,address,(address,uint256,bytes,bool)) | 0xc149e88b59429ded7f601ab52ecd62331cac006ae07c16543439ed138dcb8d34 | 20230314-batch-relayer-v5/BalancerRelayer | 0x4678731DC41142A902a114aC5B2F77b63f4a259D |
| 20210418-vault | zkevm | joinPool(bytes32,address,address,(address,uint256,bytes,bool)) | 0x78ad1b68d148c070372f8643c4648efbb63c6a8a338f3c24714868e791367653 | 20230314-batch-relayer-v5/BalancerRelayer | 0x4678731DC41142A902a114aC5B2F77b63f4a259D |
| 20210418-vault | zkevm | manageUserBalance((uint8,address,uint256,address,address)) | 0xeba777d811cd36c06d540d7ff2ed18ed042fd67bbf7c9afcf88c818c7ee6b498 | 20230314-batch-relayer-v5/BalancerRelayer | 0x4678731DC41142A902a114aC5B2F77b63f4a259D |
| 20210418-vault | zkevm | setRelayerApproval(address,address,bool) | 0x0014a06d322ff07fcc02b12f93eb77bb76e28cdee4fc0670b9dec98d24bbfec8 | 20230314-batch-relayer-v5/BalancerRelayer | 0x4678731DC41142A902a114aC5B2F77b63f4a259D |
| 20210418-vault | zkevm | swap((bytes32,uint8,address,address,uint256,bytes),(address,bool,address,bool),uint256,uint256) | 0x7b8a1d293670124924a0f532213753b89db10bde737249d4540e9a03657d1aff | 20230314-batch-relayer-v5/BalancerRelayer | 0x4678731DC41142A902a114aC5B2F77b63f4a259D |
| 20230320-weighted-pool-v4 | zkevm | disable() | 0xc286c677f812387602b94d5dee672097cae543d80e175977381fbdbcdb9b2c12 | multisigs/emergency | 0x79b131498355daa2cC740936fcb9A7dF76A86223 |
| 20230320-weighted-pool-v4 | zkevm | enableRecoveryMode() | 0x2aa887a92d3d18f30f198214d2c197b7d148bb735c610372199c51c6a4866b86 | multisigs/emergency | 0x79b131498355daa2cC740936fcb9A7dF76A86223 |
| 20230320-weighted-pool-v4 | zkevm | pause() | 0xe67bef3cfb0ba409959647fa3d8ff78b267a1c13f5434c2f32219ced33fec922 | multisigs/emergency | 0x79b131498355daa2cC740936fcb9A7dF76A86223 |
| 20230320-composable-stable-pool-v4 | zkevm | disable() | 0x8d305e761700b38cf2bc3f9e2c4ad60807e843cf2efd2415b902b1163f8f9a22 | multisigs/emergency | 0x79b131498355daa2cC740936fcb9A7dF76A86223 |
| 20230320-composable-stable-pool-v4 | zkevm | enableRecoveryMode() | 0xb213b9fefdba263a47d6449bab5d563a39489f656d504fd24d5b9efe6fe23a61 | multisigs/emergency | 0x79b131498355daa2cC740936fcb9A7dF76A86223 |
| 20230320-composable-stable-pool-v4 | zkevm | pause() | 0x6c331c074092fbc25cd1032630ed25155aa5b81afa1d296bf5a0f0e9e0c6e846 | multisigs/emergency | 0x79b131498355daa2cC740936fcb9A7dF76A86223 |
| 20230409-erc4626-linear-pool-v4 | zkevm | disable() | 0x5b9fa6724045ae552732087c24c3eabd3d760a41440cf37d3646a5325241b40f | multisigs/emergency | 0x79b131498355daa2cC740936fcb9A7dF76A86223 |
| 20230409-erc4626-linear-pool-v4 | zkevm | enableRecoveryMode() | 0xecb7a0b42168ed1b4327ddb3a6fc128facd2fd4c066e2d9d5817452f5f445a4c | multisigs/emergency | 0x79b131498355daa2cC740936fcb9A7dF76A86223 |
| 20230409-erc4626-linear-pool-v4 | zkevm | pause() | 0xca88ea7c3ad439ada200e7ec242c17b97994dda6cc1d6c944b4efbea82b7e479 | multisigs/emergency | 0x79b131498355daa2cC740936fcb9A7dF76A86223 |
| 20230409-gearbox-linear-pool-v2 | zkevm | disable() | 0xca1bf022f0a4111e9e6995ddb177d334178b978208cdf454fe8b8a81eaa50b1e | multisigs/emergency | 0x79b131498355daa2cC740936fcb9A7dF76A86223 |
| 20230409-gearbox-linear-pool-v2 | zkevm | enableRecoveryMode() | 0x71485a098a59b05ec94c66ce65941514fde1427b10f7a920bef592a077d2e4f1 | multisigs/emergency | 0x79b131498355daa2cC740936fcb9A7dF76A86223 |
| 20230409-gearbox-linear-pool-v2 | zkevm | pause() | 0xb8f99692f0cb1e9dbabcb6d9e154bf55ee4fc003eb5e75a94b3acd8c3628ec7e | multisigs/emergency | 0x79b131498355daa2cC740936fcb9A7dF76A86223 |
| 20230409-yearn-linear-pool-v2 | zkevm | disable() | 0x54d04f96e1384dacfbc4bb06d4876678ad3ba07c255782bd693bc9df4b367e24 | multisigs/emergency | 0x79b131498355daa2cC740936fcb9A7dF76A86223 |
| 20230409-yearn-linear-pool-v2 | zkevm | enableRecoveryMode() | 0xe439de626f6f6121ebeb2d7f9b3ad6fdb8b2c645d3b1de4de1d2624bf95aea4b | multisigs/emergency | 0x79b131498355daa2cC740936fcb9A7dF76A86223 |
| 20230409-yearn-linear-pool-v2 | zkevm | pause() | 0x18d598983407d1a7c8ee21df73bf1fa9f89919b69f6a712b8521f5d82c211609 | multisigs/emergency | 0x79b131498355daa2cC740936fcb9A7dF76A86223 |
| 20230410-aave-linear-pool-v5 | zkevm | disable() | 0x7dc4d368b1715140a72ae8d3535a67a2a12cf4671cad76b40860d2d66d514303 | multisigs/emergency | 0x79b131498355daa2cC740936fcb9A7dF76A86223 |
| 20230410-aave-linear-pool-v5 | zkevm | enableRecoveryMode() | 0x226f4cdd3b2ef4ab0d183f2b048476bdf13ac41bc5d16b620a5c9801f07284c1 | multisigs/emergency | 0x79b131498355daa2cC740936fcb9A7dF76A86223 |
| 20230410-aave-linear-pool-v5 | zkevm | pause() | 0xfb4212380dd0e89902957b9e27258f6ca18cb800e3669b8603b6904ac59e98dc | multisigs/emergency | 0x79b131498355daa2cC740936fcb9A7dF76A86223 |
| 20230411-managed-pool-v2 | zkevm | disable() | 0x7dc87d34e4d9603c093467dcbbf3a46c73c3cc593d90bd69353bfef0be8e12a4 | multisigs/emergency | 0x79b131498355daa2cC740936fcb9A7dF76A86223 |
| 20230411-managed-pool-v2 | zkevm | enableRecoveryMode() | 0x3ce3b3d8a6d2e5a3432dba62d502f9309c00298258a5c2a68371fca06e6ea0dd | multisigs/emergency | 0x79b131498355daa2cC740936fcb9A7dF76A86223 |
| 20230411-managed-pool-v2 | zkevm | pause() | 0xfb08e1536837d0f69d82dc0a71f05d5e9ea8b7cfb7b429091b10dd68dadb2256 | multisigs/emergency | 0x79b131498355daa2cC740936fcb9A7dF76A86223 |
| 20210418-vault | zkevm | setPaused(bool) | 0xb5593fe09464f360ecf835d5b9319ce69900ae1b29d13844b73c250b1f5f92fb | multisigs/emergency | 0x79b131498355daa2cC740936fcb9A7dF76A86223 |
| 20220517-protocol-fee-withdrawer | zkevm | denylistToken(address) | 0xdbc8f1f973e905b408bd874b7b2dd4ac3a8b6d6494b51da5c28de0ec4ac21791 | multisigs/emergency | 0x79b131498355daa2cC740936fcb9A7dF76A86223 |
| 20230320-weighted-pool-v4 | zkevm | setSwapFeePercentage(uint256) | 0xdf1065695aeed28f2f774ad5c0032a5d8fb873b2c325e8204d3ec2076d913779 | multisigs/lm | 0xB59Ab49CA8d064E645Bf2c546d9FE6d1d4147a09 |
| 20230320-composable-stable-pool-v4 | zkevm | setSwapFeePercentage(uint256) | 0xcf555cc0ffe0f3255e6e21b7f9236c3c9fa8f7bbeb3c8796df9d3b5b6b630f1b | multisigs/lm | 0xB59Ab49CA8d064E645Bf2c546d9FE6d1d4147a09 |
| 20230320-composable-stable-pool-v4 | zkevm | startAmplificationParameterUpdate(uint256,uint256) | 0x3005acc2387c9b240d98175714c97d50f7215ed66a79cafb014a53b74250b3a7 | multisigs/lm | 0xB59Ab49CA8d064E645Bf2c546d9FE6d1d4147a09 |
| 20230320-composable-stable-pool-v4 | zkevm | stopAmplificationParameterUpdate() | 0xc5cc9cd4aa2b8c41b752cd191bc035c569522e23523abd0cc53c6a229165589f | multisigs/lm | 0xB59Ab49CA8d064E645Bf2c546d9FE6d1d4147a09 |
| 20230409-erc4626-linear-pool-v4 | zkevm | setSwapFeePercentage(uint256) | 0x4223f854b20ca267ff7b134cf89c74ad7ad53e42dcef38dd11350fa25e3d83ae | multisigs/lm | 0xB59Ab49CA8d064E645Bf2c546d9FE6d1d4147a09 |
| 20230409-erc4626-linear-pool-v4 | zkevm | setTargets(uint256,uint256) | 0x30329a0bf89785c711811ca02c5e649b59ef6706cd7e707ff91290a62f22996d | multisigs/lm | 0xB59Ab49CA8d064E645Bf2c546d9FE6d1d4147a09 |
| 20230409-gearbox-linear-pool-v2 | zkevm | setSwapFeePercentage(uint256) | 0xcb96c6dcd233b49f5decb6e39b3a91d415076c7d8c78ef46aad6e1823ba2dfde | multisigs/lm | 0xB59Ab49CA8d064E645Bf2c546d9FE6d1d4147a09 |
| 20230409-gearbox-linear-pool-v2 | zkevm | setTargets(uint256,uint256) | 0xf037bfa1f407c134bc46cd288ab93d47b13cd73831c019707c6fed5162cf1b2d | multisigs/lm | 0xB59Ab49CA8d064E645Bf2c546d9FE6d1d4147a09 |
| 20230409-yearn-linear-pool-v2 | zkevm | setSwapFeePercentage(uint256) | 0xe716f33bb1aed7ca21a3a428a38e0fec5f3ea274a3fa22d8171e5b5e849c7f03 | multisigs/lm | 0xB59Ab49CA8d064E645Bf2c546d9FE6d1d4147a09 |
| 20230409-yearn-linear-pool-v2 | zkevm | setTargets(uint256,uint256) | 0xf8e0160362ea0d3bd75a137e0a65022b2a4db29686269ff6e2857f869f477f14 | multisigs/lm | 0xB59Ab49CA8d064E645Bf2c546d9FE6d1d4147a09 |
| 20230410-aave-linear-pool-v5 | zkevm | setSwapFeePercentage(uint256) | 0xb851a779bb251247ffc9b445a0fac56af908e4560fe43517739bb79e73f94ddc | multisigs/lm | 0xB59Ab49CA8d064E645Bf2c546d9FE6d1d4147a09 |
| 20230410-aave-linear-pool-v5 | zkevm | setTargets(uint256,uint256) | 0xe3fccd861cb8896c55052a07fa6c8a620343c50e5b7971d6a5ea70a41feb7e93 | multisigs/lm | 0xB59Ab49CA8d064E645Bf2c546d9FE6d1d4147a09 |
| 20230316-child-chain-gauge-factory-v2 | zkevm | add\_reward(address,address) | 0xdc8b557d7b464894c525e5de06257694247b2b789b4948326752177399475439 | multisigs/lm | 0xB59Ab49CA8d064E645Bf2c546d9FE6d1d4147a09 |
| 20220517-protocol-fee-withdrawer | zkevm | withdrawCollectedFees(address,uint256,address) | 0xcd3768eb08cdc2de2d040f74fb351ccbef01df1d042fa8033e12f224ecc27c4d | multisigs/lm | 0xB59Ab49CA8d064E645Bf2c546d9FE6d1d4147a09 |
| 20221123-pool-recovery-helper | zkevm | addPoolFactory(address) | 0x4133838a02bd2b8ed714d2c6f9b67c9edc60b2a48cdffca2fc4908545c9ea168 | multisigs/lm | 0xB59Ab49CA8d064E645Bf2c546d9FE6d1d4147a09 |
| 20221123-pool-recovery-helper | zkevm | removePoolFactory(address) | 0xe54abf8b88dbe1bc275b3ffd3f7ab1b0ad3541db2664b78940b7fb9c05526bf2 | multisigs/lm | 0xB59Ab49CA8d064E645Bf2c546d9FE6d1d4147a09 |
| 20230223-protocol-id-registry | zkevm | registerProtocolId(uint256,string) | 0xc26e21fc0aba43b199202ad3de0ba39a17c1006c1f7b3791ca2a3b9f86a4f0b9 | multisigs/lm | 0xB59Ab49CA8d064E645Bf2c546d9FE6d1d4147a09 |
| 20230223-protocol-id-registry | zkevm | renameProtocolId(uint256,string) | 0x717d11aa4cee062d5f4a3262a493c6cb8b8d7985b98d3a3fd2f80631feb89968 | multisigs/lm | 0xB59Ab49CA8d064E645Bf2c546d9FE6d1d4147a09 |
| 20230320-weighted-pool-v4 | zkevm | enableRecoveryMode() | 0x2aa887a92d3d18f30f198214d2c197b7d148bb735c610372199c51c6a4866b86 | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0xf7D5DcE55E6D47852F054697BAB6A1B48A00ddbd |
| 20230320-composable-stable-pool-v4 | zkevm | enableRecoveryMode() | 0xb213b9fefdba263a47d6449bab5d563a39489f656d504fd24d5b9efe6fe23a61 | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0xf7D5DcE55E6D47852F054697BAB6A1B48A00ddbd |
| 20230409-erc4626-linear-pool-v4 | zkevm | enableRecoveryMode() | 0xecb7a0b42168ed1b4327ddb3a6fc128facd2fd4c066e2d9d5817452f5f445a4c | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0xf7D5DcE55E6D47852F054697BAB6A1B48A00ddbd |
| 20230409-gearbox-linear-pool-v2 | zkevm | enableRecoveryMode() | 0x71485a098a59b05ec94c66ce65941514fde1427b10f7a920bef592a077d2e4f1 | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0xf7D5DcE55E6D47852F054697BAB6A1B48A00ddbd |
| 20230409-yearn-linear-pool-v2 | zkevm | enableRecoveryMode() | 0xe439de626f6f6121ebeb2d7f9b3ad6fdb8b2c645d3b1de4de1d2624bf95aea4b | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0xf7D5DcE55E6D47852F054697BAB6A1B48A00ddbd |
| 20230410-aave-linear-pool-v5 | zkevm | enableRecoveryMode() | 0x226f4cdd3b2ef4ab0d183f2b048476bdf13ac41bc5d16b620a5c9801f07284c1 | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0xf7D5DcE55E6D47852F054697BAB6A1B48A00ddbd |
| 20230411-managed-pool-v2 | zkevm | enableRecoveryMode() | 0x3ce3b3d8a6d2e5a3432dba62d502f9309c00298258a5c2a68371fca06e6ea0dd | 20221123-pool-recovery-helper/PoolRecoveryHelper | 0xf7D5DcE55E6D47852F054697BAB6A1B48A00ddbd |

## Risk Assessment

This BIP is routine operation for provisioning a new network.

## References

[Balancer Deployments](https://github.com/balancer/balancer-deployments)  
[BAL Addresses](https://github.com/BalancerMaxis/bal_addresses)

---

<div class="post-metadata">

**Author:** ![Xeonus](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.balancer.fi/xeonus/32/3621_2.png) [@Xeonus](https://forum.balancer.fi/u/Xeonus)\
**Post date:** [May 24, 2023, 7:22pm UTC](https://forum.balancer.fi/t/bip-303-grant-polygon-zkevm-permissions/4807/2 "2023-05-24T19:22:51Z")

</div>

[https://snapshot.org/#/balancer.eth/proposal/0xfed6a4bb00b05c8b21db43bf12e459369d86a3371e964374575564e50fce355b](https://snapshot.org/#/balancer.eth/proposal/0xfed6a4bb00b05c8b21db43bf12e459369d86a3371e964374575564e50fce355b)
