Date: 2026-03-31
Network: Ethereum Mainnet (Chain ID: 1)
Council Safe: 0x9F6e831c8F8939DC0C830C6e492e7cEf4f9C2F5f
This page contains the Safe Transaction Builder JSONs required for the Threshold Council to execute the TIP-109 Bridge Rebate Upgrade flow.
Reference text / rationale: https://forum.threshold.network/t/tip-109-reintroduce-a-tbtc-mint-fee/1171/11
The execution is split into four actions:
begin then finalize)Description:
Schedule the Timelock batch that upgrades both RebateStaking and Bridge implementations atomically. This transaction starts the 24-hour delay and does not yet modify live proxy logic.
Safe Transaction Builder JSON:
{
"version": "1.0",
"chainId": "1",
"createdAt": 1774912444600,
"meta": {
"name": "TIP-109: Schedule Batch Upgrade",
"description": "Schedule the Timelock batch that upgrades RebateStaking and Bridge proxies atomically.",
"txBuilderVersion": "1.18.2",
"createdFromSafeAddress": "0x9F6e831c8F8939DC0C830C6e492e7cEf4f9C2F5f",
"createdFromOwnerAddress": "",
"checksum": ""
},
"transactions": [
{
"to": "0x92f2d8b72a7F6a551Be60b9aa4194248E9B4913D",
"value": "0",
"data": "0x8f2a0bb000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000006c03d14dce316ca74379c398d18730621e2a638967dece2ee8de869cb34134a40000000000000000000000000000000000000000000000000000000000015180000000000000000000000000000000000000000000000000000000000000000200000000000000000000000016a76d3cd3c1e3ce843c6680d6b37e9116b5c70600000000000000000000000016a76d3cd3c1e3ce843c6680d6b37e9116b5c7060000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000004499a88ec40000000000000000000000000184739c32edc3471d3e4860c8e39a5f3ff85a450000000000000000000000006e25effc3cc6d84f5df65d87b1cacfae423ccbee0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c49623609d0000000000000000000000005e4861a80b55f035d899f66772117f00fa0e8e7b000000000000000000000000e88f9547ca4ac988e125621917ea312e8e6091cf000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000241ebf670d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
}
]
}
```\\\\n
\\\\n
---\\\\n
\\\\n
## Transaction 2 of 5 — Execute Batch Upgrade\\\\n
\\\\n
**Description:**\\\\n
Execute the previously scheduled Timelock batch after the 24-hour delay has elapsed. This upgrades the RebateStaking proxy and the Bridge proxy, and clears the stale Bridge rebateStaking storage value.\\\\n
\\\\n
**Safe Transaction Builder JSON:**\\\\n
```json
{
"version": "1.0",
"chainId": "1",
"createdAt": 1774998844600,
"meta": {
"name": "TIP-109: Execute Batch Upgrade",
"description": "Execute the scheduled Timelock batch after 24 hours. Upgrades RebateStaking and Bridge proxies and clears stale Bridge storage.",
"txBuilderVersion": "1.18.2",
"createdFromSafeAddress": "0x9F6e831c8F8939DC0C830C6e492e7cEf4f9C2F5f",
"createdFromOwnerAddress": "",
"checksum": ""
},
"transactions": [
{
"to": "0x92f2d8b72a7F6a551Be60b9aa4194248E9B4913D",
"value": "0",
"data": "0xe38335e500000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000006c03d14dce316ca74379c398d18730621e2a638967dece2ee8de869cb34134a4000000000000000000000000000000000000000000000000000000000000000200000000000000000000000016a76d3cd3c1e3ce843c6680d6b37e9116b5c70600000000000000000000000016a76d3cd3c1e3ce843c6680d6b37e9116b5c7060000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000004499a88ec40000000000000000000000000184739c32edc3471d3e4860c8e39a5f3ff85a450000000000000000000000006e25effc3cc6d84f5df65d87b1cacfae423ccbee0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c49623609d0000000000000000000000005e4861a80b55f035d899f66772117f00fa0e8e7b000000000000000000000000e88f9547ca4ac988e125621917ea312e8e6091cf000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000241ebf670d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
}
]
}
```\\\\n
\\\\n
---\\\\n
\\\\n
## Transaction 3 of 5 — Wire RebateStaking\\\\n
\\\\n
**Description:**\\\\n
After verifying both upgraded proxies and confirming stale Bridge storage has been cleared, wire the RebateStaking proxy into BridgeGovernance by calling `setRebateStaking(address)`. This is the activation step for the rebate integration.\\\\n
\\\\n
**Safe Transaction Builder JSON:**\\\\n
```json
{
"version": "1.0",
"chainId": "1",
"createdAt": 1775002444600,
"meta": {
"name": "TIP-109: Wire RebateStaking",
"description": "Wire the upgraded RebateStaking proxy into BridgeGovernance after post-upgrade verification passes.",
"txBuilderVersion": "1.18.2",
"createdFromSafeAddress": "0x9F6e831c8F8939DC0C830C6e492e7cEf4f9C2F5f",
"createdFromOwnerAddress": "",
"checksum": ""
},
"transactions": [
{
"to": "0xcBCFA3eb5E067173b262ACe62f9dD87f1D2Cc0Cf",
"value": "0",
"data": "0xca73c4620000000000000000000000000184739c32edc3471d3e4860c8e39a5f3ff85a45"
}
]
}
```\\\\n
\\\\n
---\\\\n
\\\\n
## Transaction 4 of 5 — Begin 20 bps Mint Fee Update\\\\n
\\\\n
**Description:**\\\\n
Begin the governance-delayed update that sets the deposit treasury fee divisor to `500`, corresponding to a **0.20% (20 bps)** mint fee. This starts the 48-hour delay before finalization.\\\\n
\\\\n
**Safe Transaction Builder JSON:**\\\\n
```json
{
"version": "1.0",
"chainId": "1",
"createdAt": 1775088844600,
"meta": {
"name": "TIP-109: Begin Mint Fee Update",
"description": "Begin the governance-delayed update to set the deposit treasury fee divisor to 500 (20 bps mint fee). Reference: [insert TIP-109 link].",
"txBuilderVersion": "1.18.2",
"createdFromSafeAddress": "0x9F6e831c8F8939DC0C830C6e492e7cEf4f9C2F5f",
"createdFromOwnerAddress": "",
"checksum": ""
},
"transactions": [
{
"to": "0xcBCFA3eb5E067173b262ACe62f9dD87f1D2Cc0Cf",
"value": "0",
"data": "0x4078dde000000000000000000000000000000000000000000000000000000000000001f4"
}
]
}
```\\\\n
\\\\n
---\\\\n
\\\\n
## Transaction 5 of 5 — Finalize 20 bps Mint Fee Update\\\\n
\\\\n
**Description:**\\\\n
Finalize the deposit treasury fee divisor update after the 48-hour delay has elapsed, activating the **20 bps mint fee** on Bridge deposits.\\\\n
\\\\n
**Safe Transaction Builder JSON:**\\\\n
```json
{
"version": "1.0",
"chainId": "1",
"createdAt": 1775261644600,
"meta": {
"name": "TIP-109: Finalize Mint Fee Update",
"description": "Finalize the governance-delayed mint fee update after 48 hours, activating the 20 bps deposit fee. Reference: [insert TIP-109 link].",
"txBuilderVersion": "1.18.2",
"createdFromSafeAddress": "0x9F6e831c8F8939DC0C830C6e492e7cEf4f9C2F5f",
"createdFromOwnerAddress": "",
"checksum": ""
},
"transactions": [
{
"to": "0xcBCFA3eb5E067173b262ACe62f9dD87f1D2Cc0Cf",
"value": "0",
"data": "0x2e73df99"
}
]
}
```\\\\n
\\\\n
---\\\\n
\\\\n
## Execution Order\\\\n
1. Sign and execute **Transaction 1**\\\\n
2. Wait **24 hours**\\\\n
3. Sign and execute **Transaction 2**\\\\n
4. Perform post-upgrade verification\\\\n
5. Sign and execute **Transaction 3**\\\\n
6. Wait observation window if desired\\\\n
7. Sign and execute **Transaction 4**\\\\n
8. Wait **48 hours**\\\\n
9. Sign and execute **Transaction 5**\\\\n
\\\\n
## Important Notes\\\\n
- Do not execute Transaction 3 before verifying Transaction 2 results.\\\\n
- Do not execute Transaction 5 before the 48-hour delay from Transaction 4 has elapsed.\\\\n